Code that compiles in the definitions pane with an
inner enum fails when executed in the interactions
pane, giving a NoClassDefFoundError.
The code is as follows:
public class C {
public enum Suit { CLUBS, DIAMONDS, HEARTS, SPADES; }
public static void m() {
System.out.println(Suit.CLUBS);
}
}
There is already a test case written for it, but it has
never been run. Distinction1415 testEnum15 tests this
exact line, and when written, was commented out because
we did not yet have support for enums. I went back to
add the test back in, now that we have support, and it
failed.
Logged In: NO
Dr java rocks!
Logged In: YES
user_id=1075744
Originator: NO
With the new interpreter, I am now getting the following error in the Interactions Pane:
Static Error: Name is ambiguous
Logged In: YES
user_id=1075744
Originator: NO
With DrJava revision 4513, I am now getting the following exception thrown:
edu.rice.cs.util.UnexpectedException: java.lang.UnsupportedOperationException: Not yet implemented
at edu.rice.cs.drjava.model.repl.newjvm.MainJVM$ResultHandler.forUnexpectedException(MainJVM.java:797)
at edu.rice.cs.drjava.model.repl.newjvm.MainJVM$ResultHandler.forUnexpectedException(MainJVM.java:751)
at edu.rice.cs.drjava.model.repl.newjvm.InterpretResult$UnexpectedExceptionResult.apply(InterpretResult.java:95)
at edu.rice.cs.drjava.model.repl.newjvm.MainJVM.interpret(MainJVM.java:190)
at edu.rice.cs.drjava.model.repl.RMIInteractionsModel._interpret(RMIInteractionsModel.java:75)
at edu.rice.cs.drjava.model.repl.InteractionsModel.interpret(InteractionsModel.java:214)
at edu.rice.cs.drjava.model.repl.InteractionsModel.interpretCurrentInteraction(InteractionsModel.java:195)
at edu.rice.cs.drjava.ui.InteractionsController$10$1.run(InteractionsController.java:457)
Caused by: java.lang.UnsupportedOperationException: Not yet implemented
at edu.rice.cs.dynamicjava.interpreter.ClassMemberChecker.visit(ClassMemberChecker.java:54)
at edu.rice.cs.dynamicjava.interpreter.ClassMemberChecker.visit(ClassMemberChecker.java:21)
at koala.dynamicjava.tree.ClassDeclaration.acceptVisitor(ClassDeclaration.java:116)
at edu.rice.cs.dynamicjava.interpreter.ClassMemberChecker.checkMembers(ClassMemberChecker.java:32)
at edu.rice.cs.dynamicjava.interpreter.StatementChecker.visit(StatementChecker.java:323)
at edu.rice.cs.dynamicjava.interpreter.StatementChecker.visit(StatementChecker.java:110)
at koala.dynamicjava.tree.ClassDeclaration.acceptVisitor(ClassDeclaration.java:116)
at edu.rice.cs.dynamicjava.interpreter.Interpreter.typeCheck(Interpreter.java:75)
at edu.rice.cs.dynamicjava.interpreter.Interpreter.interpret(Interpreter.java:46)
at edu.rice.cs.drjava.model.repl.newjvm.InterpreterJVM.interpret(InterpreterJVM.java:250)
at edu.rice.cs.drjava.model.repl.newjvm.InterpreterJVM.interpret(InterpreterJVM.java:227)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:294)
at sun.rmi.transport.Transport$1.run(Transport.java:153)
at java.security.AccessController.doPrivileged(Native Method)
at sun.rmi.transport.Transport.serviceCall(Transport.java:149)
at sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:466)
at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:707)
at java.lang.Thread.run(Thread.java:613)
Caused by:
java.lang.UnsupportedOperationException: Not yet implemented
at edu.rice.cs.dynamicjava.interpreter.ClassMemberChecker.visit(ClassMemberChecker.java:54)
at edu.rice.cs.dynamicjava.interpreter.ClassMemberChecker.visit(ClassMemberChecker.java:21)
at koala.dynamicjava.tree.ClassDeclaration.acceptVisitor(ClassDeclaration.java:116)
at edu.rice.cs.dynamicjava.interpreter.ClassMemberChecker.checkMembers(ClassMemberChecker.java:32)
at edu.rice.cs.dynamicjava.interpreter.StatementChecker.visit(StatementChecker.java:323)
at edu.rice.cs.dynamicjava.interpreter.StatementChecker.visit(StatementChecker.java:110)
at koala.dynamicjava.tree.ClassDeclaration.acceptVisitor(ClassDeclaration.java:116)
at edu.rice.cs.dynamicjava.interpreter.Interpreter.typeCheck(Interpreter.java:75)
at edu.rice.cs.dynamicjava.interpreter.Interpreter.interpret(Interpreter.java:46)
at edu.rice.cs.drjava.model.repl.newjvm.InterpreterJVM.interpret(InterpreterJVM.java:250)
at edu.rice.cs.drjava.model.repl.newjvm.InterpreterJVM.interpret(InterpreterJVM.java:227)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:294)
at sun.rmi.transport.Transport$1.run(Transport.java:153)
at java.security.AccessController.doPrivileged(Native Method)
at sun.rmi.transport.Transport.serviceCall(Transport.java:149)
at sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:466)
at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:707)
at java.lang.Thread.run(Thread.java:613)
In revision 4978, I'm getting:
Welcome to DrJava. Working directory is D:\Documents\Dev\Java
> public class C {
public enum Suit { CLUBS, DIAMONDS, HEARTS, SPADES; }
public static void m() {
System.out.println(Suit.CLUBS);
}
}
Static Error: Bad type in allocation
>
In 5211, I'm getting
Welcome to DrJava. Working directory is /home/mgricken/temp
> public class C {
public enum Suit { CLUBS, DIAMONDS, HEARTS, SPADES; }
public static void m() {
System.out.println(Suit.CLUBS);
}
}
> C.m()
java.lang.ExceptionInInitializerError
> C.Suit.CLUBS
java.lang.NoClassDefFoundError: Could not initialize class C$Suit
>