Bug 11155 - ArrayIndexOutOfBounds exception that caused workbench to freeze
Summary: ArrayIndexOutOfBounds exception that caused workbench to freeze
Status: RESOLVED WONTFIX
Alias: None
Product: JDT
Classification: Eclipse Project
Component: Core (show other bugs)
Version: 2.0   Edit
Hardware: PC Windows 2000
: P2 normal (vote)
Target Milestone: 2.0 M6   Edit
Assignee: Philipe Mulet CLA
QA Contact:
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2002-03-12 08:25 EST by Dirk Baeumer CLA
Modified: 2002-05-02 14:03 EDT (History)
0 users

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Dirk Baeumer CLA 2002-03-12 08:25:26 EST
Build 20020307

Got the following ArrayIndexOutOfBoundsException after doing a catch-up.

java.lang.ArrayIndexOutOfBoundsException
        at org.eclipse.jdt.internal.core.index.impl.WordEntry.mapRefs(WordEntry.
java:130)
        at org.eclipse.jdt.internal.core.index.impl.MergeFactory.mergeReferences
(MergeFactory.java:176)
        at org.eclipse.jdt.internal.core.index.impl.MergeFactory.merge(MergeFact
ory.java:79)
        at org.eclipse.jdt.internal.core.index.impl.Index.merge(Index.java:236)
        at org.eclipse.jdt.internal.core.index.impl.Index.save(Index.java:341)
        at org.eclipse.jdt.internal.core.search.indexing.IndexManager.saveIndexe
s(IndexManager.java:365)
        at org.eclipse.jdt.internal.core.search.indexing.IndexManager.notifyIdle
(IndexManager.java:272)
        at org.eclipse.jdt.internal.core.search.processing.JobManager.run(JobMan
ager.java:275)
        at java.lang.Thread.run(Thread.java:484)

After that the whole workbench was froozen. The thread dump is:

Full thread dump:

"org.eclipse.jface.text.reconciler.MonoReconciler" daemon prio=2 tid=0x11901348
nid=0x604 waiting on monitor [0x14c4f000..0x14c4fdbc]
        at java.lang.Object.wait(Native Method)
        at org.eclipse.jface.text.reconciler.AbstractReconciler$BackgroundThread
.run(AbstractReconciler.java:128)

"org.eclipse.jface.text.reconciler.MonoReconciler" daemon prio=2 tid=0x1183fe10
nid=0x5f0 waiting on monitor [0x1419f000..0x1419fdbc]
        at java.lang.Object.wait(Native Method)
        at org.eclipse.jface.text.reconciler.AbstractReconciler$BackgroundThread
.run(AbstractReconciler.java:128)

"CVS" prio=5 tid=0x1161d9e8 nid=0x6fc waiting on monitor [0x1213f000..0x1213fdbc
]
        at java.lang.Object.wait(Native Method)
        at java.lang.Object.wait(Object.java:420)
        at org.eclipse.team.internal.ccvs.ui.CVSDecorator.next(CVSDecorator.java
:151)
        at org.eclipse.team.internal.ccvs.ui.CVSDecorationRunnable.run(CVSDecora
tionRunnable.java:86)
        at java.lang.Thread.run(Thread.java:484)

"Signal Dispatcher" daemon prio=10 tid=0x80e370 nid=0x6c8 waiting on monitor [0.
.0]

"Finalizer" daemon prio=9 tid=0x80a5e8 nid=0x188 waiting on monitor [0x114ef000.
.0x114efdbc]
        at java.lang.Object.wait(Native Method)
        at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:108)
        at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:123)
        at java.lang.ref.Finalizer$FinalizerThread.run(Finalizer.java:162)

"Reference Handler" daemon prio=10 tid=0x11230808 nid=0x718 waiting on monitor [
0x114af000..0x114afdbc]
        at java.lang.Object.wait(Native Method)
        at java.lang.Object.wait(Object.java:420)
        at java.lang.ref.Reference$ReferenceHandler.run(Reference.java:110)

"main" prio=5 tid=0x234720 nid=0x1fc waiting on monitor [0x6f000..0x6fc34]
        at java.lang.Thread.sleep(Native Method)
        at org.eclipse.jdt.internal.core.search.processing.JobManager.performCon
currentJob(JobManager.java:210)
        at org.eclipse.jdt.internal.core.hierarchy.IndexBasedHierarchyBuilder.se
archAllPossibleSubTypes(IndexBasedHierarchyBuilder.java:565)
        at org.eclipse.jdt.internal.core.hierarchy.IndexBasedHierarchyBuilder.de
terminePossibleSubTypes(IndexBasedHierarchyBuilder.java:446)
        at org.eclipse.jdt.internal.core.hierarchy.IndexBasedHierarchyBuilder.bu
ild(IndexBasedHierarchyBuilder.java:155)
        at org.eclipse.jdt.internal.core.hierarchy.TypeHierarchy.compute(TypeHie
rarchy.java:249)
        at org.eclipse.jdt.internal.core.hierarchy.TypeHierarchy.refresh(TypeHie
rarchy.java:1094)
        at org.eclipse.jdt.internal.ui.typehierarchy.TypeHierarchyLifeCycle.doHi
erarchyRefresh(TypeHierarchyLifeCycle.java:163)
        at org.eclipse.jdt.internal.ui.typehierarchy.TypeHierarchyLifeCycle.acce
ss$0(TypeHierarchyLifeCycle.java:129)
        at org.eclipse.jdt.internal.ui.typehierarchy.TypeHierarchyLifeCycle$1.ru
n(TypeHierarchyLifeCycle.java:105)
        at org.eclipse.jdt.internal.ui.util.BusyIndicatorRunnableContext$BusyRun
nable.internalRun(BusyIndicatorRunnableContext.java:107)
        at org.eclipse.jdt.internal.ui.util.BusyIndicatorRunnableContext$BusyRun
nable.run(BusyIndicatorRunnableContext.java:74)
        at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:56)

        at org.eclipse.jdt.internal.ui.util.BusyIndicatorRunnableContext.run(Bus
yIndicatorRunnableContext.java:120)
        at org.eclipse.jdt.internal.ui.typehierarchy.TypeHierarchyLifeCycle.ensu
reRefreshedTypeHierarchy(TypeHierarchyLifeCycle.java:113)
        at org.eclipse.jdt.internal.ui.typehierarchy.TypeHierarchyViewPart.doTyp
eHierarchyChangedOnViewers(TypeHierarchyViewPart.java:1100)
        at org.eclipse.jdt.internal.ui.typehierarchy.TypeHierarchyViewPart.acces
s$8(TypeHierarchyViewPart.java:1093)
        at org.eclipse.jdt.internal.ui.typehierarchy.TypeHierarchyViewPart$8.run
(TypeHierarchyViewPart.java:1087)
        at org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:29)
        at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.ja
va:93)
        at org.eclipse.swt.widgets.Display.runAsyncMessages(Display.java:1397)
        at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:1211)
        at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:700)
        at org.eclipse.ui.internal.Workbench.run(Workbench.java:683)
        at org.eclipse.core.internal.boot.InternalBootLoader.run(InternalBootLoa
der.java:777)
        at org.eclipse.core.boot.BootLoader.run(BootLoader.java:319)
        at java.lang.reflect.Method.invoke(Native Method)
        at org.eclipse.core.launcher.Main.basicRun(Main.java:151)
        at org.eclipse.core.launcher.Main.run(Main.java:502)
        at org.eclipse.core.launcher.Main.main(Main.java:362)

"VM Thread" prio=5 tid=0x23f6d0 nid=0x6f8 runnable

"VM Periodic Task Thread" prio=10 tid=0x80d038 nid=0x58c waiting on monitor
"Suspend Checker Thread" prio=10 tid=0x80d9c0 nid=0x71c runnable
Comment 1 Philipe Mulet CLA 2002-03-18 09:16:50 EST
Do you still have this workspace around ?
Comment 2 Dirk Baeumer CLA 2002-03-25 05:39:45 EST
The freeze happen with my working workspace. After restarting the IDE 
everything worked fine.
Comment 3 Philipe Mulet CLA 2002-03-25 07:13:46 EST
Does this mean you cannot reproduce it anymore ?
Comment 4 Dirk Baeumer CLA 2002-03-25 08:51:06 EST
Yes, I can't reproduce it anymore
Comment 5 Dirk Baeumer CLA 2002-03-26 06:06:35 EST
Got it again today. After killing the workbench and restarting everything 
worked fine again.
Comment 6 Philipe Mulet CLA 2002-04-11 05:03:54 EDT
Sure enough, it did rebuild your index files from scratch. The interesting part 
is the original crash in the indexer.

Maybe we should increase its robustness, i.e. if crashes, then captures this 
scenario and force reindexing all (at least you wouldn't need to exit and 
restart).
Comment 7 Philipe Mulet CLA 2002-05-02 14:03:17 EDT
Closing, crash recovery was added.