calling to_java(:string) on a ruby array with a symbol in it now causes java 
exception
--------------------------------------------------------------------------------------

                 Key: JRUBY-4189
                 URL: http://jira.codehaus.org/browse/JRUBY-4189
             Project: JRuby
          Issue Type: Bug
    Affects Versions: JRuby 1.4.0RC3
            Reporter: Jesse Rankin
            Assignee: Thomas E Enebo


I discovered this bug because it breaks the jruby_ldap gem.

In 1.3.1:

jruby-1.3.1 > [:test].to_java(:string)
 => #<#<Class:01x8706f6>:0xda2737> 

In 1.4.0RC3:

irb(main):002:0> [:test].to_java(:string)
Array.java:-2:in `set': java.lang.IllegalArgumentException: array element type 
mismatch
        from JavaArray.java:126:in `setWithExceptionHandling'
        from ArrayJavaAddons.java:105:in `copyDataToJavaArray'
        from JavaClass.java:1578:in `javaArrayFromRubyArray'
        from ArrayJavaAddons.java:78:in `to_java'
        from 
org/jruby/java/addons/ArrayJavaAddons$s_method_multi$RUBYFRAMEDINVOKER$to_java.gen:-1:in
 `call'
        from CachingCallSite.java:310:in `cacheAndCall'
        from CachingCallSite.java:149:in `call'
        from CallOneArgNode.java:57:in `interpret'
        from NewlineNode.java:104:in `interpret'
        from RootNode.java:129:in `interpret'
        from ASTInterpreter.java:98:in `evalWithBinding'
        from RubyKernel.java:966:in `eval'
        from org/jruby/RubyKernel$s_method_0_3$RUBYFRAMEDINVOKER$eval.gen:-1:in 
`call'
        from DynamicMethod.java:150:in `call'
        from CachingCallSite.java:67:in `call'
        from FCallManyArgsNode.java:60:in `interpret'
        from NewlineNode.java:104:in `interpret'
        from InterpretedMethod.java:112:in `call'
        from InterpretedMethod.java:124:in `call'
        from DefaultMethod.java:144:in `call'
        from CachingCallSite.java:67:in `call'
        from CallManyArgsNode.java:59:in `interpret'
        from FCallOneArgNode.java:36:in `interpret'
        from NewlineNode.java:104:in `interpret'
        from BlockNode.java:71:in `interpret'
        from InterpretedMethod.java:210:in `call'
        from DefaultMethod.java:185:in `call'
        from CachingCallSite.java:187:in `call'
        from CallTwoArgNode.java:59:in `interpret'
        from NewlineNode.java:104:in `interpret'
        from BlockNode.java:71:in `interpret'
        from RescueNode.java:225:in `executeBody'
        from RescueNode.java:147:in `interpretWithJavaExceptions'
        from RescueNode.java:110:in `interpret'
        from BeginNode.java:83:in `interpret'
        from NewlineNode.java:104:in `interpret'
        from BlockNode.java:71:in `interpret'
        from InterpretedBlock.java:317:in `evalBlockBody'
        from InterpretedBlock.java:251:in `yield'
        from InterpretedBlock.java:185:in `yieldSpecific'
        from Block.java:99:in `yieldSpecific'
        from ZYieldNode.java:25:in `interpret'
        from NewlineNode.java:104:in `interpret'
        from EnsureNode.java:96:in `interpret'
        from BeginNode.java:83:in `interpret'
        from NewlineNode.java:104:in `interpret'
        from BlockNode.java:71:in `interpret'
        from InterpretedMethod.java:192:in `call'
        from DefaultMethod.java:177:in `call'
        from CachingCallSite.java:156:in `callBlock'
        from CachingCallSite.java:173:in `callIter'
        from FCallOneArgBlockNode.java:34:in `interpret'
        from NewlineNode.java:104:in `interpret'
        from InterpretedBlock.java:317:in `evalBlockBody'
        from InterpretedBlock.java:216:in `yieldSpecific'
        from Block.java:117:in `yieldSpecific'
        from YieldTwoNode.java:31:in `interpret'
        from NewlineNode.java:104:in `interpret'
        from IfNode.java:117:in `interpret'
        from NewlineNode.java:104:in `interpret'
        from BlockNode.java:71:in `interpret'
        from RescueNode.java:225:in `executeBody'
        from RescueNode.java:147:in `interpretWithJavaExceptions'
        from RescueNode.java:110:in `interpret'
        from BeginNode.java:83:in `interpret'
        from NewlineNode.java:104:in `interpret'
        from InterpretedBlock.java:317:in `evalBlockBody'
        from InterpretedBlock.java:268:in `yield'
        from Block.java:194:in `yield'
        from RubyKernel.java:1182:in `loop_1_9'
        from 
org/jruby/RubyKernel$s_method_0_0$RUBYFRAMEDINVOKER$loop_1_9.gen:-1:in `call'
        from CachingCallSite.java:300:in `cacheAndCall'
        from CachingCallSite.java:118:in `callBlock'
        from CachingCallSite.java:133:in `callIter'
        from FCallNoArgBlockNode.java:32:in `interpret'
        from NewlineNode.java:104:in `interpret'
        from InterpretedBlock.java:317:in `evalBlockBody'
        from InterpretedBlock.java:268:in `yield'
        from Block.java:194:in `yield'
        from RubyKernel.java:1014:in `rbCatch'
        from 
org/jruby/RubyKernel$s_method_1_0$RUBYFRAMEDINVOKER$rbCatch.gen:-1:in `call'
        from CachingCallSite.java:320:in `cacheAndCall'
        from CachingCallSite.java:158:in `callBlock'
        from CachingCallSite.java:173:in `callIter'
        from FCallOneArgBlockNode.java:34:in `interpret'
        from NewlineNode.java:104:in `interpret'
        from BlockNode.java:71:in `interpret'
        from InterpretedMethod.java:155:in `call'
        from DefaultMethod.java:161:in `call'
        from CachingCallSite.java:300:in `cacheAndCall'
        from CachingCallSite.java:118:in `callBlock'
        from CachingCallSite.java:123:in `call'
        from CallNoArgBlockNode.java:64:in `interpret'
        from NewlineNode.java:104:in `interpret'
        from BlockNode.java:71:in `interpret'
        from InterpretedMethod.java:136:in `call'
        from DefaultMethod.java:153:in `call'
        from CachingCallSite.java:290:in `cacheAndCall'
        from CachingCallSite.java:109:in `call'
        from CallNoArgNode.java:61:in `interpret'
        from NewlineNode.java:104:in `interpret'
        from InterpretedBlock.java:317:in `evalBlockBody'
        from InterpretedBlock.java:268:in `yield'
        from Block.java:194:in `yield'
        from RubyKernel.java:1014:in `rbCatch'
        from 
org/jruby/RubyKernel$s_method_1_0$RUBYFRAMEDINVOKER$rbCatch.gen:-1:in `call'
        from CachingCallSite.java:320:in `cacheAndCall'
        from CachingCallSite.java:158:in `callBlock'
        from CachingCallSite.java:173:in `callIter'
        from FCallOneArgBlockNode.java:34:in `interpret'
        from NewlineNode.java:104:in `interpret'
        from BlockNode.java:71:in `interpret'
        from InterpretedMethod.java:173:in `call'
        from DefaultMethod.java:169:in `call'
        from CachingCallSite.java:310:in `cacheAndCall'
        from CachingCallSite.java:149:in `call'
        from jirb:19:in `__file__'
        from jirb:-1:in `load'
        from Ruby.java:628:in `runScript'
        from Ruby.java:550:in `runNormally'
        from Ruby.java:396:in `runFromMain'
        from Main.java:272:in `run'
        from Main.java:117:in `run'
        from Main.java:97:in `main'

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