Community
Participate
Working Groups
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
Do you still have this workspace around ?
The freeze happen with my working workspace. After restarting the IDE everything worked fine.
Does this mean you cannot reproduce it anymore ?
Yes, I can't reproduce it anymore
Got it again today. After killing the workbench and restarting everything worked fine again.
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).
Closing, crash recovery was added.