Summary: | [recovery] ArrayIndexOutOfBounds in Parser in reconciler | ||
---|---|---|---|
Product: | [Eclipse Project] JDT | Reporter: | Douglas Pollock <douglas.pollock> |
Component: | Core | Assignee: | David Audel <david_audel> |
Status: | VERIFIED FIXED | QA Contact: | |
Severity: | major | ||
Priority: | P3 | ||
Version: | 3.0 | ||
Target Milestone: | 3.1 M3 | ||
Hardware: | PC | ||
OS: | Linux-GTK | ||
Whiteboard: |
Description
Douglas Pollock
2004-10-28 15:50:54 EDT
Yes, it's reproducible. The original trace is: Exception in thread "org.eclipse.jdt.internal.ui.text.JavaReconciler" java.lang.ArrayIndexOutOfBoundsException: -1 at org.eclipse.jdt.internal.compiler.parser.Parser.pushOnEnumConstantPartStack(Parser.java:8829) at org.eclipse.jdt.internal.compiler.parser.RecoveredBlock.add(RecoveredBlock.java:157) at org.eclipse.jdt.internal.compiler.parser.RecoveredMethod.add(RecoveredMethod.java:214) at org.eclipse.jdt.internal.compiler.parser.Parser.consumeAllocationHeader(Parser.java:1019) at org.eclipse.jdt.internal.compiler.parser.Parser.consumeRule(Parser.java:5115) at org.eclipse.jdt.internal.compiler.parser.Parser.parse(Parser.java:8381) at org.eclipse.jdt.internal.compiler.parser.Parser.parse(Parser.java:8546) at org.eclipse.jdt.internal.compiler.parser.Parser.parse(Parser.java:8511) at org.eclipse.jdt.internal.compiler.SourceElementParser.parseCompilationUnit(SourceElementParser.java:1509) at org.eclipse.jdt.internal.core.CompilationUnit.buildStructure(CompilationUnit.java:117) at org.eclipse.jdt.internal.core.Openable.generateInfos(Openable.java:203) at org.eclipse.jdt.internal.core.JavaElement.openWhenClosed(JavaElement.java:553) at org.eclipse.jdt.internal.core.CompilationUnit.makeConsistent(CompilationUnit.java:978) at org.eclipse.jdt.internal.core.ReconcileWorkingCopyOperation.executeOperation(ReconcileWorkingCopyOperation.java:60) at org.eclipse.jdt.internal.core.JavaModelOperation.run(JavaModelOperation.java:700) at org.eclipse.jdt.internal.core.JavaModelOperation.runOperation(JavaModelOperation.java:739) at org.eclipse.jdt.internal.core.CompilationUnit.reconcile(CompilationUnit.java:1104) at org.eclipse.jdt.internal.ui.text.java.JavaReconcilingStrategy.reconcile(JavaReconcilingStrategy.java:91) at org.eclipse.jdt.internal.ui.text.java.JavaReconcilingStrategy.reconcile(JavaReconcilingStrategy.java:133) at org.eclipse.jdt.internal.ui.text.CompositeReconcilingStrategy.reconcile(CompositeReconcilingStrategy.java:86) at org.eclipse.jdt.internal.ui.text.JavaCompositeReconcilingStrategy.reconcile(JavaCompositeReconcilingStrategy.java:96) at org.eclipse.jface.text.reconciler.MonoReconciler.process(MonoReconciler.java:75) at org.eclipse.jdt.internal.ui.text.JavaReconciler.process(JavaReconciler.java:318) at org.eclipse.jface.text.reconciler.AbstractReconciler$BackgroundThread.run(AbstractReconciler.java:204) Can you please attach an exact testcase ? 1.) Open Workbench.java 2.) Change "public final class Workbench" to "public final cl Workbench" 3.) Hover over "Workbench". Enum constant recovery does not use a stack anymore. Fixed. Verified for 3.1 M3 with build I200411040010 + jdt.core HEAD |