Regression: Inheriting method with same name from two Java interfaces causes 
Java classloader error
---------------------------------------------------------------------------------------------------

                 Key: JRUBY-2999
                 URL: http://jira.codehaus.org/browse/JRUBY-2999
             Project: JRuby
          Issue Type: Bug
          Components: Java Integration
    Affects Versions: JRuby 1.1.4
            Reporter: Dmitry Jemerov


{code}
public interface InterruptibleRunnable {
  void run() throws Exception;
}
{code}

{code}
class MyRunnable
  include java.lang.Runnable
  include InterruptibleRunnable
  def run; end
end
{code}

This code works on JRuby 1.1.3, but causes an exception on JRuby trunk (tested 
with r7708):
{code}
java.lang.ClassFormatError: Duplicate method name&signature in class file 
InterfaceImpl1388241424
        at java.lang.ClassLoader.defineClass1(Native Method)
        at java.lang.ClassLoader.defineClass(ClassLoader.java:621)
        at org.jruby.util.JRubyClassLoader.defineClass(JRubyClassLoader.java:22)
        at org.jruby.java.MiniJava.defineOldStyleImplClass(MiniJava.java:510)
        at org.jruby.java.MiniJava.createOldStyleImplClass(MiniJava.java:193)
        at org.jruby.javasupport.Java.new_proxy_instance2(Java.java:1565)
        at 
org.jruby.java.proxies.JavaInterfaceTemplate.jcreateProxy(JavaInterfaceTemplate.java:251)
        at 
org.jruby.java.proxies.JavaInterfaceTemplate.access$000(JavaInterfaceTemplate.java:23)
        at 
org.jruby.java.proxies.JavaInterfaceTemplate$3.call(JavaInterfaceTemplate.java:158)
        at 
org.jruby.internal.runtime.methods.JavaMethod$JavaMethodNoBlock.call(JavaMethod.java:62)
        at org.jruby.RubyClass.finvoke(RubyClass.java:343)
        at 
org.jruby.javasupport.util.RuntimeHelpers.invoke(RuntimeHelpers.java:297)
        at 
org.jruby.java.proxies.JavaInterfaceTemplate$2.call(JavaInterfaceTemplate.java:142)
        at 
org.jruby.internal.runtime.methods.DynamicMethod.call(DynamicMethod.java:242)
        at 
org.jruby.internal.runtime.methods.DynamicMethod.call(DynamicMethod.java:151)
        at 
org.jruby.runtime.callsite.CachingCallSite.cacheAndCall(CachingCallSite.java:275)
        at 
org.jruby.runtime.callsite.CachingCallSite.call(CachingCallSite.java:116)
        at org.jruby.ast.CallOneArgNode.interpret(CallOneArgNode.java:57)
        at org.jruby.ast.CallOneArgNode.interpret(CallOneArgNode.java:57)
        at org.jruby.ast.NewlineNode.interpret(NewlineNode.java:101)
        at 
org.jruby.internal.runtime.methods.DefaultMethod.interpretedCall(DefaultMethod.java:163)
        at 
org.jruby.internal.runtime.methods.DefaultMethod.call(DefaultMethod.java:140)
        at 
org.jruby.internal.runtime.methods.DefaultMethod.call(DefaultMethod.java:232)
        at 
org.jruby.runtime.callsite.CachingCallSite.cacheAndCall(CachingCallSite.java:266)
        at 
org.jruby.runtime.callsite.CachingCallSite.call(CachingCallSite.java:85)
        at 
org.jruby.ast.CallNoArgBlockNode.interpret(CallNoArgBlockNode.java:63)
        at org.jruby.ast.NewlineNode.interpret(NewlineNode.java:101)
        at org.jruby.ast.BlockNode.interpret(BlockNode.java:67)
        at 
org.jruby.internal.runtime.methods.DefaultMethod.interpretedCall(DefaultMethod.java:163)
        at 
org.jruby.internal.runtime.methods.DefaultMethod.call(DefaultMethod.java:140)
        at 
org.jruby.internal.runtime.methods.DefaultMethod.call(DefaultMethod.java:190)
        at 
org.jruby.runtime.callsite.CachingCallSite.cacheAndCall(CachingCallSite.java:248)
        at 
org.jruby.runtime.callsite.CachingCallSite.call(CachingCallSite.java:34)
        at org.jruby.ast.CallManyArgsNode.interpret(CallManyArgsNode.java:59)
        at org.jruby.ast.NewlineNode.interpret(NewlineNode.java:101)
        at org.jruby.ast.BlockNode.interpret(BlockNode.java:67)
        at 
org.jruby.internal.runtime.methods.DefaultMethod.interpretedCall(DefaultMethod.java:163)
        at 
org.jruby.internal.runtime.methods.DefaultMethod.call(DefaultMethod.java:140)
{code}


-- 
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