Community
Participate
Working Groups
What steps will reproduce the problem? Happened during writing in the Java Editor (insertion using Content Assist). -- Error Details -- Date: Mon Mar 08 16:38:39 CET 2010 Message: Exception occurred in listener of Java element change notification Severity: Error Product: Eclipse 1.2.2.20100122-1337 (org.eclipse.epp.package.modeling.product) Plugin: org.eclipse.jdt.core Exception Stack Trace: java.lang.ArrayIndexOutOfBoundsException at org.eclipse.jdt.internal.ui.javaeditor.DocumentAdapter.getText(DocumentAdapter.java:400) at org.eclipse.jdt.internal.core.Member.getJavadocRange(Member.java:282) at org.eclipse.emf.mint.internal.MemberAnnotationManager.getJavadoc(MemberAnnotationManager.java:240) at org.eclipse.emf.mint.internal.MemberAnnotationManager.computeCodeGenStatus(MemberAnnotationManager.java:219) at org.eclipse.emf.mint.internal.MemberAnnotationManager.getCodeGenStatusChecked(MemberAnnotationManager.java:93) at org.eclipse.emf.mint.internal.MemberAnnotationManager.computeChanges(MemberAnnotationManager.java:183) at org.eclipse.emf.mint.internal.MemberAnnotationManager.elementChanged(MemberAnnotationManager.java:122) at org.eclipse.jdt.internal.core.DeltaProcessor$3.run(DeltaProcessor.java:1557) at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42) at org.eclipse.jdt.internal.core.DeltaProcessor.notifyListeners(DeltaProcessor.java:1547) at org.eclipse.jdt.internal.core.DeltaProcessor.fireReconcileDelta(DeltaProcessor.java:1399) at org.eclipse.jdt.internal.core.DeltaProcessor.fire(DeltaProcessor.java:1358) at org.eclipse.jdt.internal.core.JavaModelOperation.run(JavaModelOperation.java:769) at org.eclipse.jdt.internal.core.JavaModelOperation.runOperation(JavaModelOperation.java:788) at org.eclipse.jdt.internal.core.CompilationUnit.reconcile(CompilationUnit.java:1244) at org.eclipse.jdt.internal.ui.text.java.JavaReconcilingStrategy.reconcile(JavaReconcilingStrategy.java:126) at org.eclipse.jdt.internal.ui.text.java.JavaReconcilingStrategy.access$0(JavaReconcilingStrategy.java:108) at org.eclipse.jdt.internal.ui.text.java.JavaReconcilingStrategy$1.run(JavaReconcilingStrategy.java:89) at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42) at org.eclipse.jdt.internal.ui.text.java.JavaReconcilingStrategy.reconcile(JavaReconcilingStrategy.java:87) at org.eclipse.jdt.internal.ui.text.java.JavaReconcilingStrategy.reconcile(JavaReconcilingStrategy.java:151) at org.eclipse.jdt.internal.ui.text.CompositeReconcilingStrategy.reconcile(CompositeReconcilingStrategy.java:86) at org.eclipse.jdt.internal.ui.text.JavaCompositeReconcilingStrategy.reconcile(JavaCompositeReconcilingStrategy.java:102) at org.eclipse.jface.text.reconciler.MonoReconciler.process(MonoReconciler.java:77) at org.eclipse.jface.text.reconciler.AbstractReconciler$BackgroundThread.run(AbstractReconciler.java:206)
java.lang.ArrayIndexOutOfBoundsException at org.eclipse.jdt.internal.ui.javaeditor.DocumentAdapter.getText(DocumentAdapter.java:400) at org.eclipse.jdt.internal.core.Member.getJavadocRange(Member.java:282) This can always happen since access to the buffer is not synchronized in Member#getJavadocRange(..). I think JDT Core should: - adapt IBuffer#getText(..) to realities and specify that it can throw IndexOutOfBoundsException - in Member#getJavadocRange(..), catch the IOOBE and return null
Created attachment 161598 [details] rough patch
Thanks for the patch, Ayushman
Created attachment 162167 [details] Updated patch
Daniel, does this change require PMC approval? I would say no since this is not an API breakage as is. It is more an update of the specification to reflect reality and warn the users of possible IOOBE.
>Daniel, does this change require PMC approval? No.
Released for 3.6M7.
Verified for 3.6M7 using v_A48 code.