Bug 65484 - StackOverflowException and deadlock when closing all Java editors
Summary: StackOverflowException and deadlock when closing all Java editors
Status: RESOLVED INVALID
Alias: None
Product: JDT
Classification: Eclipse Project
Component: Text (show other bugs)
Version: 3.0   Edit
Hardware: PC Windows XP
: P2 normal (vote)
Target Milestone: 3.0 RC2   Edit
Assignee: JDT-Text-Inbox CLA
QA Contact:
URL:
Whiteboard:
Keywords: needinfo
Depends on:
Blocks:
 
Reported: 2004-06-02 20:59 EDT by Gary Gregory CLA
Modified: 2007-06-22 10:04 EDT (History)
0 users

See Also:


Attachments
Screenshot (177.37 KB, image/png)
2004-06-02 21:02 EDT, Gary Gregory CLA
no flags Details

Note You need to log in before you can comment on or make changes to this bug.
Description Gary Gregory CLA 2004-06-02 20:59:53 EDT
Version 3.0.rc1.

In the Java Browsing Perspective, I had 9 open editors and a "54" next to the
last tab. I right-clicked on the 1st tab and choose Close All. Eclipse now
appears hung. In the log I have a java.lang.StackOverflowError but I am not sure
if it is related to this or the other JUnit messages.

!SESSION Jun 02, 2004 11:32:03.235 ---------------------------------------------
eclipse.buildId=I200405290105
java.version=1.4.2_04
java.vendor=Sun Microsystems Inc.
BootLoader constants: OS=win32, ARCH=x86, WS=win32, NL=en_US
!ENTRY org.eclipse.ui 4 4 Jun 02, 2004 11:32:03.235
!MESSAGE Unable to find Action Set: org.eclipse.jdt.junit.JUnitActionSet
Unable to find Action Set: org.eclipse.jdt.junit.JUnitActionSet
java.lang.StackOverflowError

Note that the UI still has the context menu poped up as the attached screenshot
shows.

I start E like with this shortcut:

C:\eclipse\eclipse.exe -vm %JAVA_HOME%\bin\java.exe -data "C:\Documents and
Settings\ggregory\My Documents\eclipse\workspaces" -consoleLog -vmargs -Xmx256m

Here is the thread state as reported from Sun's 1.4.2_04 with Ctrl-Break:

Full thread dump Java HotSpot(TM) Client VM (1.4.2_04-b05 mixed mode):

"org.eclipse.jdt.internal.ui.text.JavaReconciler" daemon prio=2 tid=0x03348710
nid=0x1234 in Object.wait() [45df000..45d
fd8c]
        at java.lang.Object.wait(Native Method)
        at
org.eclipse.jface.text.reconciler.AbstractReconciler$BackgroundThread.run(AbstractReconciler.java:172)
        - locked <0x171d2938> (a org.eclipse.jface.text.reconciler.DirtyRegionQueue)

"Worker-19" prio=5 tid=0x03dde838 nid=0x1228 in Object.wait() [459f000..459fd8c]
        at java.lang.Object.wait(Native Method)
        - waiting on <0x11798248> (a org.eclipse.core.internal.jobs.WorkerPool)
        at org.eclipse.core.internal.jobs.WorkerPool.sleep(WorkerPool.java:209)
        - locked <0x11798248> (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)

"Reference Cleaner - 2" prio=5 tid=0x0328e720 nid=0x1164 in Object.wait()
[38bf000..38bfd8c]
        at java.lang.Object.wait(Native Method)
        at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:111)
        - locked <0x12a883a8> (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=7 tid=0x02ec8f90 nid=0x12a8 in Object.wait()
[387f000..387fd8c]
        at java.lang.Object.wait(Native Method)
        - waiting on <0x12a88418> (a java.lang.ref.ReferenceQueue$Lock)
        at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:111)
        - locked <0x12a88418> (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)

"Java indexing" daemon prio=4 tid=0x02e04e90 nid=0x8fc in Object.wait()
[37bf000..37bfd8c]
        at java.lang.Object.wait(Native Method)
        - waiting on <0x1295cc60> (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:344)
        - locked <0x1295cc60> (a
org.eclipse.jdt.internal.core.search.indexing.IndexManager)
        at java.lang.Thread.run(Thread.java:534)

"Start Level Event Dispatcher" daemon prio=5 tid=0x0095f210 nid=0x17d8 in
Object.wait() [2fcf000..2fcfd8c]
        at java.lang.Object.wait(Native Method)
        - waiting on <0x113fee00> (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 <0x113fee00> (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=0x00974568 nid=0x9b0 in
Object.wait() [2f8f000..2f8fd8c]
        at java.lang.Object.wait(Native Method)
        - waiting on <0x113feee8> (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 <0x113feee8> (a org.eclipse.osgi.framework.eventmgr.EventThread)
        at org.eclipse.osgi.framework.eventmgr.EventThread.run(EventThread.java:100)

"Signal Dispatcher" daemon prio=10 tid=0x008a97b0 nid=0x101c waiting on
condition [0..0]

"Finalizer" daemon prio=9 tid=0x008a7188 nid=0x14e0 in Object.wait()
[2c3f000..2c3fd8c]
        at java.lang.Object.wait(Native Method)
        at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:111)
        - locked <0x113caa08> (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=0x008a5d58 nid=0x18c in Object.wait()
[2bff000..2bffd8c]
        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 <0x113caa70> (a java.lang.ref.Reference$Lock)

"main" prio=5 tid=0x00035ef8 nid=0x1550 in Object.wait() [7e000..7fc3c]
        at java.lang.Object.wait(Native Method)
        - waiting on <0x162dc560> (a
org.eclipse.jface.text.reconciler.DirtyRegionQueue)
        at java.lang.Object.wait(Object.java:429)
        at
org.eclipse.jface.text.reconciler.AbstractReconciler$BackgroundThread.suspendCallerWhileDirty(AbstractReconci
ler.java:117)
        - locked <0x162dc560> (a org.eclipse.jface.text.reconciler.DirtyRegionQueue)
        at
org.eclipse.jface.text.reconciler.AbstractReconciler$Listener.inputDocumentAboutToBeChanged(AbstractReconcile
r.java:262)
        at
org.eclipse.jface.text.TextViewer.fireInputDocumentAboutToBeChanged(TextViewer.java:2281)
        at org.eclipse.jface.text.TextViewer.setDocument(TextViewer.java:2336)
        at
org.eclipse.jface.text.source.SourceViewer.setDocument(SourceViewer.java:454)
        at
org.eclipse.jface.text.source.SourceViewer.setDocument(SourceViewer.java:400)
        at org.eclipse.jface.text.TextViewer$1.widgetDisposed(TextViewer.java:1357)
        at org.eclipse.swt.widgets.TypedListener.handleEvent(TypedListener.java:100)
        at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:82)
        at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:796)
        at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:820)
        at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:805)
        at org.eclipse.swt.widgets.Widget.notifyListeners(Widget.java:613)
        at org.eclipse.swt.custom.StyledText.handleDispose(StyledText.java:4877)
        at org.eclipse.swt.custom.StyledText$7.handleEvent(StyledText.java:4748)
        at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:82)
        at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:796)
        at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:820)
        at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:801)
        at org.eclipse.swt.widgets.Widget.releaseWidget(Widget.java:708)
        at org.eclipse.swt.widgets.Control.releaseWidget(Control.java:1470)
        at org.eclipse.swt.widgets.Scrollable.releaseWidget(Scrollable.java:192)
        at org.eclipse.swt.widgets.Composite.releaseWidget(Composite.java:373)
        at org.eclipse.swt.widgets.Canvas.releaseWidget(Canvas.java:118)
        at org.eclipse.swt.widgets.Widget.releaseResources(Widget.java:673)
        at org.eclipse.swt.widgets.Composite.releaseChildren(Composite.java:367)
        at org.eclipse.swt.widgets.Composite.releaseWidget(Composite.java:372)
        at org.eclipse.swt.widgets.Canvas.releaseWidget(Canvas.java:118)
        at org.eclipse.swt.widgets.Widget.releaseResources(Widget.java:673)
        at org.eclipse.swt.widgets.Composite.releaseChildren(Composite.java:367)
        at org.eclipse.swt.widgets.Composite.releaseWidget(Composite.java:372)
        at org.eclipse.swt.widgets.Widget.releaseResources(Widget.java:673)
        at org.eclipse.swt.widgets.Composite.releaseChildren(Composite.java:367)
        at org.eclipse.swt.widgets.Composite.releaseWidget(Composite.java:372)
        at org.eclipse.swt.widgets.Widget.releaseResources(Widget.java:673)
        at org.eclipse.swt.widgets.Composite.releaseChildren(Composite.java:367)
        at org.eclipse.swt.widgets.Composite.releaseWidget(Composite.java:372)
        at org.eclipse.swt.widgets.Widget.releaseResources(Widget.java:673)
        at org.eclipse.swt.widgets.Composite.releaseChildren(Composite.java:367)
        at org.eclipse.swt.widgets.Composite.releaseWidget(Composite.java:372)
        at org.eclipse.swt.widgets.Widget.dispose(Widget.java:368)
        at org.eclipse.ui.internal.PartPane.dispose(PartPane.java:221)
        at
org.eclipse.ui.internal.EditorAreaHelper.closeEditor(EditorAreaHelper.java:111)
        at
org.eclipse.ui.internal.EditorAreaHelper.closeEditor(EditorAreaHelper.java:99)
        at org.eclipse.ui.internal.EditorManager.closeEditor(EditorManager.java:162)
        at
org.eclipse.ui.internal.WorkbenchPage.closeEditors(WorkbenchPage.java:916)
        at org.eclipse.ui.internal.EditorStack.close(EditorStack.java:214)
        at org.eclipse.ui.internal.PartStack$1.close(PartStack.java:74)
        at
org.eclipse.ui.internal.presentations.DefaultPartPresentation.close(DefaultPartPresentation.java:1375)
        at
org.eclipse.ui.internal.presentations.SystemMenuCloseAll.run(SystemMenuCloseAll.java:35)
        at org.eclipse.jface.action.Action.runWithEvent(Action.java:881)
        at
org.eclipse.jface.action.ActionContributionItem.handleWidgetSelection(ActionContributionItem.java:915)
        at
org.eclipse.jface.action.ActionContributionItem.access$2(ActionContributionItem.java:866)
        at
org.eclipse.jface.action.ActionContributionItem$7.handleEvent(ActionContributionItem.java:785)
        at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:82)
        at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:796)
        at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:2716)
        at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:2382)
        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=0x00941710 nid=0x1740 runnable

"VM Periodic Task Thread" prio=10 tid=0x00942e98 nid=0xd94 waiting on condition
"Suspend Checker Thread" prio=10 tid=0x008a9668 nid=0x9cc runnable
Comment 1 Gary Gregory CLA 2004-06-02 21:02:10 EDT
Created attachment 11520 [details]
Screenshot
Comment 2 Frederic Fusier CLA 2004-06-03 03:32:50 EDT
Move to JDT/UI
Comment 3 Dani Megert CLA 2004-06-07 09:42:04 EDT
We cannot reproduce this using I2004060040800. Can you reproduce it? To see
where the problem is we also need the .log with the stack overflow.
Comment 4 Gary Gregory CLA 2004-06-07 15:03:20 EDT
When I encoutered the hang, the last lines of on the console where:

!ENTRY org.eclipse.ui 4 4 Jun 02, 2004 11:32:03.235
!MESSAGE Unable to find Action Set: org.eclipse.jdt.junit.JUnitActionSet
Unable to find Action Set: org.eclipse.jdt.junit.JUnitActionSet
java.lang.StackOverflowError

Nothing more. The end of my .log (now) is:

!MESSAGE /ThirdParty/apache.org/xerces2-j/2.5.0/xml-apis.jar [in
Transidiom-DevE] does not exist.
!SESSION Jun 02, 2004 11:32:03.235 ---------------------------------------------
eclipse.buildId=I200405290105
java.version=1.4.2_04
java.vendor=Sun Microsystems Inc.
BootLoader constants: OS=win32, ARCH=x86, WS=win32, NL=en_US
!ENTRY org.eclipse.ui 4 4 Jun 02, 2004 11:32:03.235
!MESSAGE Unable to find Action Set: org.eclipse.jdt.junit.JUnitActionSet
!SESSION Jun 04, 2004 12:31:52.591 ---------------------------------------------
eclipse.buildId=I200405290105
java.version=1.4.2_04
java.vendor=Sun Microsystems Inc.
BootLoader constants: OS=win32, ARCH=x86, WS=win32, NL=en_US
!ENTRY org.eclipse.ui 4 4 Jun 04, 2004 12:31:52.601
!MESSAGE Unable to find Action Set: org.eclipse.jdt.junit.JUnitActionSet

As you can see by matching the line:

!ENTRY org.eclipse.ui 4 4 Jun 02, 2004 11:32:03.235

There is no more info for the overflow :-(
Comment 5 Dani Megert CLA 2004-06-08 03:48:42 EDT
Can you reproduce it?
Comment 6 Dani Megert CLA 2004-06-08 12:08:20 EDT
We need more information in order to find and fix this bug
Comment 7 Gary Gregory CLA 2004-06-08 12:19:41 EDT
I have a customer-pants-on-fire situation I need to work on right now. I have
not tried to reproduce it not do I really want to hose myself again :-/
Comment 8 Dani Megert CLA 2007-06-22 09:58:48 EDT
Get rid of deprecated state.
Comment 9 Dani Megert CLA 2007-06-22 10:04:13 EDT
.