[GREENFOOT-596] Exception while trying to calculate where to show Java error
Following exception when using the smart crabs scenario we got sent as support ticket. Not sure immediately if it is a parser issue, or a compilation infrastructure issue, but it needs fixing either way:
{{{ Exception during compilation: java.lang.RuntimeException: java.lang.RuntimeException: java.lang.reflect.InvocationTargetException java.lang.RuntimeException: java.lang.RuntimeException: java.lang.reflect.InvocationTargetException at com.sun.tools.javac.main.Main.compile(Main.java:559) at com.sun.tools.javac.api.JavacTaskImpl.doCall(JavacTaskImpl.java:129) at com.sun.tools.javac.api.JavacTaskImpl.call(JavacTaskImpl.java:138) at bluej.compiler.CompilerAPICompiler.compile(CompilerAPICompiler.java:219) at bluej.compiler.Job.compile(Job.java:97) at bluej.compiler.CompilerThread.run(CompilerThread.java:72) Caused by: java.lang.RuntimeException: java.lang.reflect.InvocationTargetException at bluej.compiler.EventqueueCompileObserverAdapter.runOnEventQueue(EventqueueCompileObserverAdapter.java:73) at bluej.compiler.EventqueueCompileObserverAdapter.compilerMessage(EventqueueCompileObserverAdapter.java:84) at bluej.compiler.CompilerAPICompiler$1.report(CompilerAPICompiler.java:169) at com.sun.tools.javac.api.ClientCodeWrapper$WrappedDiagnosticListener.report(ClientCodeWrapper.java:593) at com.sun.tools.javac.util.Log.writeDiagnostic(Log.java:616) at com.sun.tools.javac.util.Log$DefaultDiagnosticHandler.report(Log.java:600) at com.sun.tools.javac.util.Log.report(Log.java:562) at com.sun.tools.javac.util.AbstractLog.error(AbstractLog.java:94) at com.sun.tools.javac.comp.Check.checkNonVoid(Check.java:637) at com.sun.tools.javac.comp.Resolve$MethodResultInfo.check(Resolve.java:1015) at com.sun.tools.javac.comp.Resolve$4.checkArg(Resolve.java:835) at com.sun.tools.javac.comp.Resolve$AbstractMethodCheck.argumentsAcceptable(Resolve.java:735) at com.sun.tools.javac.comp.Resolve$4.argumentsAcceptable(Resolve.java:844) at com.sun.tools.javac.comp.Resolve.rawInstantiate(Resolve.java:579) at com.sun.tools.javac.comp.Resolve.selectBest(Resolve.java:1446) at com.sun.tools.javac.comp.Resolve.findMethodInScope(Resolve.java:1633) at com.sun.tools.javac.comp.Resolve.findMethod(Resolve.java:1704) at com.sun.tools.javac.comp.Resolve.findMethod(Resolve.java:1677) at com.sun.tools.javac.comp.Resolve$14.doLookup(Resolve.java:2689) at com.sun.tools.javac.comp.Resolve$BasicLookupHelper.lookup(Resolve.java:3097) at com.sun.tools.javac.comp.Resolve.lookupMethod(Resolve.java:3348) at com.sun.tools.javac.comp.Resolve.resolveOperator(Resolve.java:2685) at com.sun.tools.javac.comp.Resolve.resolveBinaryOperator(Resolve.java:2726) at com.sun.tools.javac.comp.Attr.visitAssignop(Attr.java:3005) at com.sun.tools.javac.tree.JCTree$JCAssignOp.accept(JCTree.java:1716) at com.sun.tools.javac.comp.Attr.attribTree(Attr.java:576) at com.sun.tools.javac.comp.Attr.attribExpr(Attr.java:625) at com.sun.tools.javac.comp.Attr.visitExec(Attr.java:1593) at com.sun.tools.javac.tree.JCTree$JCExpressionStatement.accept(JCTree.java:1296) at com.sun.tools.javac.comp.Attr.attribTree(Attr.java:576) at com.sun.tools.javac.comp.Attr.attribStat(Attr.java:645) at com.sun.tools.javac.comp.Attr.attribStats(Attr.java:661) at com.sun.tools.javac.comp.Attr.visitBlock(Attr.java:1124) at com.sun.tools.javac.tree.JCTree$JCBlock.accept(JCTree.java:909) at com.sun.tools.javac.comp.Attr.attribTree(Attr.java:576) at com.sun.tools.javac.comp.Attr.attribStat(Attr.java:645) at com.sun.tools.javac.comp.Attr.visitMethodDef(Attr.java:1013) at com.sun.tools.javac.tree.JCTree$JCMethodDecl.accept(JCTree.java:778) at com.sun.tools.javac.comp.Attr.attribTree(Attr.java:576) at com.sun.tools.javac.comp.Attr.attribStat(Attr.java:645) at com.sun.tools.javac.comp.Attr.attribClassBody(Attr.java:4364) at com.sun.tools.javac.comp.Attr.attribClass(Attr.java:4272) at com.sun.tools.javac.comp.Attr.attribClass(Attr.java:4201) at com.sun.tools.javac.comp.Attr.attrib(Attr.java:4176) at com.sun.tools.javac.main.JavaCompiler.attribute(JavaCompiler.java:1248) at com.sun.tools.javac.main.JavaCompiler.compile2(JavaCompiler.java:901) at com.sun.tools.javac.main.JavaCompiler.compile(JavaCompiler.java:860) at com.sun.tools.javac.main.Main.compile(Main.java:523) ... 5 more Caused by: java.lang.reflect.InvocationTargetException at java.awt.EventQueue.invokeAndWait(EventQueue.java:1321) at java.awt.EventQueue.invokeAndWait(EventQueue.java:1296) at bluej.compiler.EventqueueCompileObserverAdapter.runOnEventQueue(EventqueueCompileObserverAdapter.java:70) ... 52 more Caused by: java.lang.ArrayIndexOutOfBoundsException: -2 at javax.swing.text.AbstractDocument$BranchElement.getElement(AbstractDocument.java:2350) at bluej.editor.moe.MoeEditor.getSourceLine(MoeEditor.java:2764) at bluej.editor.moe.MoeEditor.displayDiagnostic(MoeEditor.java:887) at bluej.pkgmgr.Package.showEditorDiagnostic(Package.java:2231) at bluej.pkgmgr.Package.access$700(Package.java:116) at bluej.pkgmgr.Package$PackageCompileObserver.errorMessage(Package.java:2790) at bluej.pkgmgr.Package$PackageCompileObserver.compilerMessage(Package.java:2758) at bluej.collect.DataCollectionCompileObserverWrapper.compilerMessage(DataCollectionCompileObserverWrapper.java:73) at bluej.compiler.EventqueueCompileObserverAdapter.run(EventqueueCompileObserverAdapter.java:120) at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:301) at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:756) at java.awt.EventQueue.access$500(EventQueue.java:97) at java.awt.EventQueue$3.run(EventQueue.java:709) at java.awt.EventQueue$3.run(EventQueue.java:703) at java.security.AccessController.doPrivileged(Native Method) at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:76) at java.awt.EventQueue.dispatchEvent(EventQueue.java:726) at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201) at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116) at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93) at java.awt.EventDispatchThread.run(EventDispatchThread.java:82) }}}
Issue metadata
- Issue type: Bug
- Priority: Highest
- Fix versions: 3.1.0