Java class loading problem at YAML::load when using "rest_client" gem ---------------------------------------------------------------------
Key: JRUBY-4986 URL: http://jira.codehaus.org/browse/JRUBY-4986 Project: JRuby Issue Type: Bug Components: Java Integration Affects Versions: JRuby 1.5.1 Environment: jruby 1.5.1 (ruby 1.8.7 patchlevel 249) (2010-06-06 f3a3480) (Java HotSpot(TM) 64-Bit Server VM 1.6.0_20) [x86_64-java] rest-client-1.0.3 java version "1.6.0_20" Java(TM) SE Runtime Environment (build 1.6.0_20-b02-279-10M3065) Java HotSpot(TM) 64-Bit Server VM (build 16.3-b01-279, mixed mode) Reporter: Tobias Vogele There is a strange exception at {{YAML::load}}, when: * gem "rest_client" is loaded * java.net.URI class is not loaded yet * YAML text encodes a java.net.URI object Here some code snippets to reproduce the problem: {code:title=Works, because no rest_client gem is used} require "rubygems" require "yaml" YAML::load("--- !ruby/object:Java::JavaNet::URI {}") {code} {code:title=Works, because java.net.URI is loaded explicitly} require "rubygems" require "rest_client" require "yaml" Java::JavaNet::URI.new("http://www.example.com") # load the java.net.URI class YAML::load("--- !ruby/object:Java::JavaNet::URI {}") {code} {code:title=throws exception} require "rubygems" require "rest_client" require "yaml" YAML::load("--- !ruby/object:Java::JavaNet::URI {}") {code} This is the complete stacktrace of the exception: {noformat} Resolver.java:126:in `transfer': java.lang.ClassCastException: org.jruby.RubyModule cannot be cast to org.jruby.RubyClass from org/yecht/ruby/Resolver$s_method_2_0$RUBYINVOKER$transfer.gen:65535:in `call' from JavaMethod.java:987:in `call' from RubyClass.java:644:in `finvoke' from RuntimeHelpers.java:461:in `invoke' from RubyBasicObject.java:340:in `callMethod' from DefaultResolver.java:456:in `node_import' from org/yecht/ruby/DefaultResolver$s_method_1_0$RUBYINVOKER$node_import.gen:65535:in `call' from CachingCallSite.java:309:in `cacheAndCall' from CachingCallSite.java:148:in `call' from RubyLoadHandler.java:40:in `handle' from Parser.java:300:in `addNode' from DefaultYAMLParser.java:365:in `yyparse' from Parser.java:290:in `yechtparse' from Parser.java:284:in `parse' from YParser.java:152:in `load' from org/yecht/ruby/YParser$s_method_0_1$RUBYINVOKER$load.gen:65535:in `call' from JavaMethod.java:630:in `call' from DynamicMethod.java:186:in `call' from CachingCallSite.java:309:in `cacheAndCall' from CachingCallSite.java:148:in `call' from CallOneArgNode.java:57:in `interpret' from LocalAsgnNode.java:123:in `interpret' from NewlineNode.java:104:in `interpret' from InterpretedMethod.java:180:in `call' from DefaultMethod.java:172:in `call' from CachingCallSite.java:309:in `cacheAndCall' from CachingCallSite.java:148:in `call' from yamltest.rb:4:in `__file__' from yamltest.rb:-1:in `load' from Ruby.java:685:in `runScript' from Ruby.java:568:in `runNormally' from Ruby.java:414:in `runFromMain' from Main.java:286:in `run' from Main.java:128:in `run' from Main.java:97:in `main' {noformat} Note, that "works" here just means, that no exception is thrown. There is still the problem of JRUBY-4888. -- 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