| Summary: | ClassLoader hangs - does not recover | ||
|---|---|---|---|
| Product: | [Eclipse Project] Equinox | Reporter: | Hendrik Renken <funsheep> |
| Component: | Launcher | Assignee: | Project Inbox <equinox.launcher-inbox> |
| Status: | RESOLVED NOT_ECLIPSE | QA Contact: | |
| Severity: | critical | ||
| Priority: | P3 | CC: | aniefer, remy.suen, tjwatson |
| Version: | unspecified | ||
| Target Milestone: | --- | ||
| Hardware: | Macintosh | ||
| OS: | Mac OS X - Carbon (unsup.) | ||
| Whiteboard: | |||
|
Description
Hendrik Renken
(In reply to comment #0) > Toolkit.loadLibraries() line: 1605 > Toolkit.<clinit>() line: 1627 > Color.<clinit>() line: 263 Is this AWT? Try starting the eclipse launcher with the "--launcher.secondThread" argument. SWT won't work with this argument, but AWT requires the main thread to be spinning the event loop. I think it has nothing to do with AWT. I'm not even sure i'm starting that. "--launcher.secondThread" does not help. This is the thread-list as it appears in the debug-window: org.eclipse.equinox.launcher.Main at localhost:53962 Thread [main] (Running) Daemon Thread [Thread-1] (Running) Daemon Thread [Poller SunPKCS11-Darwin] (Suspended) Thread [OSGi Console] (Running) Daemon Thread [State Saver] (Running) Daemon Thread [Start Level Event Dispatcher] (Running) Daemon Thread [Framework Event Dispatcher] (Running) Thread [Worker-JM] (Running) Daemon Thread [[Timer] - Main Queue Handler] (Running) Daemon Thread [[ThreadPool Manager] - Idle Thread] (Running) Thread [Worker-0] (Running) Daemon Thread [Thread-5] (Running) Daemon Thread [Thread-6] (Running) Thread [Worker-1] (Running) It does only happen under Mac OS. Using windows or linux, the very same code does not show these problems. When setting all start-levels of all plugins to default the Classloader still hangs. Also, it then shows these errors: !MESSAGE Getting a lock required more than 10000 ms. There might be a synchronization problem in this callstack or just the build/dispose process of some components took too long! !STACK 0 java.lang.Exception: Debug stacktrace at org.eclipse.equinox.internal.ds.InstanceProcess.getLock(InstanceProcess.java:119) at org.eclipse.equinox.internal.ds.InstanceProcess.buildComponents(InstanceProcess.java:158) at org.eclipse.equinox.internal.ds.Resolver.buildNewlySatisfied(Resolver.java:441) at org.eclipse.equinox.internal.ds.Resolver.enableComponents(Resolver.java:213) at org.eclipse.equinox.internal.ds.SCRManager.performWork(SCRManager.java:800) at org.eclipse.equinox.internal.ds.SCRManager$QueuedJob.dispatch(SCRManager.java:767) at org.eclipse.equinox.internal.ds.WorkThread.run(WorkThread.java:89) at org.eclipse.equinox.internal.util.impl.tpt.threadpool.Executor.run(Executor.java:70) Apparently it was java.awt. We were using the AWT-Color class to convert Color-Objects into floating point values. After removing these lines, the project works like a charm. Issue found. But maybe the classloader should throw an exception or (at least in Debug-Mode) issue a warning into the logs to help find this particular problem. Thanks for the help :) (In reply to comment #3) > Apparently it was java.awt. We were using the AWT-Color class to convert > Color-Objects into floating point values. > After removing these lines, the project works like a charm. > > Issue found. But maybe the classloader should throw an exception or (at least > in Debug-Mode) issue a warning into the logs to help find this particular > problem. > Thanks for the help :) Unfortunately the Equinox class loader is not involved here and cannot really do much to help, sorry. |