Community
Participate
Working Groups
I20080613-2000 Error occurs while adding the following method to JDT/UI JavaDocTagsProcessor (HEAD): public static void foo(String param) { String foo= param; Srtring bar = """ } -- Error Details -- Date: Wed Jul 02 09:39:13 CEST 2008 Message: Exception occurred during problem detection: ----------------------------------- SOURCE BEGIN ------------------------------------- see attachment ----------------------------------- SOURCE END ------------------------------------- Severity: Error Plugin: org.eclipse.jdt.core Session Data: eclipse.buildId=I20080613-2000 java.version=1.6.0 java.vendor=Sun Microsystems Inc. BootLoader constants: OS=linux, ARCH=x86, WS=gtk, NL=en_US Framework arguments: -startup plugins/org.eclipse.equinox.launcher_1.0.100.v20080509-1800.jar -showsplash org.eclipse.platform --launcher.XXMaxPermSize 256m Command-line arguments: -os linux -ws gtk -arch x86 -startup plugins/org.eclipse.equinox.launcher_1.0.100.v20080509-1800.jar -showsplash org.eclipse.platform --launcher.XXMaxPermSize 256m Exception Stack Trace: java.lang.NegativeArraySizeException at org.eclipse.jdt.internal.compiler.parser.Scanner.getCurrentTokenSourceString(Scanner.java:489) at org.eclipse.jdt.internal.compiler.parser.Parser.recoveryTokenCheck(Parser.java:10158) at org.eclipse.jdt.internal.compiler.parser.Parser.updateRecoveryState(Parser.java:10456) at org.eclipse.jdt.internal.compiler.parser.Parser.resumeOnSyntaxError(Parser.java:10372) at org.eclipse.jdt.internal.compiler.parser.Parser.parse(Parser.java:9189) at org.eclipse.jdt.internal.compiler.parser.Parser.parse(Parser.java:9596) at org.eclipse.jdt.internal.compiler.ast.MethodDeclaration.parseStatements(MethodDeclaration.java:122) at org.eclipse.jdt.internal.compiler.ast.TypeDeclaration.parseMethods(TypeDeclaration.java:802) at org.eclipse.jdt.internal.compiler.parser.Parser.getMethodBodies(Parser.java:8513) at org.eclipse.jdt.internal.compiler.SourceElementParser.parseCompilationUnit(SourceElementParser.java:909) at org.eclipse.jdt.internal.core.CompilationUnitProblemFinder.process(CompilationUnitProblemFinder.java:170) at org.eclipse.jdt.internal.core.CompilationUnit.buildStructure(CompilationUnit.java:193) at org.eclipse.jdt.internal.core.Openable.generateInfos(Openable.java:257) at org.eclipse.jdt.internal.core.JavaElement.openWhenClosed(JavaElement.java:514) at org.eclipse.jdt.internal.core.CompilationUnit.makeConsistent(CompilationUnit.java:1065) at org.eclipse.jdt.internal.core.ReconcileWorkingCopyOperation.makeConsistent(ReconcileWorkingCopyOperation.java:170) at org.eclipse.jdt.internal.core.ReconcileWorkingCopyOperation.executeOperation(ReconcileWorkingCopyOperation.java:89) at org.eclipse.jdt.internal.core.JavaModelOperation.run(JavaModelOperation.java:709) at org.eclipse.jdt.internal.core.JavaModelOperation.runOperation(JavaModelOperation.java:770) at org.eclipse.jdt.internal.core.CompilationUnit.reconcile(CompilationUnit.java:1224) at org.eclipse.jdt.internal.ui.text.java.JavaReconcilingStrategy.reconcile(JavaReconcilingStrategy.java:124) 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:37) 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:149) 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)
Created attachment 106282 [details] sourcefile here is the complete source file which leads to these exceptions
Problem only occurs if enabling missing NLS tags (-warn:+nls). It is a regression over 3.3.2, introduced in 3.4M5
Created attachment 106402 [details] Proposed fix
Released for 3.5M1. Test added ParserTest#test028()
Created attachment 106404 [details] Proposed fix for 3.4.1 set 'currentToken' to 0 when there is an invalid token to avoid to take into account the previous token twice (the string literal).
Released for 3.4.1. Test added ParserTest#test028()
Verified for 3.5M1 using I20080805-1307
Repen to close as RESOLVED/FIXED to be closed as VERIFIED during 3.4.1 verification pass.
Fixed.
Verified for 3.4.1 using M20080827-2000.