JRuby crashes when attempting to decrypt a malformed message with RSA
---------------------------------------------------------------------

                 Key: JRUBY-4492
                 URL: http://jira.codehaus.org/browse/JRUBY-4492
             Project: JRuby
          Issue Type: Bug
    Affects Versions: JRuby 1.4, JRuby-OpenSSL 0.5.2
         Environment: Ubuntu Linux 9.04 32-bit; Java version 1.6.0_16
            Reporter: Jason Langenauer
            Assignee: Thomas E Enebo
            Priority: Minor


When attempting to decrypt a malformed encrypted message (i.e. one made by 
altering characters in a correctly encrypted message), a 
javax.crypto.BadPaddingException is raised by JRuby-OpenSSL (as it should be). 
However, it is not possible to catch this exception via a NativeException in 
Ruby code, and the exception seems to crash JRuby.

Full stack trace from my rails app below, but this jirb session is sufficient 
to reproduce the problem:

ja...@arcturus:~/constrex/tender.ly/webapp$ jirb
irb(main):001:0> require 'openssl'
=> true
irb(main):002:0> pkey = 
OpenSSL::PKey::RSA.new(File.read("config/license_pub.pem"))
=> -----BEGIN PUBLIC KEY-----
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAtiU1/UMzIQ1On9OlZGoV
S0yySFYWoXLH12nmP69fg9jwdRbQlb0rxLn7zATbwfqcvGpCcW+8SmdwW74elNrc
wRtbKjJKfbJCsVfDssbbj6BF+Bcq3ihi8+CGNXFdJOYhZZ+5Adg2Qc9Qp3Ubw9wu
/3Ai87+1aQxoZPMFwdX2BRiZvxch9dwHVyL8EuFGUOYId/8JQepHyZMbTqp/8wlA
UAbMcPW+IKp3N0WMgred3CjXKHAqqM0Ira9RLSXdlO2uFV4OrM0ak8rnTN5w1DsI
McjvVvOck0aIxfHEEmeadt3YMn4PCW33/j8geulZLvt0ci60/OWMSCcIqByITlvY
DwIDAQAB
-----END PUBLIC KEY-----

irb(main):003:0> pkey.public_decrypt("rah")
null:-1:in `engineDoFinal': javax.crypto.BadPaddingException: unknown block type
        from DashoA13*..:-1:in `doFinal'
        from PKeyRSA.java:506:in `public_decrypt'
        from 
org/jruby/ext/openssl/PKeyRSA$i_method_0_0$RUBYINVOKER$public_decrypt.gen:-1:in 
`call'
        from JavaMethod.java:623:in `call'
        from DynamicMethod.java:176: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'
        ...
--------------------------------------------------------------------
Rails application stack trace follows:


WARNING: unknown block type
javax.crypto.BadPaddingException: unknown block type
        at org.bouncycastle.jce.provider.JCERSACipher.engineDoFinal(Unknown 
Source)
        at javax.crypto.Cipher.doFinal(DashoA13*..)
        at org.jruby.ext.openssl.PKeyRSA.public_decrypt(PKeyRSA.java:506)
        at 
org.jruby.ext.openssl.PKeyRSA$i_method_0_0$RUBYINVOKER$public_decrypt.call(org/jruby/ext/openssl/PKeyRSA$i_method_0_0$RUBYINVOKER$public_decrypt.gen)
        at 
org.jruby.internal.runtime.methods.JavaMethod$JavaMethodN.call(JavaMethod.java:623)
        at 
org.jruby.internal.runtime.methods.DynamicMethod.call(DynamicMethod.java:176)
        at 
org.jruby.runtime.callsite.CachingCallSite.cacheAndCall(CachingCallSite.java:310)
        at 
org.jruby.runtime.callsite.CachingCallSite.call(CachingCallSite.java:149)
        at org.jruby.ast.CallOneArgNode.interpret(CallOneArgNode.java:57)
        at org.jruby.ast.LocalAsgnNode.interpret(LocalAsgnNode.java:123)
        at org.jruby.ast.NewlineNode.interpret(NewlineNode.java:104)
        at org.jruby.ast.BlockNode.interpret(BlockNode.java:71)
        at org.jruby.ast.IfNode.interpret(IfNode.java:119)
        at org.jruby.ast.NewlineNode.interpret(NewlineNode.java:104)
        at org.jruby.ast.BlockNode.interpret(BlockNode.java:71)
        at org.jruby.ast.RescueNode.executeBody(RescueNode.java:225)
        at 
org.jruby.ast.RescueNode.interpretWithJavaExceptions(RescueNode.java:147)
        at org.jruby.ast.RescueNode.interpret(RescueNode.java:110)
        at 
org.jruby.internal.runtime.methods.InterpretedMethod.call(InterpretedMethod.java:136)
        at 
org.jruby.internal.runtime.methods.DefaultMethod.call(DefaultMethod.java:153)
        at 
org.jruby.runtime.callsite.CachingCallSite.cacheAndCall(CachingCallSite.java:290)
        at 
org.jruby.runtime.callsite.CachingCallSite.call(CachingCallSite.java:109)
        at org.jruby.ast.VCallNode.interpret(VCallNode.java:85)
        at org.jruby.ast.NewlineNode.interpret(NewlineNode.java:104)
        at org.jruby.ast.BlockNode.interpret(BlockNode.java:71)
        at 
org.jruby.internal.runtime.methods.InterpretedMethod.call(InterpretedMethod.java:136)
        at 
org.jruby.internal.runtime.methods.DefaultMethod.call(DefaultMethod.java:153)
        at 
org.jruby.runtime.callsite.CachingCallSite.cacheAndCall(CachingCallSite.java:290)
        at 
org.jruby.runtime.callsite.CachingCallSite.call(CachingCallSite.java:109)
        at org.jruby.ast.VCallNode.interpret(VCallNode.java:85)
        at org.jruby.ast.NewlineNode.interpret(NewlineNode.java:104)
        at org.jruby.ast.BlockNode.interpret(BlockNode.java:71)
        at 
org.jruby.internal.runtime.methods.InterpretedMethod.call(InterpretedMethod.java:173)
        at 
org.jruby.internal.runtime.methods.DefaultMethod.call(DefaultMethod.java:169)
        at 
org.jruby.runtime.callsite.CachingCallSite.cacheAndCall(CachingCallSite.java:310)
        at 
org.jruby.runtime.callsite.CachingCallSite.call(CachingCallSite.java:149)
        at org.jruby.ast.CallOneArgNode.interpret(CallOneArgNode.java:57)
        at org.jruby.ast.NewlineNode.interpret(NewlineNode.java:104)
        at org.jruby.ast.BlockNode.interpret(BlockNode.java:71)
        at org.jruby.ast.RescueNode.executeBody(RescueNode.java:225)
        at 
org.jruby.ast.RescueNode.interpretWithJavaExceptions(RescueNode.java:147)
        at org.jruby.ast.RescueNode.interpret(RescueNode.java:110)
        at 
org.jruby.internal.runtime.methods.InterpretedMethod.call(InterpretedMethod.java:155)
        at 
org.jruby.internal.runtime.methods.DefaultMethod.call(DefaultMethod.java:161)
        at org.jruby.RubyClass.finvoke(RubyClass.java:432)
        at org.jruby.RubyObject.send(RubyObject.java:1436)
        at 
org.jruby.RubyObject$i_method_multi$RUBYINVOKER$send.call(org/jruby/RubyObject$i_method_multi$RUBYINVOKER$send.gen)
        at 
org.jruby.internal.runtime.methods.JavaMethod$JavaMethodZeroOrOneOrNBlock.call(JavaMethod.java:259)
        at 
org.jruby.runtime.callsite.CachingCallSite.cacheAndCall(CachingCallSite.java:310)
        at 
org.jruby.runtime.callsite.CachingCallSite.call(CachingCallSite.java:149)
        at org.jruby.ast.FCallOneArgNode.interpret(FCallOneArgNode.java:36)
        at org.jruby.ast.NewlineNode.interpret(NewlineNode.java:104)
        at org.jruby.ast.BlockNode.interpret(BlockNode.java:71)
        at org.jruby.ast.IfNode.interpret(IfNode.java:117)
        at org.jruby.ast.NewlineNode.interpret(NewlineNode.java:104)
        at 
org.jruby.internal.runtime.methods.InterpretedMethod.call(InterpretedMethod.java:136)
        at 
org.jruby.internal.runtime.methods.DefaultMethod.call(DefaultMethod.java:153)
        at 
org.jruby.internal.runtime.methods.AliasMethod.call(AliasMethod.java:56)
        at 
org.jruby.runtime.callsite.CachingCallSite.cacheAndCall(CachingCallSite.java:290)
        at 
org.jruby.runtime.callsite.CachingCallSite.call(CachingCallSite.java:109)
        at org.jruby.ast.VCallNode.interpret(VCallNode.java:85)
        at org.jruby.ast.IfNode.interpret(IfNode.java:119)
        at org.jruby.ast.NewlineNode.interpret(NewlineNode.java:104)
        at org.jruby.ast.BlockNode.interpret(BlockNode.java:71)
        at 
org.jruby.internal.runtime.methods.InterpretedMethod.call(InterpretedMethod.java:247)
        at 
org.jruby.internal.runtime.methods.DefaultMethod.call(DefaultMethod.java:201)
        at 
org.jruby.runtime.callsite.CachingCallSite.cacheAndCall(CachingCallSite.java:350)
        at 
org.jruby.runtime.callsite.CachingCallSite.call(CachingCallSite.java:229)
        at org.jruby.ast.FCallThreeArgNode.interpret(FCallThreeArgNode.java:40)
        at org.jruby.ast.NewlineNode.interpret(NewlineNode.java:104)
        at 
org.jruby.internal.runtime.methods.InterpretedMethod.call(InterpretedMethod.java:136)
        at 
org.jruby.internal.runtime.methods.DefaultMethod.call(DefaultMethod.java:153)
        at 
org.jruby.internal.runtime.methods.AliasMethod.call(AliasMethod.java:56)
        at 
org.jruby.internal.runtime.methods.AliasMethod.call(AliasMethod.java:56)
        at 
org.jruby.runtime.callsite.CachingCallSite.cacheAndCall(CachingCallSite.java:290)
        at 
org.jruby.runtime.callsite.CachingCallSite.call(CachingCallSite.java:109)
        at org.jruby.ast.VCallNode.interpret(VCallNode.java:85)
        at org.jruby.ast.NewlineNode.interpret(NewlineNode.java:104)
        at 
org.jruby.runtime.InterpretedBlock.evalBlockBody(InterpretedBlock.java:317)
        at org.jruby.runtime.InterpretedBlock.yield(InterpretedBlock.java:251)
        at 
org.jruby.runtime.InterpretedBlock.yieldSpecific(InterpretedBlock.java:185)
        at org.jruby.runtime.Block.yieldSpecific(Block.java:99)
        at org.jruby.ast.ZYieldNode.interpret(ZYieldNode.java:25)
        at org.jruby.ast.NewlineNode.interpret(NewlineNode.java:104)
        at 
org.jruby.runtime.InterpretedBlock.evalBlockBody(InterpretedBlock.java:317)
        at org.jruby.runtime.InterpretedBlock.yield(InterpretedBlock.java:251)
        at 
org.jruby.runtime.InterpretedBlock.yieldSpecific(InterpretedBlock.java:185)
        at org.jruby.runtime.Block.yieldSpecific(Block.java:99)
        at org.jruby.ast.ZYieldNode.interpret(ZYieldNode.java:25)
        at org.jruby.ast.NewlineNode.interpret(NewlineNode.java:104)
        at org.jruby.ast.BlockNode.interpret(BlockNode.java:71)
        at 
org.jruby.internal.runtime.methods.InterpretedMethod.call(InterpretedMethod.java:155)
        at 
org.jruby.internal.runtime.methods.DefaultMethod.call(DefaultMethod.java:161)
        at 
org.jruby.internal.runtime.methods.WrapperMethod.call(WrapperMethod.java:74)
        at 
org.jruby.runtime.callsite.CachingCallSite.cacheAndCall(CachingCallSite.java:300)
        at 
org.jruby.runtime.callsite.CachingCallSite.callBlock(CachingCallSite.java:118)
        at 
org.jruby.runtime.callsite.CachingCallSite.callIter(CachingCallSite.java:133)
        at 
org.jruby.ast.FCallNoArgBlockNode.interpret(FCallNoArgBlockNode.java:32)
        at org.jruby.ast.CallOneArgNode.interpret(CallOneArgNode.java:57)
        at org.jruby.ast.NewlineNode.interpret(NewlineNode.java:104)
        at 
org.jruby.internal.runtime.methods.InterpretedMethod.call(InterpretedMethod.java:155)
        at 
org.jruby.internal.runtime.methods.DefaultMethod.call(DefaultMethod.java:161)
        at 
org.jruby.runtime.callsite.CachingCallSite.cacheAndCall(CachingCallSite.java:300)
        at 
org.jruby.runtime.callsite.CachingCallSite.callBlock(CachingCallSite.java:118)
        at 
org.jruby.runtime.callsite.CachingCallSite.call(CachingCallSite.java:123)
        at 
org.jruby.ast.CallNoArgBlockNode.interpret(CallNoArgBlockNode.java:64)
        at org.jruby.ast.ArrayNode.interpretPrimitive(ArrayNode.java:94)
        at org.jruby.ast.ArrayNode.interpret(ArrayNode.java:84)
        at org.jruby.ast.CallNoArgNode.interpret(CallNoArgNode.java:61)
        at org.jruby.ast.LocalAsgnNode.interpret(LocalAsgnNode.java:123)
        at org.jruby.ast.NewlineNode.interpret(NewlineNode.java:104)
        at org.jruby.ast.BlockNode.interpret(BlockNode.java:71)
        at org.jruby.ast.IfNode.interpret(IfNode.java:117)
        at org.jruby.ast.NewlineNode.interpret(NewlineNode.java:104)
        at 
org.jruby.internal.runtime.methods.InterpretedMethod.call(InterpretedMethod.java:136)
        at 
org.jruby.internal.runtime.methods.DefaultMethod.call(DefaultMethod.java:153)
        at 
org.jruby.internal.runtime.methods.AliasMethod.call(AliasMethod.java:56)
        at 
org.jruby.internal.runtime.methods.AliasMethod.call(AliasMethod.java:56)
        at 
org.jruby.runtime.callsite.CachingCallSite.cacheAndCall(CachingCallSite.java:290)
        at 
org.jruby.runtime.callsite.CachingCallSite.call(CachingCallSite.java:109)
        at org.jruby.ast.VCallNode.interpret(VCallNode.java:85)
        at org.jruby.ast.NewlineNode.interpret(NewlineNode.java:104)
        at org.jruby.ast.RescueNode.executeBody(RescueNode.java:225)
        at 
org.jruby.ast.RescueNode.interpretWithJavaExceptions(RescueNode.java:147)
        at org.jruby.ast.RescueNode.interpret(RescueNode.java:110)
        at 
org.jruby.internal.runtime.methods.InterpretedMethod.call(InterpretedMethod.java:136)
        at 
org.jruby.internal.runtime.methods.DefaultMethod.call(DefaultMethod.java:153)
        at 
org.jruby.internal.runtime.methods.AliasMethod.call(AliasMethod.java:56)
        at 
org.jruby.internal.runtime.methods.AliasMethod.call(AliasMethod.java:56)
        at 
org.jruby.runtime.callsite.CachingCallSite.cacheAndCall(CachingCallSite.java:290)
        at 
org.jruby.runtime.callsite.CachingCallSite.call(CachingCallSite.java:109)
        at org.jruby.ast.VCallNode.interpret(VCallNode.java:85)
        at org.jruby.ast.NewlineNode.interpret(NewlineNode.java:104)
        at org.jruby.ast.BlockNode.interpret(BlockNode.java:71)
        at 
org.jruby.internal.runtime.methods.InterpretedMethod.call(InterpretedMethod.java:155)
        at 
org.jruby.internal.runtime.methods.DefaultMethod.call(DefaultMethod.java:161)
        at 
org.jruby.internal.runtime.methods.AliasMethod.call(AliasMethod.java:81)
        at org.jruby.RubyClass.finvoke(RubyClass.java:432)
        at org.jruby.RubyObject.send(RubyObject.java:1436)
        at 
org.jruby.RubyObject$i_method_multi$RUBYINVOKER$send.call(org/jruby/RubyObject$i_method_multi$RUBYINVOKER$send.gen)
        at 
org.jruby.internal.runtime.methods.JavaMethod$JavaMethodZeroOrOneOrNBlock.call(JavaMethod.java:259)
        at 
org.jruby.runtime.callsite.CachingCallSite.cacheAndCall(CachingCallSite.java:310)
        at 
org.jruby.runtime.callsite.CachingCallSite.call(CachingCallSite.java:149)
        at 
org.jruby.ast.FCallSpecialArgNode.interpret(FCallSpecialArgNode.java:39)
        at org.jruby.ast.NewlineNode.interpret(NewlineNode.java:104)
        at org.jruby.ast.BlockNode.interpret(BlockNode.java:71)
        at org.jruby.ast.EnsureNode.interpret(EnsureNode.java:96)
        at 
org.jruby.internal.runtime.methods.InterpretedMethod.call(InterpretedMethod.java:247)
        at 
org.jruby.internal.runtime.methods.DefaultMethod.call(DefaultMethod.java:201)
        at 
org.jruby.internal.runtime.methods.AliasMethod.call(AliasMethod.java:71)
        at 
org.jruby.runtime.callsite.CachingCallSite.cacheAndCall(CachingCallSite.java:350)
        at 
org.jruby.runtime.callsite.CachingCallSite.call(CachingCallSite.java:229)
        at 
org.jruby.ast.FCallSpecialArgNode.interpret(FCallSpecialArgNode.java:43)
        at org.jruby.ast.NewlineNode.interpret(NewlineNode.java:104)
        at org.jruby.ast.BlockNode.interpret(BlockNode.java:71)
        at 
org.jruby.internal.runtime.methods.InterpretedMethod.call(InterpretedMethod.java:210)
        at 
org.jruby.internal.runtime.methods.DefaultMethod.call(DefaultMethod.java:185)
        at 
org.jruby.internal.runtime.methods.AliasMethod.call(AliasMethod.java:66)
        at 
org.jruby.internal.runtime.methods.AliasMethod.call(AliasMethod.java:66)
        at 
org.jruby.runtime.callsite.CachingCallSite.cacheAndCall(CachingCallSite.java:330)
        at 
org.jruby.runtime.callsite.CachingCallSite.call(CachingCallSite.java:189)
        at 
org.jruby.ast.FCallSpecialArgNode.interpret(FCallSpecialArgNode.java:41)
        at org.jruby.ast.NewlineNode.interpret(NewlineNode.java:104)
        at org.jruby.ast.BlockNode.interpret(BlockNode.java:71)
        at 
org.jruby.internal.runtime.methods.InterpretedMethod.call(InterpretedMethod.java:210)
        at 
org.jruby.internal.runtime.methods.DefaultMethod.call(DefaultMethod.java:185)
        at 
org.jruby.runtime.callsite.CachingCallSite.cacheAndCall(CachingCallSite.java:330)
        at 
org.jruby.runtime.callsite.CachingCallSite.call(CachingCallSite.java:189)
        at org.jruby.ast.CallTwoArgNode.interpret(CallTwoArgNode.java:59)
        at org.jruby.ast.NewlineNode.interpret(NewlineNode.java:104)
        at 
org.jruby.internal.runtime.methods.InterpretedMethod.call(InterpretedMethod.java:210)
        at 
org.jruby.internal.runtime.methods.DefaultMethod.call(DefaultMethod.java:185)
        at 
org.jruby.runtime.callsite.CachingCallSite.cacheAndCall(CachingCallSite.java:330)
        at 
org.jruby.runtime.callsite.CachingCallSite.call(CachingCallSite.java:189)
        at org.jruby.ast.FCallTwoArgNode.interpret(FCallTwoArgNode.java:38)
        at org.jruby.ast.NewlineNode.interpret(NewlineNode.java:104)
        at org.jruby.ast.BlockNode.interpret(BlockNode.java:71)
        at 
org.jruby.internal.runtime.methods.InterpretedMethod.call(InterpretedMethod.java:173)
        at 
org.jruby.internal.runtime.methods.DefaultMethod.call(DefaultMethod.java:169)
        at 
org.jruby.runtime.callsite.CachingCallSite.cacheAndCall(CachingCallSite.java:310)
        at 
org.jruby.runtime.callsite.CachingCallSite.call(CachingCallSite.java:149)
        at org.jruby.ast.CallOneArgNode.interpret(CallOneArgNode.java:57)
        at org.jruby.ast.CallNoArgNode.interpret(CallNoArgNode.java:61)
        at org.jruby.ast.NewlineNode.interpret(NewlineNode.java:104)
        at org.jruby.ast.BlockNode.interpret(BlockNode.java:71)
        at 
org.jruby.internal.runtime.methods.InterpretedMethod.call(InterpretedMethod.java:173)
        at 
org.jruby.internal.runtime.methods.DefaultMethod.call(DefaultMethod.java:169)
        at 
org.jruby.runtime.callsite.CachingCallSite.call(CachingCallSite.java:147)
        at org.jruby.ast.CallOneArgNode.interpret(CallOneArgNode.java:57)
        at org.jruby.ast.NewlineNode.interpret(NewlineNode.java:104)
        at org.jruby.ast.BlockNode.interpret(BlockNode.java:71)
        at org.jruby.ast.RescueNode.executeBody(RescueNode.java:225)
        at 
org.jruby.ast.RescueNode.interpretWithJavaExceptions(RescueNode.java:147)
        at org.jruby.ast.RescueNode.interpret(RescueNode.java:110)
        at org.jruby.ast.EnsureNode.interpret(EnsureNode.java:96)
        at org.jruby.ast.BeginNode.interpret(BeginNode.java:83)
        at org.jruby.ast.NewlineNode.interpret(NewlineNode.java:104)
        at 
org.jruby.internal.runtime.methods.InterpretedMethod.call(InterpretedMethod.java:136)
        at 
org.jruby.internal.runtime.methods.DefaultMethod.call(DefaultMethod.java:153)
        at 
org.jruby.runtime.callsite.CachingCallSite.call(CachingCallSite.java:107)
        at org.jruby.ast.VCallNode.interpret(VCallNode.java:85)
        at org.jruby.ast.NewlineNode.interpret(NewlineNode.java:104)
        at org.jruby.ast.BlockNode.interpret(BlockNode.java:71)
        at 
org.jruby.internal.runtime.methods.InterpretedMethod.call(InterpretedMethod.java:173)
        at 
org.jruby.internal.runtime.methods.DefaultMethod.call(DefaultMethod.java:169)
        at 
org.jruby.runtime.callsite.CachingCallSite.call(CachingCallSite.java:147)
        at org.jruby.ast.CallOneArgNode.interpret(CallOneArgNode.java:57)
        at org.jruby.ast.NewlineNode.interpret(NewlineNode.java:104)
        at 
org.jruby.runtime.InterpretedBlock.evalBlockBody(InterpretedBlock.java:317)
        at org.jruby.runtime.InterpretedBlock.yield(InterpretedBlock.java:305)
        at org.jruby.runtime.BlockBody.call(BlockBody.java:72)
        at org.jruby.runtime.BlockBody.call(BlockBody.java:78)
        at org.jruby.runtime.Block.call(Block.java:89)
        at org.jruby.RubyProc.call(RubyProc.java:221)
        at org.jruby.RubyProc.call(RubyProc.java:204)
        at 
org.jruby.RubyProc$i_method_0_0$RUBYFRAMEDINVOKER$call.call(org/jruby/RubyProc$i_method_0_0$RUBYFRAMEDINVOKER$call.gen)
        at 
org.jruby.internal.runtime.methods.JavaMethod$JavaMethodN.call(JavaMethod.java:623)
        at 
org.jruby.internal.runtime.methods.DynamicMethod.call(DynamicMethod.java:176)
        at 
org.jruby.runtime.callsite.CachingCallSite.call(CachingCallSite.java:147)
        at org.jruby.ast.CallOneArgNode.interpret(CallOneArgNode.java:57)
        at org.jruby.ast.NewlineNode.interpret(NewlineNode.java:104)
        at 
org.jruby.runtime.InterpretedBlock.evalBlockBody(InterpretedBlock.java:317)
        at org.jruby.runtime.InterpretedBlock.yield(InterpretedBlock.java:251)
        at 
org.jruby.runtime.InterpretedBlock.yieldSpecific(InterpretedBlock.java:185)
        at org.jruby.runtime.Block.yieldSpecific(Block.java:99)
        at org.jruby.ast.ZYieldNode.interpret(ZYieldNode.java:25)
        at org.jruby.ast.NewlineNode.interpret(NewlineNode.java:104)
        at org.jruby.ast.BlockNode.interpret(BlockNode.java:71)
        at org.jruby.ast.EnsureNode.interpret(EnsureNode.java:96)
        at 
org.jruby.internal.runtime.methods.InterpretedMethod.call(InterpretedMethod.java:155)
        at 
org.jruby.internal.runtime.methods.DefaultMethod.call(DefaultMethod.java:161)
        at 
org.jruby.runtime.callsite.CachingCallSite.cacheAndCall(CachingCallSite.java:300)
        at 
org.jruby.runtime.callsite.CachingCallSite.callBlock(CachingCallSite.java:118)
        at 
org.jruby.runtime.callsite.CachingCallSite.call(CachingCallSite.java:123)
        at 
org.jruby.ast.CallNoArgBlockPassNode.interpret(CallNoArgBlockPassNode.java:53)
        at org.jruby.ast.NewlineNode.interpret(NewlineNode.java:104)
        at org.jruby.ast.IfNode.interpret(IfNode.java:119)
        at org.jruby.ast.NewlineNode.interpret(NewlineNode.java:104)
        at 
org.jruby.internal.runtime.methods.InterpretedMethod.call(InterpretedMethod.java:155)
        at 
org.jruby.internal.runtime.methods.DefaultMethod.call(DefaultMethod.java:161)
        at 
org.jruby.runtime.callsite.CachingCallSite.callBlock(CachingCallSite.java:116)
        at 
org.jruby.runtime.callsite.CachingCallSite.call(CachingCallSite.java:123)
        at 
org.jruby.ast.CallNoArgBlockNode.interpret(CallNoArgBlockNode.java:64)
        at org.jruby.ast.NewlineNode.interpret(NewlineNode.java:104)
        at 
org.jruby.internal.runtime.methods.InterpretedMethod.call(InterpretedMethod.java:173)
        at 
org.jruby.internal.runtime.methods.DefaultMethod.call(DefaultMethod.java:169)
        at 
org.jruby.runtime.callsite.CachingCallSite.call(CachingCallSite.java:147)
        at org.jruby.ast.CallOneArgNode.interpret(CallOneArgNode.java:57)
        at org.jruby.ast.NewlineNode.interpret(NewlineNode.java:104)
        at org.jruby.ast.EnsureNode.interpret(EnsureNode.java:96)
        at 
org.jruby.internal.runtime.methods.InterpretedMethod.call(InterpretedMethod.java:173)
        at 
org.jruby.internal.runtime.methods.DefaultMethod.call(DefaultMethod.java:169)
        at 
org.jruby.runtime.callsite.CachingCallSite.call(CachingCallSite.java:147)
        at org.jruby.ast.CallOneArgNode.interpret(CallOneArgNode.java:57)
        at org.jruby.ast.ToAryNode.interpret(ToAryNode.java:69)
        at org.jruby.ast.MultipleAsgnNode.interpret(MultipleAsgnNode.java:128)
        at org.jruby.ast.NewlineNode.interpret(NewlineNode.java:104)
        at org.jruby.ast.BlockNode.interpret(BlockNode.java:71)
        at 
org.jruby.internal.runtime.methods.InterpretedMethod.call(InterpretedMethod.java:173)
        at 
org.jruby.internal.runtime.methods.DefaultMethod.call(DefaultMethod.java:169)
        at 
org.jruby.runtime.callsite.CachingCallSite.call(CachingCallSite.java:147)
        at org.jruby.ast.CallOneArgNode.interpret(CallOneArgNode.java:57)
        at org.jruby.ast.ToAryNode.interpret(ToAryNode.java:69)
        at org.jruby.ast.MultipleAsgnNode.interpret(MultipleAsgnNode.java:128)
        at org.jruby.ast.NewlineNode.interpret(NewlineNode.java:104)
        at org.jruby.ast.BlockNode.interpret(BlockNode.java:71)
        at 
org.jruby.internal.runtime.methods.InterpretedMethod.call(InterpretedMethod.java:173)
        at 
org.jruby.internal.runtime.methods.DefaultMethod.call(DefaultMethod.java:169)
        at 
org.jruby.runtime.callsite.CachingCallSite.call(CachingCallSite.java:147)
        at org.jruby.ast.CallOneArgNode.interpret(CallOneArgNode.java:57)
        at org.jruby.ast.NewlineNode.interpret(NewlineNode.java:104)
        at org.jruby.ast.BlockNode.interpret(BlockNode.java:71)
        at 
org.jruby.internal.runtime.methods.InterpretedMethod.call(InterpretedMethod.java:173)
        at 
org.jruby.internal.runtime.methods.DefaultMethod.call(DefaultMethod.java:169)
        at 
org.jruby.runtime.callsite.CachingCallSite.call(CachingCallSite.java:147)
        at org.jruby.ast.CallOneArgNode.interpret(CallOneArgNode.java:57)
        at org.jruby.ast.NewlineNode.interpret(NewlineNode.java:104)
        at org.jruby.ast.BlockNode.interpret(BlockNode.java:71)
        at 
org.jruby.internal.runtime.methods.InterpretedMethod.call(InterpretedMethod.java:173)
        at 
org.jruby.internal.runtime.methods.DefaultMethod.call(DefaultMethod.java:169)
        at 
org.jruby.runtime.callsite.CachingCallSite.call(CachingCallSite.java:147)
        at org.jruby.ast.CallOneArgNode.interpret(CallOneArgNode.java:57)
        at org.jruby.ast.ToAryNode.interpret(ToAryNode.java:69)
        at org.jruby.ast.MultipleAsgnNode.interpret(MultipleAsgnNode.java:128)
        at org.jruby.ast.NewlineNode.interpret(NewlineNode.java:104)
        at org.jruby.ast.BlockNode.interpret(BlockNode.java:71)
        at 
org.jruby.internal.runtime.methods.InterpretedMethod.call(InterpretedMethod.java:173)
        at 
org.jruby.internal.runtime.methods.DefaultMethod.call(DefaultMethod.java:169)
        at 
org.jruby.runtime.callsite.CachingCallSite.call(CachingCallSite.java:147)
        at org.jruby.ast.CallOneArgNode.interpret(CallOneArgNode.java:57)
        at org.jruby.ast.NewlineNode.interpret(NewlineNode.java:104)
        at org.jruby.ast.RescueNode.executeBody(RescueNode.java:225)
        at 
org.jruby.ast.RescueNode.interpretWithJavaExceptions(RescueNode.java:147)
        at org.jruby.ast.RescueNode.interpret(RescueNode.java:110)
        at 
org.jruby.internal.runtime.methods.InterpretedMethod.call(InterpretedMethod.java:173)
        at 
org.jruby.internal.runtime.methods.DefaultMethod.call(DefaultMethod.java:169)
        at 
org.jruby.runtime.callsite.CachingCallSite.call(CachingCallSite.java:147)
        at org.jruby.ast.CallOneArgNode.interpret(CallOneArgNode.java:57)
        at org.jruby.ast.NewlineNode.interpret(NewlineNode.java:104)
        at 
org.jruby.runtime.InterpretedBlock.evalBlockBody(InterpretedBlock.java:317)
        at org.jruby.runtime.InterpretedBlock.yield(InterpretedBlock.java:268)
        at org.jruby.runtime.Block.yield(Block.java:194)
        at 
org.jruby.libraries.ThreadLibrary$Mutex.synchronize(ThreadLibrary.java:167)
        at 
org.jruby.libraries.ThreadLibrary$Mutex$i_method_0_0$RUBYINVOKER$synchronize.call(org/jruby/libraries/ThreadLibrary$Mutex$i_method_0_0$RUBYINVOKER$synchronize.gen)
        at 
org.jruby.runtime.callsite.CachingCallSite.callBlock(CachingCallSite.java:116)
        at 
org.jruby.runtime.callsite.CachingCallSite.call(CachingCallSite.java:123)
        at 
org.jruby.ast.CallNoArgBlockNode.interpret(CallNoArgBlockNode.java:64)
        at org.jruby.ast.NewlineNode.interpret(NewlineNode.java:104)
        at org.jruby.ast.BlockNode.interpret(BlockNode.java:71)
        at org.jruby.ast.EnsureNode.interpret(EnsureNode.java:96)
        at 
org.jruby.internal.runtime.methods.InterpretedMethod.call(InterpretedMethod.java:173)
        at 
org.jruby.internal.runtime.methods.DefaultMethod.call(DefaultMethod.java:169)
        at 
org.jruby.runtime.callsite.CachingCallSite.call(CachingCallSite.java:147)
        at org.jruby.ast.CallOneArgNode.interpret(CallOneArgNode.java:57)
        at org.jruby.ast.NewlineNode.interpret(NewlineNode.java:104)
        at org.jruby.ast.BlockNode.interpret(BlockNode.java:71)
        at 
org.jruby.runtime.InterpretedBlock.evalBlockBody(InterpretedBlock.java:317)
        at org.jruby.runtime.InterpretedBlock.yield(InterpretedBlock.java:251)
        at 
org.jruby.runtime.InterpretedBlock.yieldSpecific(InterpretedBlock.java:185)
        at org.jruby.runtime.Block.yieldSpecific(Block.java:99)
        at org.jruby.ast.ZYieldNode.interpret(ZYieldNode.java:25)
        at org.jruby.ast.ToAryNode.interpret(ToAryNode.java:69)
        at org.jruby.ast.MultipleAsgnNode.interpret(MultipleAsgnNode.java:128)
        at org.jruby.ast.NewlineNode.interpret(NewlineNode.java:104)
        at org.jruby.ast.BlockNode.interpret(BlockNode.java:71)
        at org.jruby.ast.RescueNode.executeBody(RescueNode.java:225)
        at 
org.jruby.ast.RescueNode.interpretWithJavaExceptions(RescueNode.java:147)
        at org.jruby.ast.RescueNode.interpret(RescueNode.java:110)
        at org.jruby.ast.BeginNode.interpret(BeginNode.java:83)
        at org.jruby.ast.NewlineNode.interpret(NewlineNode.java:104)
        at org.jruby.ast.BlockNode.interpret(BlockNode.java:71)
        at 
org.jruby.internal.runtime.methods.InterpretedMethod.call(InterpretedMethod.java:155)
        at 
org.jruby.internal.runtime.methods.DefaultMethod.call(DefaultMethod.java:161)
        at 
org.jruby.runtime.callsite.CachingCallSite.callBlock(CachingCallSite.java:116)
        at 
org.jruby.runtime.callsite.CachingCallSite.call(CachingCallSite.java:123)
        at 
org.jruby.ast.CallNoArgBlockNode.interpret(CallNoArgBlockNode.java:64)
        at org.jruby.ast.NewlineNode.interpret(NewlineNode.java:104)
        at org.jruby.ast.IfNode.interpret(IfNode.java:119)
        at org.jruby.ast.NewlineNode.interpret(NewlineNode.java:104)
        at 
org.jruby.internal.runtime.methods.InterpretedMethod.call(InterpretedMethod.java:173)
        at 
org.jruby.internal.runtime.methods.DefaultMethod.call(DefaultMethod.java:169)
        at 
org.jruby.runtime.callsite.CachingCallSite.call(CachingCallSite.java:147)
        at org.jruby.ast.CallOneArgNode.interpret(CallOneArgNode.java:57)
        at org.jruby.ast.NewlineNode.interpret(NewlineNode.java:104)
        at org.jruby.ast.BlockNode.interpret(BlockNode.java:71)
        at 
org.jruby.internal.runtime.methods.InterpretedMethod.call(InterpretedMethod.java:173)
        at 
org.jruby.internal.runtime.methods.DefaultMethod.call(DefaultMethod.java:169)
        at 
org.jruby.runtime.callsite.CachingCallSite.call(CachingCallSite.java:147)
        at org.jruby.ast.CallOneArgNode.interpret(CallOneArgNode.java:57)
        at org.jruby.ast.CallOneArgNode.interpret(CallOneArgNode.java:57)
        at org.jruby.ast.NewlineNode.interpret(NewlineNode.java:104)
        at 
org.jruby.internal.runtime.methods.InterpretedMethod.call(InterpretedMethod.java:173)
        at 
org.jruby.internal.runtime.methods.DefaultMethod.call(DefaultMethod.java:169)
        at org.jruby.RubyClass.finvoke(RubyClass.java:568)
        at 
org.jruby.javasupport.util.RuntimeHelpers.invoke(RuntimeHelpers.java:409)
        at org.jruby.RubyBasicObject.callMethod(RubyBasicObject.java:317)
        at 
com.sun.grizzly.jruby.rack.AbstractRackApplication.call(AbstractRackApplication.java:156)
        at 
com.sun.grizzly.jruby.RackGrizzlyAdapter.dispatchRequest(RackGrizzlyAdapter.java:335)
        at 
com.sun.grizzly.jruby.RackGrizzlyAdapter.service(RackGrizzlyAdapter.java:322)
        at 
com.sun.grizzly.tcp.http11.GrizzlyAdapter.service(GrizzlyAdapter.java:166)
        at 
com.sun.enterprise.v3.server.HK2Dispatcher.dispath(HK2Dispatcher.java:100)
        at 
com.sun.enterprise.v3.services.impl.ContainerMapper.service(ContainerMapper.java:245)
        at 
com.sun.grizzly.http.ProcessorTask.invokeAdapter(ProcessorTask.java:791)
        at com.sun.grizzly.http.ProcessorTask.doProcess(ProcessorTask.java:693)
        at com.sun.grizzly.http.ProcessorTask.process(ProcessorTask.java:954)
        at 
com.sun.grizzly.http.DefaultProtocolFilter.execute(DefaultProtocolFilter.java:170)
        at 
com.sun.grizzly.DefaultProtocolChain.executeProtocolFilter(DefaultProtocolChain.java:135)
        at 
com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:102)
        at 
com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:88)
        at 
com.sun.grizzly.http.HttpProtocolChain.execute(HttpProtocolChain.java:76)
        at 
com.sun.grizzly.ProtocolChainContextTask.doCall(ProtocolChainContextTask.java:53)
        at 
com.sun.grizzly.SelectionKeyContextTask.call(SelectionKeyContextTask.java:57)
        at com.sun.grizzly.ContextTask.run(ContextTask.java:69)
        at 
com.sun.grizzly.util.AbstractThreadPool$Worker.doWork(AbstractThreadPool.java:330)
        at 
com.sun.grizzly.util.AbstractThreadPool$Worker.run(AbstractThreadPool.java:309)
        at java.lang.Thread.run(Thread.java:619)
18/01/2010 11:16:06 AM com.sun.grizzly.tcp.http11.GrizzlyAdapter service
SEVERE: service exception
java.lang.IllegalStateException: No JRuby Instances available to satisfy the 
current request
        at 
com.sun.grizzly.jruby.RackGrizzlyAdapter.service(RackGrizzlyAdapter.java:320)
        at 
com.sun.grizzly.tcp.http11.GrizzlyAdapter.service(GrizzlyAdapter.java:166)
        at 
com.sun.enterprise.v3.server.HK2Dispatcher.dispath(HK2Dispatcher.java:100)
        at 
com.sun.enterprise.v3.services.impl.ContainerMapper.service(ContainerMapper.java:245)
        at 
com.sun.grizzly.http.ProcessorTask.invokeAdapter(ProcessorTask.java:791)
        at com.sun.grizzly.http.ProcessorTask.doProcess(ProcessorTask.java:693)
        at com.sun.grizzly.http.ProcessorTask.process(ProcessorTask.java:954)
        at 
com.sun.grizzly.http.DefaultProtocolFilter.execute(DefaultProtocolFilter.java:170)
        at 
com.sun.grizzly.DefaultProtocolChain.executeProtocolFilter(DefaultProtocolChain.java:135)
        at 
com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:102)
        at 
com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:88)
        at 
com.sun.grizzly.http.HttpProtocolChain.execute(HttpProtocolChain.java:76)
        at 
com.sun.grizzly.ProtocolChainContextTask.doCall(ProtocolChainContextTask.java:53)
        at 
com.sun.grizzly.SelectionKeyContextTask.call(SelectionKeyContextTask.java:57)
        at com.sun.grizzly.ContextTask.run(ContextTask.java:69)
        at 
com.sun.grizzly.util.AbstractThreadPool$Worker.doWork(AbstractThreadPool.java:330)
        at 
com.sun.grizzly.util.AbstractThreadPool$Worker.run(AbstractThreadPool.java:309)
        at java.lang.Thread.run(Thread.java:619)

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