Menu

#290 Inner enum declaration fails

3: Ugly
open
None
7
2008-07-08
2004-07-16
No

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.

Discussion

  • Nobody/Anonymous

    Logged In: NO

    Dr java rocks!

     
  • Mathias Ricken

    Mathias Ricken - 2008-01-18

    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

     
  • Mathias Ricken

    Mathias Ricken - 2008-01-18
    • priority: 5 --> 7
    • assigned_to: nobody --> dlsmith
     
  • Mathias Ricken

    Mathias Ricken - 2008-06-12

    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)

     
  • Mathias Ricken

    Mathias Ricken - 2008-07-08
    • milestone: --> 3: Ugly
     
  • Mathias Ricken

    Mathias Ricken - 2009-08-10

    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
    >

     
  • Mathias Ricken

    Mathias Ricken - 2010-04-10

    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
    >

     

Log in to post a comment.