Compiling student code in order to grade. Granted, the student code itself looks pretty bad, but an unhelpful error pops up in drjava.
1 error found:
File: (no associated file) [line: (no source location)]
Error: java.lang.RuntimeException: Internal Program Error: Couldn't find the SymbolData for the anonymous inner class. Please report this bug.
Here's the method where the error occurs. I've attached four source files in the attached ZIP for you to compile.
ObjectList selection(ObjectList other) {
if (other == EmptyObjectList.ONLY) {
return EmptyObjectList.ONLY; }
else {
(rest.selection(other)).MyCons((other.filter(
new Predicate() {
boolean test(Object o) {
if (((Number)o).doubleValue() == ((Number)first).doubleValue()) {
return true;}
else {
return false;}
}
}).first())); }
return null;
}
edu.rice.cs.util.UnexpectedException: java.lang.RuntimeException: Internal Program Error: Couldn't find the SymbolData for the anonymous inner class. Please report this bug.
at edu.rice.cs.drjava.model.compiler.DefaultCompilerModel._doCompile(DefaultCompilerModel.java:246)
at edu.rice.cs.drjava.model.compiler.DefaultCompilerModel.compileAll(DefaultCompilerModel.java:142)
at edu.rice.cs.drjava.ui.MainFrame._compileAll(MainFrame.java:5310)
at edu.rice.cs.drjava.ui.MainFrame.access$4800(MainFrame.java:116)
at edu.rice.cs.drjava.ui.MainFrame$51.actionPerformed(MainFrame.java:822)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1995)
at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2318)
at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:387)
at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:242)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:236)
at java.awt.AWTEventMulticaster.mouseReleased(AWTEventMulticaster.java:272)
at java.awt.Component.processMouseEvent(Component.java:6216)
at javax.swing.JComponent.processMouseEvent(JComponent.java:3265)
at java.awt.Component.processEvent(Component.java:5981)
at java.awt.Container.processEvent(Container.java:2041)
at java.awt.Component.dispatchEventImpl(Component.java:4583)
at java.awt.Container.dispatchEventImpl(Container.java:2099)
at java.awt.Component.dispatchEvent(Component.java:4413)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4556)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4220)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4150)
at java.awt.Container.dispatchEventImpl(Container.java:2085)
at java.awt.Window.dispatchEventImpl(Window.java:2475)
at java.awt.Component.dispatchEvent(Component.java:4413)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:599)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:174)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:169)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:161)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)
Caused by: java.lang.RuntimeException: Internal Program Error: Couldn't find the SymbolData for the anonymous inner class. Please report this bug.
at edu.rice.cs.javalanglevels.Augmentor.forAnonymousClassInstantiation(Augmentor.java:420)
at edu.rice.cs.javalanglevels.Augmentor.forSimpleAnonymousClassInstantiation(Augmentor.java:445)
at edu.rice.cs.javalanglevels.tree.SimpleAnonymousClassInstantiation.visit(SimpleAnonymousClassInstantiation.java:22)
at edu.rice.cs.javalanglevels.tree.JExpressionIFDepthFirstVisitor_void.forParenthesizedExpressionList(JExpressionIFDepthFirstVisitor_void.java:2333)
at edu.rice.cs.javalanglevels.tree.ParenthesizedExpressionList.visit(ParenthesizedExpressionList.java:22)
at edu.rice.cs.javalanglevels.tree.JExpressionIFDepthFirstVisitor_void.forComplexMethodInvocation(JExpressionIFDepthFirstVisitor_void.java:2265)
at edu.rice.cs.javalanglevels.tree.ComplexMethodInvocation.visit(ComplexMethodInvocation.java:29)
at edu.rice.cs.javalanglevels.tree.JExpressionIFDepthFirstVisitor_void.forComplexMethodInvocation(JExpressionIFDepthFirstVisitor_void.java:2263)
at edu.rice.cs.javalanglevels.tree.ComplexMethodInvocation.visit(ComplexMethodInvocation.java:29)
at edu.rice.cs.javalanglevels.tree.JExpressionIFDepthFirstVisitor_void.forParenthesized(JExpressionIFDepthFirstVisitor_void.java:2310)
at edu.rice.cs.javalanglevels.tree.Parenthesized.visit(Parenthesized.java:29)
at edu.rice.cs.javalanglevels.tree.JExpressionIFDepthFirstVisitor_void.forParenthesizedExpressionList(JExpressionIFDepthFirstVisitor_void.java:2333)
at edu.rice.cs.javalanglevels.tree.ParenthesizedExpressionList.visit(ParenthesizedExpressionList.java:22)
at edu.rice.cs.javalanglevels.tree.JExpressionIFDepthFirstVisitor_void.forComplexMethodInvocation(JExpressionIFDepthFirstVisitor_void.java:2265)
at edu.rice.cs.javalanglevels.tree.ComplexMethodInvocation.visit(ComplexMethodInvocation.java:29)
at edu.rice.cs.javalanglevels.tree.JExpressionIFDepthFirstVisitor_void.forExpressionStatement(JExpressionIFDepthFirstVisitor_void.java:1590)
at edu.rice.cs.javalanglevels.tree.ExpressionStatement.visit(ExpressionStatement.java:29)
at edu.rice.cs.javalanglevels.tree.JExpressionIFDepthFirstVisitor_void.forBracedBody(JExpressionIFDepthFirstVisitor_void.java:2321)
at edu.rice.cs.javalanglevels.tree.BracedBody.visit(BracedBody.java:22)
at edu.rice.cs.javalanglevels.tree.JExpressionIFDepthFirstVisitor_void.forBlock(JExpressionIFDepthFirstVisitor_void.java:1584)
at edu.rice.cs.javalanglevels.tree.Block.visit(Block.java:29)
at edu.rice.cs.javalanglevels.tree.JExpressionIFDepthFirstVisitor_void.forIfThenElseStatement(JExpressionIFDepthFirstVisitor_void.java:1612)
at edu.rice.cs.javalanglevels.tree.IfThenElseStatement.visit(IfThenElseStatement.java:29)
at edu.rice.cs.javalanglevels.tree.JExpressionIFDepthFirstVisitor_void.forBracedBody(JExpressionIFDepthFirstVisitor_void.java:2321)
at edu.rice.cs.javalanglevels.tree.BracedBody.visit(BracedBody.java:22)
at edu.rice.cs.javalanglevels.Augmentor.forConcreteMethodDef(Augmentor.java:264)
at edu.rice.cs.javalanglevels.tree.ConcreteMethodDef.visit(ConcreteMethodDef.java:29)
at edu.rice.cs.javalanglevels.tree.JExpressionIFDepthFirstVisitor_void.forBracedBody(JExpressionIFDepthFirstVisitor_void.java:2321)
at edu.rice.cs.javalanglevels.tree.BracedBody.visit(BracedBody.java:22)
at edu.rice.cs.javalanglevels.Augmentor.forClassDef(Augmentor.java:288)
at edu.rice.cs.javalanglevels.tree.ClassDef.visit(ClassDef.java:29)
at edu.rice.cs.javalanglevels.Augmentor.forSourceFile(Augmentor.java:472)
at edu.rice.cs.javalanglevels.tree.SourceFile.visit(SourceFile.java:43)
at edu.rice.cs.javalanglevels.LanguageLevelConverter.convert(LanguageLevelConverter.java:355)
at edu.rice.cs.drjava.model.compiler.DefaultCompilerModel._compileLanguageLevelsFiles(DefaultCompilerModel.java:485)
at edu.rice.cs.drjava.model.compiler.DefaultCompilerModel._compileFiles(DefaultCompilerModel.java:312)
at edu.rice.cs.drjava.model.compiler.DefaultCompilerModel._doCompile(DefaultCompilerModel.java:241)
... 30 more
Caused by:
java.lang.RuntimeException: Internal Program Error: Couldn't find the SymbolData for the anonymous inner class. Please report this bug.
at edu.rice.cs.javalanglevels.Augmentor.forAnonymousClassInstantiation(Augmentor.java:420)
at edu.rice.cs.javalanglevels.Augmentor.forSimpleAnonymousClassInstantiation(Augmentor.java:445)
at edu.rice.cs.javalanglevels.tree.SimpleAnonymousClassInstantiation.visit(SimpleAnonymousClassInstantiation.java:22)
at edu.rice.cs.javalanglevels.tree.JExpressionIFDepthFirstVisitor_void.forParenthesizedExpressionList(JExpressionIFDepthFirstVisitor_void.java:2333)
at edu.rice.cs.javalanglevels.tree.ParenthesizedExpressionList.visit(ParenthesizedExpressionList.java:22)
at edu.rice.cs.javalanglevels.tree.JExpressionIFDepthFirstVisitor_void.forComplexMethodInvocation(JExpressionIFDepthFirstVisitor_void.java:2265)
at edu.rice.cs.javalanglevels.tree.ComplexMethodInvocation.visit(ComplexMethodInvocation.java:29)
at edu.rice.cs.javalanglevels.tree.JExpressionIFDepthFirstVisitor_void.forComplexMethodInvocation(JExpressionIFDepthFirstVisitor_void.java:2263)
at edu.rice.cs.javalanglevels.tree.ComplexMethodInvocation.visit(ComplexMethodInvocation.java:29)
at edu.rice.cs.javalanglevels.tree.JExpressionIFDepthFirstVisitor_void.forParenthesized(JExpressionIFDepthFirstVisitor_void.java:2310)
at edu.rice.cs.javalanglevels.tree.Parenthesized.visit(Parenthesized.java:29)
at edu.rice.cs.javalanglevels.tree.JExpressionIFDepthFirstVisitor_void.forParenthesizedExpressionList(JExpressionIFDepthFirstVisitor_void.java:2333)
at edu.rice.cs.javalanglevels.tree.ParenthesizedExpressionList.visit(ParenthesizedExpressionList.java:22)
at edu.rice.cs.javalanglevels.tree.JExpressionIFDepthFirstVisitor_void.forComplexMethodInvocation(JExpressionIFDepthFirstVisitor_void.java:2265)
at edu.rice.cs.javalanglevels.tree.ComplexMethodInvocation.visit(ComplexMethodInvocation.java:29)
at edu.rice.cs.javalanglevels.tree.JExpressionIFDepthFirstVisitor_void.forExpressionStatement(JExpressionIFDepthFirstVisitor_void.java:1590)
at edu.rice.cs.javalanglevels.tree.ExpressionStatement.visit(ExpressionStatement.java:29)
at edu.rice.cs.javalanglevels.tree.JExpressionIFDepthFirstVisitor_void.forBracedBody(JExpressionIFDepthFirstVisitor_void.java:2321)
at edu.rice.cs.javalanglevels.tree.BracedBody.visit(BracedBody.java:22)
at edu.rice.cs.javalanglevels.tree.JExpressionIFDepthFirstVisitor_void.forBlock(JExpressionIFDepthFirstVisitor_void.java:1584)
at edu.rice.cs.javalanglevels.tree.Block.visit(Block.java:29)
at edu.rice.cs.javalanglevels.tree.JExpressionIFDepthFirstVisitor_void.forIfThenElseStatement(JExpressionIFDepthFirstVisitor_void.java:1612)
at edu.rice.cs.javalanglevels.tree.IfThenElseStatement.visit(IfThenElseStatement.java:29)
at edu.rice.cs.javalanglevels.tree.JExpressionIFDepthFirstVisitor_void.forBracedBody(JExpressionIFDepthFirstVisitor_void.java:2321)
at edu.rice.cs.javalanglevels.tree.BracedBody.visit(BracedBody.java:22)
at edu.rice.cs.javalanglevels.Augmentor.forConcreteMethodDef(Augmentor.java:264)
at edu.rice.cs.javalanglevels.tree.ConcreteMethodDef.visit(ConcreteMethodDef.java:29)
at edu.rice.cs.javalanglevels.tree.JExpressionIFDepthFirstVisitor_void.forBracedBody(JExpressionIFDepthFirstVisitor_void.java:2321)
at edu.rice.cs.javalanglevels.tree.BracedBody.visit(BracedBody.java:22)
at edu.rice.cs.javalanglevels.Augmentor.forClassDef(Augmentor.java:288)
at edu.rice.cs.javalanglevels.tree.ClassDef.visit(ClassDef.java:29)
at edu.rice.cs.javalanglevels.Augmentor.forSourceFile(Augmentor.java:472)
at edu.rice.cs.javalanglevels.tree.SourceFile.visit(SourceFile.java:43)
at edu.rice.cs.javalanglevels.LanguageLevelConverter.convert(LanguageLevelConverter.java:355)
at edu.rice.cs.drjava.model.compiler.DefaultCompilerModel._compileLanguageLevelsFiles(DefaultCompilerModel.java:485)
at edu.rice.cs.drjava.model.compiler.DefaultCompilerModel._compileFiles(DefaultCompilerModel.java:312)
at edu.rice.cs.drjava.model.compiler.DefaultCompilerModel._doCompile(DefaultCompilerModel.java:241)
at edu.rice.cs.drjava.model.compiler.DefaultCompilerModel.compileAll(DefaultCompilerModel.java:142)
at edu.rice.cs.drjava.ui.MainFrame._compileAll(MainFrame.java:5310)
at edu.rice.cs.drjava.ui.MainFrame.access$4800(MainFrame.java:116)
at edu.rice.cs.drjava.ui.MainFrame$51.actionPerformed(MainFrame.java:822)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1995)
at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2318)
at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:387)
at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:242)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:236)
at java.awt.AWTEventMulticaster.mouseReleased(AWTEventMulticaster.java:272)
at java.awt.Component.processMouseEvent(Component.java:6216)
at javax.swing.JComponent.processMouseEvent(JComponent.java:3265)
at java.awt.Component.processEvent(Component.java:5981)
at java.awt.Container.processEvent(Container.java:2041)
at java.awt.Component.dispatchEventImpl(Component.java:4583)
at java.awt.Container.dispatchEventImpl(Container.java:2099)
at java.awt.Component.dispatchEvent(Component.java:4413)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4556)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4220)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4150)
at java.awt.Container.dispatchEventImpl(Container.java:2085)
at java.awt.Window.dispatchEventImpl(Window.java:2475)
at java.awt.Component.dispatchEvent(Component.java:4413)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:599)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:174)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:169)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:161)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)
System Properties:
DrJava Version drjava-20090402-r4864
DrJava Build Time 20090402-0550
drjava.debug.port = 60390
java.runtime.name = Java(TM) SE Runtime Environment
sun.boot.library.path = /usr/lib/jvm/java-6-sun-1.6.0.13/jre/lib/amd64
java.vm.version = 11.3-b02
java.vm.vendor = Sun Microsystems Inc.
java.vendor.url = http://java.sun.com/
path.separator = :
java.vm.name = Java HotSpot(TM) 64-Bit Server VM
file.encoding.pkg = sun.io
sun.java.launcher = SUN_STANDARD
user.country = US
sun.os.patch.level = unknown
java.vm.specification.name = Java Virtual Machine Specification
user.dir = <anonymized user.home>
java.runtime.version = 1.6.0_13-b03
java.awt.graphicsenv = sun.awt.X11GraphicsEnvironment
java.endorsed.dirs = /usr/lib/jvm/java-6-sun-1.6.0.13/jre/lib/endorsed
os.arch = amd64
java.io.tmpdir = /tmp
line.separator = "\u000a"
java.vm.specification.vendor = Sun Microsystems Inc.
os.name = Linux
sun.jnu.encoding = UTF-8
java.library.path = /usr/lib/jvm/java-6-sun-1.6.0.13/jre/lib/amd64/server:/usr/lib/jvm/java-6-sun-1.6.0.13/jre/lib/amd64:/usr/lib/jvm/java-6-sun-1.6.0.13/jre/../lib/amd64:/usr/java/packages/lib/amd64:/lib:/usr/lib
java.specification.name = Java Platform API Specification
java.class.version = 50.0
sun.management.compiler = HotSpot 64-Bit Server Compiler
os.version = 2.6.28-11-generic
user.home = <anonymized user.home>
user.timezone = America/North_Dakota/New_Salem
java.awt.printerjob = sun.print.PSPrinterJob
file.encoding = UTF-8
java.specification.version = 1.6
java.class.path = <anonymized user.home>/hw8/drjava-20090402-r4864.jar
user.name = <anonymized user.name>
java.vm.specification.version = 1.0
java.home = /usr/lib/jvm/java-6-sun-1.6.0.13/jre
sun.arch.data.model = 64
user.language = en
java.specification.vendor = Sun Microsystems Inc.
java.vm.info = mixed mode
java.version = 1.6.0_13
java.ext.dirs = /usr/lib/jvm/java-6-sun-1.6.0.13/jre/lib/ext:/usr/java/packages/lib/ext
sun.boot.class.path = /usr/lib/jvm/java-6-sun-1.6.0.13/jre/lib/resources.jar:/usr/lib/jvm/java-6-sun-1.6.0.13/jre/lib/rt.jar:/usr/lib/jvm/java-6-sun-1.6.0.13/jre/lib/sunrsasign.jar:/usr/lib/jvm/java-6-sun-1.6.0.13/jre/lib/jsse.jar:/usr/lib/jvm/java-6-sun-1.6.0.13/jre/lib/jce.jar:/usr/lib/jvm/java-6-sun-1.6.0.13/jre/lib/charsets.jar:/usr/lib/jvm/java-6-sun-1.6.0.13/jre/classes
java.vendor = Sun Microsystems Inc.
file.separator = /
java.vendor.url.bug = http://java.sun.com/cgi-bin/bugreport.cgi
sun.io.unicode.encoding = UnicodeLittle
sun.cpu.endian = little
java.rmi.server.hostname = 127.0.0.1
sun.desktop = gnome
sun.cpu.isalist =
#DrJava configuration file
#Fri Apr 10 02:53:42 CDT 2009
javac.location = /usr/lib/jvm/java-6-sun-1.6.0.13/lib/tools.jar
key.delete.next = shift DELETE
key.delete.previous = shift BACK_SPACE
quit.prompt = false
interactions.reset.prompt = false
save.before.compile = true
remote.control.enabled = false
language.level = 2
recent.files = [<anonymized user.home>/hw8/qian/dsq1-sak2-hw08/EmptyObjectList.dj1,<anonymized user.home>/hw8/qian/dsq1-sak2-hw08/Predicate.dj1,<anonymized user.home>/hw8/qian/dsq1-sak2-hw08/ObjectList.dj1,<anonymized user.home>/hw8/qian/dsq1-sak2-hw08/ConsObjectList.dj1,<anonymized user.home>/hw8/qian/dsq1-sak2-hw08/TestEmptyObjectList.dj1]
window.height = 1045
window.x = 949
window.y = 24
last.dir = <anonymized user.home>/hw8/qian/dsq1-sak2-hw08/ConsObjectList.dj1
last.interactions.dir = <anonymized user.home>/hw8/qian/dsq1-sak2-hw08
tabbedpanes.state = 960 600 700 400
dialog.drjava.survey.enabled = false
new.version.notification.last = 1239005729014
drjava.survey.notification.last = 1239006689391
drjava.survey.result.last = http://www.drjava.org/submit-usage.php?rev=4864&os.name=Linux&os.version=2.6.28-11-generic&java.version=1.6.0_13&java.vendor=Sun%20Microsystems%20Inc.
Used memory: about 114.20 megabytes
Free memory: about 70.61 megabytes
Total memory: about 184.81 megabytes
Total memory can expand to: about 1.69 gigabytes
zip of four .dj1 files that cause the error with the exception text