Community
Participate
Working Groups
Using the quick fix of importing a java class to resolve an undeclared reference causes the platform to hang.
Every time?? What build are you using? Are there errors in the log file?
Yes, every time. This is from build I20031119. I think I saw some other bug reports that might have been related about the system locking up but they said the problem had been fixed. I've see this behavior in the stable release, the latest integration build, and the nightly build over the last week. All I see in the console log is: !MESSAGE Skipping builder com.ibm.etools.ctc.serviceprojectbuilder for project Entities. Either the builder is missing from the install, or it belongs to a project nature that is missing or disabled. I think that message is put into the console before I do my very simple test which is to remove an import statement, go to one of the now offending class references, click on the icon in the left gulley, and select the quick fix solution of importing the class. If I try to force the app to quit, Eclipse doesn't show up in the list. The only way for me to kill it is to ctrl-click it's icon in the dock and select Force Quit. When I do that, I get Exit code 143. Nothing in the console log.
I have just downloaded M5 and tried this again with that version and this problem still exists.
If it still locks up, you can help us by generating a VM dump. See bug 43721 comment 25 for directions on generating a VM dump on Mac: https://bugs.eclipse.org/bugs/show_bug.cgi?id=43721#c25
It has been working better, (M7, JVM 1.4.2) but today, the second import that I tried hung Eclipse. Here's the dump from the console as produced by following the instructions in the link you sent me: "org.eclipse.jdt.internal.ui.text.JavaReconciler" daemon prio=1 tid=0x0ca08ea0 nid=0xbf3a200 in Object.wait() [f0b15000..f0b15b20] at java.lang.Object.wait(Native Method) at org.eclipse.jface.text.reconciler.AbstractReconciler$BackgroundThread.run(AbstractReconciler.java:161) - locked <0x64140830> (a org.eclipse.jface.text.reconciler.DirtyRegionQueue) "org.eclipse.jdt.internal.ui.text.JavaReconciler" daemon prio=1 tid=0x0ca074d0 nid=0xbf4d200 in Object.wait() [f0a94000..f0a94b20] at java.lang.Object.wait(Native Method) at org.eclipse.jface.text.reconciler.AbstractReconciler$BackgroundThread.run(AbstractReconciler.java:161) - locked <0x641122b0> (a org.eclipse.jface.text.reconciler.DirtyRegionQueue) "org.eclipse.jdt.internal.ui.text.JavaReconciler" daemon prio=1 tid=0x0ca05970 nid=0xbf15200 in Object.wait() [f0a13000..f0a13b20] at java.lang.Object.wait(Native Method) at org.eclipse.jface.text.reconciler.AbstractReconciler$BackgroundThread.run(AbstractReconciler.java:161) - locked <0x640b76b8> (a org.eclipse.jface.text.reconciler.DirtyRegionQueue) "org.eclipse.jdt.internal.ui.text.JavaReconciler" daemon prio=1 tid=0x0ca04380 nid=0xbe8be00 in Object.wait() [f0911000..f0911b20] at java.lang.Object.wait(Native Method) at org.eclipse.jface.text.reconciler.AbstractReconciler$BackgroundThread.run(AbstractReconciler.java:161) - locked <0x640b7718> (a org.eclipse.jface.text.reconciler.DirtyRegionQueue) "org.eclipse.jdt.internal.ui.text.JavaReconciler" daemon prio=1 tid=0x0ca02fa0 nid=0xbcb4000 in Object.wait() [f0509000..f0509b20] at java.lang.Object.wait(Native Method) at org.eclipse.jface.text.reconciler.AbstractReconciler$BackgroundThread.run(AbstractReconciler.java:161) - locked <0x64080e70> (a org.eclipse.jface.text.reconciler.DirtyRegionQueue) "org.eclipse.jdt.internal.ui.text.JavaReconciler" daemon prio=1 tid=0x005d3fe0 nid=0x1e49800 in Object.wait() [f080f000..f080fb20] at java.lang.Object.wait(Native Method) at org.eclipse.jface.text.reconciler.AbstractReconciler$BackgroundThread.run(AbstractReconciler.java:161) - locked <0x63cfeaf8> (a org.eclipse.jface.text.reconciler.DirtyRegionQueue) "Thread-1" daemon prio=6 tid=0x005ce7b0 nid=0xbb34e00 in Object.wait() [f068c000..f068cb20] at java.lang.Object.wait(Native Method) - waiting on <0x63caade0> (a java.util.TaskQueue) at java.lang.Object.wait(Object.java:429) at java.util.TimerThread.mainLoop(Timer.java:403) - locked <0x63caade0> (a java.util.TaskQueue) at java.util.TimerThread.run(Timer.java:382) "Worker-5" prio=5 tid=0x005c5e20 nid=0xb963c00 in Object.wait() [f0407000..f0407b20] at java.lang.Object.wait(Native Method) - waiting on <0x62c1f240> (a org.eclipse.core.internal.jobs.WorkerPool) at org.eclipse.core.internal.jobs.WorkerPool.sleep(WorkerPool.java:184) - locked <0x62c1f240> (a org.eclipse.core.internal.jobs.WorkerPool) at org.eclipse.core.internal.jobs.WorkerPool.startJob(WorkerPool.java:210) at org.eclipse.core.internal.jobs.Worker.run(Worker.java:55) "Java indexing" daemon prio=4 tid=0x0054bdf0 nid=0x1b54600 in Object.wait() [f060b000..f060bb20] at java.lang.Object.wait(Native Method) - waiting on <0x62f378a0> (a org.eclipse.jdt.internal.core.search.indexing.IndexManager) at java.lang.Object.wait(Object.java:429) at org.eclipse.jdt.internal.core.search.processing.JobManager.run(JobManager.java:327) - locked <0x62f378a0> (a org.eclipse.jdt.internal.core.search.indexing.IndexManager) at java.lang.Thread.run(Thread.java:552) "Start Level Event Dispatcher" daemon prio=5 tid=0x0051a8c0 nid=0x18bba00 in Object.wait() [f058a000..f058ab20] at java.lang.Object.wait(Native Method) - waiting on <0x62b1a268> (a org.eclipse.osgi.framework.eventmgr.EventThread) at java.lang.Object.wait(Object.java:429) at org.eclipse.osgi.framework.eventmgr.EventThread.getNextEvent(EventThread.java:167) - locked <0x62b1a268> (a org.eclipse.osgi.framework.eventmgr.EventThread) at org.eclipse.osgi.framework.eventmgr.EventThread.run(EventThread.java:118) "Framework Event Dispatcher" daemon prio=5 tid=0x00513fa0 nid=0x1856e00 in Object.wait() [f0488000..f0488b20] at java.lang.Object.wait(Native Method) - waiting on <0x62b1a3c8> (a org.eclipse.osgi.framework.eventmgr.EventThread) at java.lang.Object.wait(Object.java:429) at org.eclipse.osgi.framework.eventmgr.EventThread.getNextEvent(EventThread.java:167) - locked <0x62b1a3c8> (a org.eclipse.osgi.framework.eventmgr.EventThread) at org.eclipse.osgi.framework.eventmgr.EventThread.run(EventThread.java:118) "Signal Dispatcher" daemon prio=10 tid=0x00507f90 nid=0x1812600 waiting on condition [0..0] "Finalizer" daemon prio=8 tid=0x00506a90 nid=0x180e000 in Object.wait() [f0203000..f0203b20] at java.lang.Object.wait(Native Method) - waiting on <0x62acc6d0> (a java.lang.ref.ReferenceQueue$Lock) at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:111) - locked <0x62acc6d0> (a java.lang.ref.ReferenceQueue$Lock) at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:127) at java.lang.ref.Finalizer$FinalizerThread.run(Finalizer.java:159) "Reference Handler" daemon prio=10 tid=0x00506760 nid=0x1802600 in Object.wait() [f0182000..f0182b20] at java.lang.Object.wait(Native Method) - waiting on <0x62acc538> (a java.lang.ref.Reference$Lock) at java.lang.Object.wait(Object.java:429) at java.lang.ref.Reference$ReferenceHandler.run(Reference.java:115) - locked <0x62acc538> (a java.lang.ref.Reference$Lock) "main" prio=6 tid=0x00500c40 nid=0xa000a1ec runnable [bfffe000..bffff608] at org.eclipse.swt.internal.carbon.OS.ReceiveNextEvent(Native Method) at org.eclipse.swt.widgets.Display.sleep(Display.java:2609) at org.eclipse.ui.application.WorkbenchAdvisor.eventLoopIdle(WorkbenchAdvisor.java:315) at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:1551) at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:1526) at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:265) at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:139) at org.eclipse.ui.internal.ide.IDEApplication.run(IDEApplication.java:47) at org.eclipse.core.internal.runtime.PlatformActivator$1.run(PlatformActivator.java:257) at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:104) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:324) at org.eclipse.core.launcher.Main.basicRun(Main.java:279) at org.eclipse.core.launcher.Main.run(Main.java:742) at org.eclipse.core.launcher.Main.main(Main.java:581) "VM Thread" prio=5 tid=0x00505fe0 nid=0x1802e00 runnable "VM Periodic Task Thread" prio=10 tid=0x00507f00 nid=0x1809c00 waiting on condition "Exception Catcher Thread" prio=10 tid=0x00500e70 nid=0x1802a00 runnable
Can you reproduce in a simple test case (ie., create a new project in a new workspace, with a single Java file, add a type reference, and then use quick fix to import and it hangs)? Your stack trace shows all threads are idle, so the only thing that comes to mind is a VM hang. McQ and Andre, have you seen or can you reproduce this?
I haven't seen this, but don't use quick fix.
I'm using QuickFix - especially for adding imports - all the time, but I've never experienced this problem.
Richard, can you give your VM and OS particulars. I.e., output of "java -version" from command shell and OS version number?
Sure. java version "1.4.2_03" Java(TM) 2 Runtime Environment, Standard Edition (build 1.4.2_03-117.1) Java HotSpot(TM) Client VM (build 1.4.2-34, mixed mode) Mac OS X Version 10.3.2 Processor: 1.33 GHz PowerPC G4 Memory: 2GB DDR SDRAM I will also do what I can to replicate this in a scaled down environment, though my sense was that it had something to do with a sluggish workspace (what do I know? :).
Created attachment 8824 [details] Dump after using "Assign statement to local variable" I'm not sure if its related but I am getting something similar with "Assign statement to local variable". Eclipse I20040324 on OS X 10.3.3 I haven't had this problem on earlier releases.
This last full dump resembles the dump in bug #55867
*** This bug has been marked as a duplicate of 55867 ***
The problem reported by last dump has been introduced recently which means it does not cover this bug.
moving back
I get the same freeze with Mac OS X 10.2, vm 1.4.1. Similar dump. Using M9
Eclipse 3.0 isn't supported on 10.2.x (Jaguar) and/or Java 1.4.1
Eclipse only supports 10.3?!? That OS only came out 7 months ago! I'm sure there are excellent technical reasons (like Apple only released 1.4.2 for 10.3), but it seems a tad restrictive.
two resasons: - we require Java 1.4.2 - SWT Browser requires Panther version of Webkit
I have run into the same problem with QuickFix on Mac OSX 10.3.4, running Java 1.4.2_03. I am running Eclipse 3.0RC1 Here is my thread dump when it locks up: Full thread dump Java HotSpot(TM) Client VM (1.4.2-34 mixed mode): "Worker-29" prio=5 tid=0x0b890210 nid=0xe9b4e00 in Object.wait() [f0992000..f0992b20] at java.lang.Object.wait(Native Method) at org.eclipse.core.internal.jobs.WorkerPool.sleep(WorkerPool.java:209) - locked <0x62c52600> (a org.eclipse.core.internal.jobs.WorkerPool) at org.eclipse.core.internal.jobs.WorkerPool.startJob(WorkerPool.java:236) at org.eclipse.core.internal.jobs.Worker.run(Worker.java:59) "Worker-27" prio=5 tid=0x0b889b70 nid=0xe91b800 in Object.wait() [f080f000..f080fb20] at java.lang.Object.wait(Native Method) at org.eclipse.core.internal.jobs.WorkerPool.sleep(WorkerPool.java:209) - locked <0x62c52600> (a org.eclipse.core.internal.jobs.WorkerPool) at org.eclipse.core.internal.jobs.WorkerPool.startJob(WorkerPool.java:236) at org.eclipse.core.internal.jobs.Worker.run(Worker.java:59) "Worker-26" prio=5 tid=0x0b888de0 nid=0xea45000 in Object.wait() [f058a000..f058ab20] at java.lang.Object.wait(Native Method) at org.eclipse.core.internal.jobs.WorkerPool.sleep(WorkerPool.java:209) - locked <0x62c52600> (a org.eclipse.core.internal.jobs.WorkerPool) at org.eclipse.core.internal.jobs.WorkerPool.startJob(WorkerPool.java:236) at org.eclipse.core.internal.jobs.Worker.run(Worker.java:59) "org.eclipse.jdt.internal.ui.text.JavaReconciler" daemon prio=1 tid=0x0b87e330 nid=0xe91e200 in Object.wait() [f0911000..f0911b20] at java.lang.Object.wait(Native Method) at org.eclipse.jface.text.reconciler.AbstractReconciler$BackgroundThread.run(AbstractReconciler.java:172) - locked <0x640f3710> (a org.eclipse.jface.text.reconciler.DirtyRegionQueue) "Java indexing" daemon prio=4 tid=0x0054faa0 nid=0x1bdfa00 in Object.wait() [f070d000..f070db20] at java.lang.Object.wait(Native Method) at java.lang.Object.wait(Object.java:429) at org.eclipse.jdt.internal.core.search.processing.JobManager.run(JobManager.java:344) - locked <0x62e8f848> (a org.eclipse.jdt.internal.core.search.indexing.IndexManager) at java.lang.Thread.run(Thread.java:552) "Reference Cleaner - 2" prio=6 tid=0x00543320 nid=0x1b05800 in Object.wait() [f068c000..f068cb20] at java.lang.Object.wait(Native Method) at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:111) - locked <0x62dd4700> (a java.lang.ref.ReferenceQueue$Lock) at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:127) at org.eclipse.jface.action.ActionContributionItem$ImageCache$ReferenceCleanerThread.run(ActionContributionItem.java:207) "Reference Cleaner - 1" prio=6 tid=0x00543100 nid=0x1b05400 in Object.wait() [f060b000..f060bb20] at java.lang.Object.wait(Native Method) - waiting on <0x62dd4770> (a java.lang.ref.ReferenceQueue$Lock) at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:111) - locked <0x62dd4770> (a java.lang.ref.ReferenceQueue$Lock) at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:127) at org.eclipse.jface.action.ActionContributionItem$ImageCache$ReferenceCleanerThread.run(ActionContributionItem.java:207) "Start Level Event Dispatcher" daemon prio=5 tid=0x00514590 nid=0x1829800 in Object.wait() [f0509000..f0509b20] at java.lang.Object.wait(Native Method) - waiting on <0x62b10878> (a org.eclipse.osgi.framework.eventmgr.EventThread) at java.lang.Object.wait(Object.java:429) at org.eclipse.osgi.framework.eventmgr.EventThread.getNextEvent(EventThread.java:162) - locked <0x62b10878> (a org.eclipse.osgi.framework.eventmgr.EventThread) at org.eclipse.osgi.framework.eventmgr.EventThread.run(EventThread.java:100) "Framework Event Dispatcher" daemon prio=5 tid=0x00513e10 nid=0x1864800 in Object.wait() [f0488000..f0488b20] at java.lang.Object.wait(Native Method) at java.lang.Object.wait(Object.java:429) at org.eclipse.osgi.framework.eventmgr.EventThread.getNextEvent(EventThread.java:162) - locked <0x62b108c8> (a org.eclipse.osgi.framework.eventmgr.EventThread) at org.eclipse.osgi.framework.eventmgr.EventThread.run(EventThread.java:100) "Signal Dispatcher" daemon prio=10 tid=0x005080d0 nid=0x1812800 waiting on condition [0..0] "Finalizer" daemon prio=8 tid=0x00506be0 nid=0x180e200 in Object.wait() [f0203000..f0203b20] at java.lang.Object.wait(Native Method) at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:111) - locked <0x62abe568> (a java.lang.ref.ReferenceQueue$Lock) at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:127) at java.lang.ref.Finalizer$FinalizerThread.run(Finalizer.java:159) "Reference Handler" daemon prio=10 tid=0x005068b0 nid=0x1802800 in Object.wait() [f0182000..f0182b20] at java.lang.Object.wait(Native Method) at java.lang.Object.wait(Object.java:429) at java.lang.ref.Reference$ReferenceHandler.run(Reference.java:115) - locked <0x62abe380> (a java.lang.ref.Reference$Lock) "main" prio=6 tid=0x00500e90 nid=0xa000a1ec runnable [bfffd000..bffff468] at org.eclipse.swt.internal.carbon.OS.SelectWindow(Native Method) at org.eclipse.swt.widgets.Shell.setActive(Shell.java:1092) at org.eclipse.swt.widgets.Shell.bringToTop(Shell.java:365) at org.eclipse.swt.widgets.Control.forceFocus(Control.java:593) at org.eclipse.swt.widgets.Control.setFocus(Control.java:2254) at org.eclipse.swt.widgets.Composite.setFocus(Composite.java:525) at org.eclipse.swt.widgets.Composite.setFocus(Composite.java:523) at org.eclipse.swt.widgets.Composite.setFocus(Composite.java:523) at org.eclipse.swt.widgets.Composite.setFocus(Composite.java:523) at org.eclipse.swt.widgets.Composite.setFocus(Composite.java:523) at org.eclipse.swt.widgets.Control.fixFocus(Control.java:568) at org.eclipse.swt.widgets.Control.setEnabled(Control.java:2234) at org.eclipse.jface.window.ApplicationWindow.run(ApplicationWindow.java:567) at org.eclipse.ui.internal.WorkbenchWindow.run(WorkbenchWindow.java:1622) at org.eclipse.ui.texteditor.AbstractTextEditor.internalInit(AbstractTextEditor.java:2159) at org.eclipse.ui.texteditor.AbstractTextEditor.init(AbstractTextEditor.java:2177) at org.eclipse.ui.internal.EditorManager.createSite(EditorManager.java:576) at org.eclipse.ui.internal.EditorManager.openInternalEditor(EditorManager.java:635) at org.eclipse.ui.internal.EditorManager.openEditorFromDescriptor(EditorManager.java:440) at org.eclipse.ui.internal.EditorManager.openEditor(EditorManager.java:428) at org.eclipse.ui.internal.WorkbenchPage.busyOpenEditorBatched(WorkbenchPage.java:2187) at org.eclipse.ui.internal.WorkbenchPage.busyOpenEditor(WorkbenchPage.java:2120) at org.eclipse.ui.internal.WorkbenchPage.access$6(WorkbenchPage.java:2112) at org.eclipse.ui.internal.WorkbenchPage$9.run(WorkbenchPage.java:2099) at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:69) at org.eclipse.ui.internal.WorkbenchPage.openEditor(WorkbenchPage.java:2094) at org.eclipse.ui.ide.IDE.openEditor(IDE.java:301) at org.eclipse.jdt.internal.ui.javaeditor.EditorUtility.openInEditor(EditorUtility.java:137) at org.eclipse.jdt.internal.ui.javaeditor.EditorUtility.openInEditor(EditorUtility.java:115) at org.eclipse.jdt.internal.ui.text.correction.CUCorrectionProposal.apply(CUCorrectionProposal.java:276) at org.eclipse.jface.text.contentassist.CompletionProposalPopup.insertProposal(CompletionProposalPopup.java:398) at org.eclipse.jface.text.contentassist.CompletionProposalPopup.selectProposalWithMask(CompletionProposalPopup.java:361) at org.eclipse.jface.text.contentassist.CompletionProposalPopup.access$19(CompletionProposalPopup.java:357) at org.eclipse.jface.text.contentassist.CompletionProposalPopup$3.widgetDefaultSelected(CompletionProposalPopup.java:322) at org.eclipse.swt.widgets.TypedListener.handleEvent(TypedListener.java:96) at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:82) at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1196) at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1220) at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1205) at org.eclipse.swt.widgets.Widget.notifyListeners(Widget.java:1053) at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:2867) at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:2537) at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:1363) at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:1334) at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:253) at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:141) at org.eclipse.ui.internal.ide.IDEApplication.run(IDEApplication.java:96) at org.eclipse.core.internal.runtime.PlatformActivator$1.run(PlatformActivator.java:334) at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:273) at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:128) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:324) at org.eclipse.core.launcher.Main.basicRun(Main.java:185) at org.eclipse.core.launcher.Main.run(Main.java:638) at org.eclipse.core.launcher.Main.main(Main.java:622) "VM Thread" prio=5 tid=0x00506130 nid=0x1803000 runnable "VM Periodic Task Thread" prio=10 tid=0x00508040 nid=0x1809e00 waiting on condition "Exception Catcher Thread" prio=10 tid=0x00500e20 nid=0x1802c00 runnable To get it to crash, I clicked on the QuickFix bulb, and chose "add method to class Foo", though I have also gotten it to crash while trying to add imports or anything that is available via the quickfix context menu.
After saying that this does not happen to me, it did. See bug 62336, which is likely a dup of this one. Increasing the severity. This is happening to many Mac users, and needs to be fixed before we ship. Moving to SWT.
SSQ and I are looking at this one.
*** This bug has been marked as a duplicate of 62336 ***