Nested Class/Enum issue with JRockit
------------------------------------

                 Key: JRUBY-3016
                 URL: http://jira.codehaus.org/browse/JRUBY-3016
             Project: JRuby
          Issue Type: Bug
          Components: Java Integration
    Affects Versions: JRuby 1.1.4
         Environment: jrockit 1.5 R27.5
Windows XP
ant 1.7.0

            Reporter: Eric Stevens


Nested Class/Enum issue with JRockit

jrockit 1.5 R27.5
Windows XP

I'm running into class loading/cacheing issues while using jrockit with nested 
classes (with ant).  It works when using the Sun JVM (1.5).
Example:

Java:
package com.example;

import org.apache.tools.ant.taskdefs.SQLExec;

public class Test
{

    /**
     * List of databases support.
     */
    public enum Database
    {
        DB1,
        DB2,
        DB3,
        DatabaseNumber4
    }


    public static void testMethod() {
        SQLExec.OnError error = new SQLExec.OnError();
    }
}


Ruby:
Java::com.example.Test::Database.values()


It will first cause a null pointer:
     [java] Exception in thread "Thread-2" java.lang.NullPointerException
     [java]     at java.lang.Class$1.run()Ljava.lang.Object;(Unknown Source)
     [java]     at java.lang.Class.getClasses(I)[Ljava.lang.Class;(Unknown 
Source)
     [java]     at 
org.jruby.javasupport.JavaClass.setupProxy(JavaClass.java:657)
     [java]     at org.jruby.javasupport.Java.createProxyClass(Java.java:650)
     [java]     at org.jruby.javasupport.Java.getProxyClass(Java.java:599)
     [java]     at 
org.jruby.javasupport.Java.getProxyOrPackageUnderPackage(Java.java:876)
     [java]     at 
org.jruby.javasupport.Java.get_proxy_or_package_under_package(Java.java:904)
     [java]     at 
org.jruby.javasupport.Java$JavaUtilities.get_proxy_or_package_under_package(Java.java:328)
     [java]     at 
org.jruby.javasupport.Java$JavaUtilities$s_method_2_0$RUBYINVOKER$get_proxy_or_package_under_package.
call(Lorg.jruby.runtime.ThreadContext;Lorg.jruby.runtime.builtin.IRubyObject;Lorg.jruby.RubyModule;Ljava.lang.String;Lor
g.jruby.runtime.builtin.IRubyObject;Lorg.jruby.runtime.builtin.IRubyObject;)Lorg.jruby.runtime.builtin.IRubyObject;(org/
jruby/javasupport/Java$JavaUtilities$s_method_2_0$RUBYINVOKER$get_proxy_or_package_under_package.gen:???)
     [java]     at 
org.jruby.runtime.CallSite$InlineCachingCallSite.call(CallSite.java:442)
     [java]     at 
org.jruby.ast.CallTwoArgNode.interpret(CallTwoArgNode.java:59)
     [java]     at org.jruby.ast.NewlineNode.interpret(NewlineNode.java:101)
     [java]     at org.jruby.ast.BlockNode.interpret(BlockNode.java:67)
     [java]     at 
org.jruby.internal.runtime.methods.DefaultMethod.interpretedCall(DefaultMethod.java:163)
     [java]     at 
org.jruby.internal.runtime.methods.DefaultMethod.call(DefaultMethod.java:140)
     [java]     at 
org.jruby.internal.runtime.methods.DefaultMethod.call(DefaultMethod.java:274)
     [java]     at org.jruby.RubyClass.finvoke(RubyClass.java:362)
     [java]     at 
org.jruby.javasupport.util.RuntimeHelpers.invoke(RuntimeHelpers.java:326)
     [java]     at 
org.jruby.javasupport.util.RuntimeHelpers.callMethodMissingInternal(RuntimeHelpers.java:272)
     [java]     at 
org.jruby.javasupport.util.RuntimeHelpers.callMethodMissing(RuntimeHelpers.java:260)
     [java]     at 
org.jruby.runtime.CallSite$InlineCachingCallSite.callMethodMissing(CallSite.java:224)
     [java]     at 
org.jruby.runtime.CallSite$InlineCachingCallSite.cacheAndCall(CallSite.java:127)
     [java]     at 
org.jruby.runtime.CallSite$InlineCachingCallSite.call(CallSite.java:343)
     [java]     at org.jruby.ast.CallNoArgNode.interpret(CallNoArgNode.java:61)
     [java]     at 
org.jruby.ast.FCallOneArgNode.interpret(FCallOneArgNode.java:36)
     [java]     at org.jruby.ast.NewlineNode.interpret(NewlineNode.java:101)
     [java]     at org.jruby.ast.BlockNode.interpret(BlockNode.java:67)
     [java]     at 
org.jruby.internal.runtime.methods.DefaultMethod.interpretedCall(DefaultMethod.java:163)
     [java]     at 
org.jruby.internal.runtime.methods.DefaultMethod.call(DefaultMethod.java:140)
     [java]     at 
org.jruby.internal.runtime.methods.DefaultMethod.call(DefaultMethod.java:232)
and then on every subsequent request return error:
"Anonymous modules have no name to be referenced by"

Let me know if you need any more information
Thanks,
Eric

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: 
http://jira.codehaus.org/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

---------------------------------------------------------------------
To unsubscribe from this list, please visit:

    http://xircles.codehaus.org/manage_email


Reply via email to