Some native exceptions are wrapped too agressively --------------------------------------------------
Key: JRUBY-6149 URL: https://jira.codehaus.org/browse/JRUBY-6149 Project: JRuby Issue Type: Bug Components: Java Integration Affects Versions: JRuby 1.6.4 Environment: JRuby 1.6.4, java version "1.6.0_26" Java(TM) SE Runtime Environment (build 1.6.0_26-b03-384-10M3425) Java HotSpot(TM) 64-Bit Server VM (build 20.1-b02-384, mixed mode) Reporter: Dave Ray Attachments: unrescuable.patch, unrescuable.tgz Discussed this on twitter with @headius and @technomancy a bit. Clojure's STM uses exceptions for retries within a transaction (clojure.lang.LockingTransaction$RetryEx). When these exceptions pass through JRuby, they're wrapped, causing the STM transaction logic higher up the stack to fail since it can't catch the retry exceptions any more. So, I'm partly just reporting the issue, but I was able to create a fairly simple test case (no Clojure or threads) and very naive solution. It's just a Set of unrescuable exception types in JavaSupport, extendable by Ruby code. I'm sure this is wrong in many ways since I've never looked at the JRuby source before, but it was an interesting exercise :) Example and patch attached. -- This message is automatically generated by JIRA. 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