Ben Browning created JRUBY-6621:
-----------------------------------

             Summary: New ThreadLocal recursiveKey breaks usage of runtimes 
across multiple Java threads
                 Key: JRUBY-6621
                 URL: https://jira.codehaus.org/browse/JRUBY-6621
             Project: JRuby
          Issue Type: Bug
    Affects Versions: JRuby 1.7
            Reporter: Ben Browning
            Assignee: Thomas E Enebo
             Fix For: JRuby 1.7


As of commit 46c59ad659136fbda7c7fcd77b8bb47180f424f0 you can no longer use a 
JRuby runtime across multiple Java threads when using 1.9 mode because the 
ThreadLocal variable recursiveKey only gets initialized once when the runtime 
is initialized. So, as soon as I pass an initialzed runtime to a new thread 
recursiveKey has no value and results in an NPE like:

java.lang.NullPointerException
at org.jruby.RubyHash.internalGetEntry(RubyHash.java:506) [jruby.jar:]
at org.jruby.RubyHash.internalGet(RubyHash.java:502) [jruby.jar:]
at org.jruby.RubyHash.fastARef(RubyHash.java:942) [jruby.jar:]
at org.jruby.Ruby.recursiveCheck(Ruby.java:3765) [jruby.jar:]
at org.jruby.Ruby.execRecursiveInternal(Ruby.java:3801) [jruby.jar:]
at org.jruby.Ruby.execRecursiveOuter(Ruby.java:3876) [jruby.jar:]
at org.jruby.RubyArray.hash19(RubyArray.java:694) [jruby.jar:]\


JUnit TestCase at https://gist.github.com/2494050

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: 
https://jira.codehaus.org/secure/ContactAdministrators!default.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