Implementing Java interfaces doesn't work.
------------------------------------------
Key: JRUBY-1093
URL: http://jira.codehaus.org/browse/JRUBY-1093
Project: JRuby
Issue Type: Bug
Components: Java Integration
Affects Versions: JRuby 1.0.0RC3
Reporter: Ola Bini
Priority: Blocker
Fix For: JRuby 1.0.0
I have a simple interface called com.liblib.LegacyMessageHandler:
{noformat}
package com.liblib;
public interface LegacyMessageHandler {
void handle(String id, String msg);
}
{noformat}
I have another Java class (com.liblib.LegacyConnector) with this method:
{noformat}
public void setHandler(LegacyMessageHandler handler) {
this.handler = handler
}
{noformat}
And finally I have this Ruby code:
{noformat}
require 'java'
import com.liblib.LegacyConnector
import com.liblib.LegacyMessageHandler
class RubyHandler
import LegacyMessageHandler
def handle(id, msg)
puts "got: #{id}, #{msg.inspect}"
end
end
conn = LegacyConnector.new
conn.handler = RubyHandler.new
{noformat}
This fails on the conn.handler= line saying: :-1: expected
[com.liblib.LegacyMessageHandler]; got: [org.jruby.RubyObject]; error: argument
type mismatch (TypeError)
If I replace the handler setter to do conn.handler = LegacyMessageHandler.impl
... etc, this works.
I'm not sure how old this problem is, but from a Java Integration perspective,
it's very dire.
--
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