Handle SQLServerException on Connection Failure from Ruby

I’d like to handle a exception being thrown by SQL Server when the
connection is lost in Ruby code, but the exception appears to kill the
process.

Here’s the stack trace:

Exception in thread “main”
com.microsoft.sqlserver.jdbc.SQLServerException: Connection reset by
peer: socket write error
[msbuild] at
com.microsoft.sqlserver.jdbc.SQLServerConnection.terminate(Unknown
Source)
[msbuild] at com.microsoft.sqlserver.jdbc.TDSChannel.write(Unknown
Source)
[msbuild] at com.microsoft.sqlserver.jdbc.TDSWriter.flush(Unknown
Source)
[msbuild] at com.microsoft.sqlserver.jdbc.TDSWriter.writePacket(Unknown
Source)
[msbuild] at com.microsoft.sqlserver.jdbc.TDSWriter.endMessage(Unknown
Source)
[msbuild] at
com.microsoft.sqlserver.jdbc.TDSCommand.startResponse(Unknown Source)
[msbuild] at
com.microsoft.sqlserver.jdbc.TDSCommand.startResponse(Unknown Source)
[msbuild] at
com.microsoft.sqlserver.jdbc.SQLServerConnection$1ConnectionCommand.doExecute(Unknown
Source)
[msbuild] at com.microsoft.sqlserver.jdbc.TDSCommand.execute(Unknown
Source)
[msbuild] at
com.microsoft.sqlserver.jdbc.SQLServerConnection.executeCommand(Unknown
Source)
[msbuild] at
com.microsoft.sqlserver.jdbc.SQLServerConnection.connectionCommand(Unknown
Source)
[msbuild] at
com.microsoft.sqlserver.jdbc.SQLServerConnection.setAutoCommit(Unknown
Source)
[msbuild] at
jdbc_adapter.JdbcAdapterInternalService.begin(JdbcAdapterInternalService.java:394)
[msbuild] at
jdbc_adapter.JdbcAdapterInternalServiceInvoker$begin_s_method_0_0.call(Unknown
Source)
[msbuild] at
org.jruby.runtime.CallSite$InlineCachingCallSite.call(CallSite.java:330)
[msbuild] at
org.jruby.ast.CallNoArgNode.interpret(CallNoArgNode.java:61)
[msbuild] at org.jruby.ast.NewlineNode.interpret(NewlineNode.java:101)
[msbuild] at
org.jruby.internal.runtime.methods.DefaultMethod.interpretedCall(DefaultMethod.java:171)
[msbuild] at
org.jruby.internal.runtime.methods.DefaultMethod.call(DefaultMethod.java:147)
[msbuild] at
org.jruby.internal.runtime.methods.DefaultMethod.call(DefaultMethod.java:224)
[msbuild] at
org.jruby.runtime.CallSite$InlineCachingCallSite.call(CallSite.java:330)
[msbuild] at org.jruby.ast.VCallNode.interpret(VCallNode.java:82)
[msbuild] at org.jruby.ast.NewlineNode.interpret(NewlineNode.java:101)
[msbuild] at org.jruby.ast.BlockNode.interpret(BlockNode.java:67)
[msbuild] at org.jruby.ast.IfNode.interpret(IfNode.java:108)
[msbuild] at org.jruby.ast.NewlineNode.interpret(NewlineNode.java:101)
[msbuild] at org.jruby.ast.BlockNode.interpret(BlockNode.java:67)
[msbuild] at org.jruby.ast.IfNode.interpret(IfNode.java:108)
[msbuild] at org.jruby.ast.NewlineNode.interpret(NewlineNode.java:101)
[msbuild] at org.jruby.ast.RescueNode.executeBody(RescueNode.java:155)
[msbuild] at org.jruby.ast.RescueNode.interpret(RescueNode.java:108)
[msbuild] at org.jruby.ast.BeginNode.interpret(BeginNode.java:80)
[msbuild] at org.jruby.ast.NewlineNode.interpret(NewlineNode.java:101)
[msbuild] at org.jruby.ast.BlockNode.interpret(BlockNode.java:67)
[msbuild] at org.jruby.ast.EnsureNode.interpret(EnsureNode.java:93)
[msbuild] at
org.jruby.internal.runtime.methods.DefaultMethod.interpretedCall(DefaultMethod.java:171)
[msbuild] at
org.jruby.internal.runtime.methods.DefaultMethod.call(DefaultMethod.java:147)
[msbuild] at
org.jruby.internal.runtime.methods.DefaultMethod.call(DefaultMethod.java:287)
[msbuild] at
org.jruby.runtime.CallSite$InlineCachingCallSite.call(CallSite.java:393)
[msbuild] at
org.jruby.ast.CallOneArgBlockNode.interpret(CallOneArgBlockNode.java:60)
[msbuild] at org.jruby.ast.NewlineNode.interpret(NewlineNode.java:101)
[msbuild] at org.jruby.ast.BlockNode.interpret(BlockNode.java:67)
[msbuild] at
org.jruby.runtime.InterpretedBlock.evalBlockBody(InterpretedBlock.java:203)
[msbuild] at
org.jruby.runtime.InterpretedBlock.yield(InterpretedBlock.java:191)
[msbuild] at org.jruby.runtime.Block.yield(Block.java:105)
[msbuild] at org.jruby.ast.YieldNode.interpret(YieldNode.java:95)
[msbuild] at org.jruby.ast.NewlineNode.interpret(NewlineNode.java:101)
[msbuild] at
org.jruby.internal.runtime.methods.DefaultMethod.interpretedCall(DefaultMethod.java:171)
[msbuild] at
org.jruby.internal.runtime.methods.DefaultMethod.call(DefaultMethod.java:147)
[msbuild] at
org.jruby.internal.runtime.methods.DefaultMethod.call(DefaultMethod.java:245)
[msbuild] at
org.jruby.runtime.CallSite$InlineCachingCallSite.call(CallSite.java:342)
[msbuild] at
org.jruby.ast.CallNoArgBlockNode.interpret(CallNoArgBlockNode.java:63)
[msbuild] at org.jruby.ast.NewlineNode.interpret(NewlineNode.java:101)
[msbuild] at
org.jruby.runtime.InterpretedBlock.evalBlockBody(InterpretedBlock.java:203)
[msbuild] at
org.jruby.runtime.InterpretedBlock.yield(InterpretedBlock.java:191)
[msbuild] at org.jruby.runtime.Block.yield(Block.java:105)
[msbuild] at org.jruby.ast.YieldNode.interpret(YieldNode.java:95)
[msbuild] at org.jruby.ast.NewlineNode.interpret(NewlineNode.java:101)
[msbuild] at org.jruby.ast.BlockNode.interpret(BlockNode.java:67)
[msbuild] at org.jruby.ast.EnsureNode.interpret(EnsureNode.java:93)
[msbuild] at
org.jruby.internal.runtime.methods.DefaultMethod.interpretedCall(DefaultMethod.java:171)
[msbuild] at
org.jruby.internal.runtime.methods.DefaultMethod.call(DefaultMethod.java:147)
[msbuild] at
org.jruby.internal.runtime.methods.DefaultMethod.call(DefaultMethod.java:245)
[msbuild] at
org.jruby.runtime.CallSite$InlineCachingCallSite.call(CallSite.java:342)
[msbuild] at
org.jruby.ast.CallNoArgBlockNode.interpret(CallNoArgBlockNode.java:63)
[msbuild] at org.jruby.ast.NewlineNode.interpret(NewlineNode.java:101)
[msbuild] at org.jruby.ast.IfNode.interpret(IfNode.java:110)
[msbuild] at org.jruby.ast.NewlineNode.interpret(NewlineNode.java:101)
[msbuild] at org.jruby.ast.BlockNode.interpret(BlockNode.java:67)
[msbuild] at
org.jruby.internal.runtime.methods.DefaultMethod.interpretedCall(DefaultMethod.java:171)
[msbuild] at
org.jruby.internal.runtime.methods.DefaultMethod.call(DefaultMethod.java:147)
[msbuild] at
org.jruby.internal.runtime.methods.DefaultMethod.call(DefaultMethod.java:350)
[msbuild] at
org.jruby.runtime.CallSite$InlineCachingCallSite.call(CallSite.java:483)
[msbuild] at
org.jruby.ast.CallThreeArgNode.interpret(CallThreeArgNode.java:61)
[msbuild] at
org.jruby.ast.LocalAsgnNode.interpret(LocalAsgnNode.java:115)
[msbuild] at org.jruby.ast.NewlineNode.interpret(NewlineNode.java:101)
[msbuild] at org.jruby.ast.BlockNode.interpret(BlockNode.java:67)
[msbuild] at
org.jruby.internal.runtime.methods.DefaultMethod.interpretedCall(DefaultMethod.java:171)
[msbuild] at
org.jruby.internal.runtime.methods.DefaultMethod.call(DefaultMethod.java:147)
[msbuild] at
org.jruby.internal.runtime.methods.DefaultMethod.call(DefaultMethod.java:224)
[msbuild] at
org.jruby.runtime.CallSite$InlineCachingCallSite.call(CallSite.java:330)
[msbuild] at org.jruby.ast.VCallNode.interpret(VCallNode.java:82)
[msbuild] at org.jruby.ast.NewlineNode.interpret(NewlineNode.java:101)
[msbuild] at org.jruby.ast.BlockNode.interpret(BlockNode.java:67)
[msbuild] at org.jruby.ast.IfNode.interpret(IfNode.java:110)
[msbuild] at org.jruby.ast.NewlineNode.interpret(NewlineNode.java:101)
[msbuild] at org.jruby.ast.BlockNode.interpret(BlockNode.java:67)
[msbuild] at
org.jruby.internal.runtime.methods.DefaultMethod.interpretedCall(DefaultMethod.java:171)
[msbuild] at
org.jruby.internal.runtime.methods.DefaultMethod.call(DefaultMethod.java:147)
[msbuild] at
org.jruby.internal.runtime.methods.DefaultMethod.call(DefaultMethod.java:224)
[msbuild] at
org.jruby.runtime.CallSite$InlineCachingCallSite.call(CallSite.java:330)
[msbuild] at org.jruby.ast.VCallNode.interpret(VCallNode.java:82)
[msbuild] at org.jruby.ast.NewlineNode.interpret(NewlineNode.java:101)
[msbuild] at org.jruby.ast.BlockNode.interpret(BlockNode.java:67)
[msbuild] at
org.jruby.runtime.InterpretedBlock.evalBlockBody(InterpretedBlock.java:203)
[msbuild] at
org.jruby.runtime.InterpretedBlock.yield(InterpretedBlock.java:191)
[msbuild] at org.jruby.runtime.BlockBody.call(BlockBody.java:64)
[msbuild] at org.jruby.runtime.Block.call(Block.java:96)
[msbuild] at org.jruby.RubyProc.call(RubyProc.java:202)
[msbuild] at
org.jruby.internal.runtime.methods.ProcMethod.call(ProcMethod.java:64)
[msbuild] at
org.jruby.internal.runtime.methods.DynamicMethod.call(DynamicMethod.java:224)
[msbuild] at
org.jruby.internal.runtime.methods.DynamicMethod.call(DynamicMethod.java:201)
[msbuild] at
org.jruby.runtime.CallSite$InlineCachingCallSite.call(CallSite.java:330)
[msbuild] at org.jruby.ast.VCallNode.interpret(VCallNode.java:82)
[msbuild] at org.jruby.ast.NewlineNode.interpret(NewlineNode.java:101)
[msbuild] at org.jruby.ast.BlockNode.interpret(BlockNode.java:67)
[msbuild] at org.jruby.ast.RescueNode.executeBody(RescueNode.java:155)
[msbuild] at org.jruby.ast.RescueNode.interpret(RescueNode.java:108)
[msbuild] at org.jruby.ast.EnsureNode.interpret(EnsureNode.java:93)
[msbuild] at org.jruby.ast.BeginNode.interpret(BeginNode.java:80)
[msbuild] at org.jruby.ast.NewlineNode.interpret(NewlineNode.java:101)
[msbuild] at org.jruby.ast.BlockNode.interpret(BlockNode.java:67)
[msbuild] at
org.jruby.internal.runtime.methods.DefaultMethod.interpretedCall(DefaultMethod.java:171)
[msbuild] at
org.jruby.internal.runtime.methods.DefaultMethod.call(DefaultMethod.java:147)
[msbuild] at
org.jruby.internal.runtime.methods.DefaultMethod.call(DefaultMethod.java:287)
[msbuild] at
org.jruby.runtime.CallSite$InlineCachingCallSite.call(CallSite.java:393)
[msbuild] at
org.jruby.ast.CallOneArgBlockPassNode.interpret(CallOneArgBlockPassNode.java:60)
[msbuild] at org.jruby.ast.NewlineNode.interpret(NewlineNode.java:101)
[msbuild] at
org.jruby.runtime.InterpretedBlock.evalBlockBody(InterpretedBlock.java:203)
[msbuild] at
org.jruby.runtime.InterpretedBlock.yield(InterpretedBlock.java:154)
[msbuild] at org.jruby.runtime.Block.yield(Block.java:100)
[msbuild] at org.jruby.RubyArray.each(RubyArray.java:1338)
[msbuild] at org.jruby.RubyArrayInvoker$each_method_0_0.call(Unknown
Source)
[msbuild] at
org.jruby.runtime.CallSite$InlineCachingCallSite.call(CallSite.java:342)
[msbuild] at
org.jruby.ast.CallNoArgBlockNode.interpret(CallNoArgBlockNode.java:63)
[msbuild] at org.jruby.ast.NewlineNode.interpret(NewlineNode.java:101)
[msbuild] at org.jruby.ast.BlockNode.interpret(BlockNode.java:67)
[msbuild] at
org.jruby.internal.runtime.methods.DefaultMethod.interpretedCall(DefaultMethod.java:171)
[msbuild] at
org.jruby.internal.runtime.methods.DefaultMethod.call(DefaultMethod.java:147)
[msbuild] at
org.jruby.internal.runtime.methods.DefaultMethod.call(DefaultMethod.java:287)
[msbuild] at
org.jruby.runtime.CallSite$InlineCachingCallSite.cacheAndCall(CallSite.java:159)
[msbuild] at
org.jruby.runtime.CallSite$InlineCachingCallSite.call(CallSite.java:396)
[msbuild] at
org.jruby.ast.CallOneArgBlockPassNode.interpret(CallOneArgBlockPassNode.java:60)
[msbuild] at org.jruby.ast.NewlineNode.interpret(NewlineNode.java:101)
[msbuild] at
org.jruby.runtime.InterpretedBlock.evalBlockBody(InterpretedBlock.java:203)
[msbuild] at
org.jruby.runtime.InterpretedBlock.yield(InterpretedBlock.java:154)
[msbuild] at org.jruby.runtime.Block.yield(Block.java:100)
[msbuild] at org.jruby.RubyArray.each(RubyArray.java:1338)
[msbuild] at org.jruby.RubyArrayInvoker$each_method_0_0.call(Unknown
Source)
[msbuild] at
org.jruby.runtime.CallSite$InlineCachingCallSite.call(CallSite.java:342)
[msbuild] at
org.jruby.ast.CallNoArgBlockNode.interpret(CallNoArgBlockNode.java:63)
[msbuild] at org.jruby.ast.NewlineNode.interpret(NewlineNode.java:101)
[msbuild] at org.jruby.ast.BlockNode.interpret(BlockNode.java:67)
[msbuild] at
org.jruby.internal.runtime.methods.DefaultMethod.interpretedCall(DefaultMethod.java:171)
[msbuild] at
org.jruby.internal.runtime.methods.DefaultMethod.call(DefaultMethod.java:147)
[msbuild] at
org.jruby.internal.runtime.methods.DefaultMethod.call(DefaultMethod.java:287)
[msbuild] at
org.jruby.runtime.CallSite$InlineCachingCallSite.cacheAndCall(CallSite.java:159)
[msbuild] at
org.jruby.runtime.CallSite$InlineCachingCallSite.call(CallSite.java:396)
[msbuild] at
org.jruby.ast.CallOneArgBlockPassNode.interpret(CallOneArgBlockPassNode.java:60)
[msbuild] at org.jruby.ast.NewlineNode.interpret(NewlineNode.java:101)
[msbuild] at
org.jruby.runtime.InterpretedBlock.evalBlockBody(InterpretedBlock.java:203)
[msbuild] at
org.jruby.runtime.InterpretedBlock.yield(InterpretedBlock.java:154)
[msbuild] at org.jruby.runtime.Block.yield(Block.java:100)
[msbuild] at org.jruby.RubyArray.each(RubyArray.java:1338)
[msbuild] at org.jruby.RubyArrayInvoker$each_method_0_0.call(Unknown
Source)
[msbuild] at
org.jruby.runtime.CallSite$InlineCachingCallSite.cacheAndCall(CallSite.java:135)
[msbuild] at
org.jruby.runtime.CallSite$InlineCachingCallSite.call(CallSite.java:345)
[msbuild] at
org.jruby.ast.CallNoArgBlockNode.interpret(CallNoArgBlockNode.java:63)
[msbuild] at org.jruby.ast.NewlineNode.interpret(NewlineNode.java:101)
[msbuild] at org.jruby.ast.BlockNode.interpret(BlockNode.java:67)
[msbuild] at
org.jruby.internal.runtime.methods.DefaultMethod.interpretedCall(DefaultMethod.java:171)
[msbuild] at
org.jruby.internal.runtime.methods.DefaultMethod.call(DefaultMethod.java:147)
[msbuild] at
org.jruby.internal.runtime.methods.DefaultMethod.call(DefaultMethod.java:287)
[msbuild] at
org.jruby.runtime.CallSite$InlineCachingCallSite.cacheAndCall(CallSite.java:159)
[msbuild] at
org.jruby.runtime.CallSite$InlineCachingCallSite.call(CallSite.java:396)
[msbuild] at
org.jruby.ast.CallOneArgBlockNode.interpret(CallOneArgBlockNode.java:60)
[msbuild] at org.jruby.ast.NewlineNode.interpret(NewlineNode.java:101)
[msbuild] at org.jruby.ast.BlockNode.interpret(BlockNode.java:67)
[msbuild] at
org.jruby.internal.runtime.methods.DefaultMethod.interpretedCall(DefaultMethod.java:171)
[msbuild] at
org.jruby.internal.runtime.methods.DefaultMethod.call(DefaultMethod.java:147)
[msbuild] at
org.jruby.internal.runtime.methods.DefaultMethod.call(DefaultMethod.java:224)
[msbuild] at
org.jruby.runtime.CallSite$InlineCachingCallSite.cacheAndCall(CallSite.java:123)
[msbuild] at
org.jruby.runtime.CallSite$InlineCachingCallSite.call(CallSite.java:333)
[msbuild] at
org.jruby.ast.CallNoArgNode.interpret(CallNoArgNode.java:61)
[msbuild] at org.jruby.ast.ReturnNode.interpret(ReturnNode.java:85)
[msbuild] at org.jruby.ast.NewlineNode.interpret(NewlineNode.java:101)
[msbuild] at
org.jruby.internal.runtime.methods.DefaultMethod.interpretedCall(DefaultMethod.java:171)
[msbuild] at
org.jruby.internal.runtime.methods.DefaultMethod.call(DefaultMethod.java:147)
[msbuild] at
org.jruby.internal.runtime.methods.DefaultMethod.call(DefaultMethod.java:224)
[msbuild] at
org.jruby.runtime.CallSite$InlineCachingCallSite.cacheAndCall(CallSite.java:123)
[msbuild] at
org.jruby.runtime.CallSite$InlineCachingCallSite.call(CallSite.java:333)
[msbuild] at org.jruby.ast.VCallNode.interpret(VCallNode.java:82)
[msbuild] at org.jruby.ast.ReturnNode.interpret(ReturnNode.java:85)
[msbuild] at org.jruby.ast.NewlineNode.interpret(NewlineNode.java:101)
[msbuild] at org.jruby.ast.BlockNode.interpret(BlockNode.java:67)
[msbuild] at
org.jruby.internal.runtime.methods.DefaultMethod.interpretedCall(DefaultMethod.java:171)
[msbuild] at
org.jruby.internal.runtime.methods.DefaultMethod.call(DefaultMethod.java:147)
[msbuild] at org.jruby.RubyObject.send(RubyObject.java:2050)
[msbuild] at org.jruby.RubyObjectInvoker$send_method_0_0.call(Unknown
Source)
[msbuild] at
org.jruby.runtime.CallSite$InlineCachingCallSite.cacheAndCall(CallSite.java:99)
[msbuild] at
org.jruby.runtime.CallSite$InlineCachingCallSite.call(CallSite.java:294)
[msbuild] at org.jruby.ast.CallNode.interpret(CallNode.java:166)
[msbuild] at org.jruby.ast.NewlineNode.interpret(NewlineNode.java:101)
[msbuild] at org.jruby.ast.RescueNode.executeBody(RescueNode.java:155)
[msbuild] at org.jruby.ast.RescueNode.interpret(RescueNode.java:108)
[msbuild] at org.jruby.ast.BeginNode.interpret(BeginNode.java:80)
[msbuild] at org.jruby.ast.NewlineNode.interpret(NewlineNode.java:101)
[msbuild] at
org.jruby.internal.runtime.methods.DefaultMethod.interpretedCall(DefaultMethod.java:171)
[msbuild] at
org.jruby.internal.runtime.methods.DefaultMethod.call(DefaultMethod.java:147)
[msbuild] at
org.jruby.internal.runtime.methods.DefaultMethod.call(DefaultMethod.java:245)
[msbuild] at
org.jruby.runtime.CallSite$InlineCachingCallSite.cacheAndCall(CallSite.java:135)
[msbuild] at
org.jruby.runtime.CallSite$InlineCachingCallSite.call(CallSite.java:345)
[msbuild] at
org.jruby.ast.CallNoArgBlockNode.interpret(CallNoArgBlockNode.java:63)
[msbuild] at org.jruby.ast.NewlineNode.interpret(NewlineNode.java:101)
[msbuild] at org.jruby.ast.BlockNode.interpret(BlockNode.java:67)
[msbuild] at
org.jruby.internal.runtime.methods.DefaultMethod.interpretedCall(DefaultMethod.java:171)
[msbuild] at
org.jruby.internal.runtime.methods.DefaultMethod.call(DefaultMethod.java:147)
[msbuild] at
org.jruby.internal.runtime.methods.DefaultMethod.call(DefaultMethod.java:350)
[msbuild] at
org.jruby.runtime.CallSite$InlineCachingCallSite.cacheAndCall(CallSite.java:195)
[msbuild] at
org.jruby.runtime.CallSite$InlineCachingCallSite.call(CallSite.java:486)
[msbuild] at
org.jruby.ast.CallThreeArgNode.interpret(CallThreeArgNode.java:61)
[msbuild] at
org.jruby.ast.LocalAsgnNode.interpret(LocalAsgnNode.java:115)
[msbuild] at org.jruby.ast.NewlineNode.interpret(NewlineNode.java:101)
[msbuild] at org.jruby.ast.BlockNode.interpret(BlockNode.java:67)
[msbuild] at
org.jruby.internal.runtime.methods.DefaultMethod.interpretedCall(DefaultMethod.java:171)
[msbuild] at
org.jruby.internal.runtime.methods.DefaultMethod.call(DefaultMethod.java:147)
[msbuild] at
org.jruby.internal.runtime.methods.DefaultMethod.call(DefaultMethod.java:308)
[msbuild] at
org.jruby.runtime.CallSite$InlineCachingCallSite.cacheAndCall(CallSite.java:171)
[msbuild] at
org.jruby.runtime.CallSite$InlineCachingCallSite.call(CallSite.java:435)
[msbuild] at
org.jruby.ast.CallTwoArgNode.interpret(CallTwoArgNode.java:59)
[msbuild] at
org.jruby.ast.CallNoArgNode.interpret(CallNoArgNode.java:61)
[msbuild] at org.jruby.ast.NewlineNode.interpret(NewlineNode.java:101)
[msbuild] at org.jruby.ast.BlockNode.interpret(BlockNode.java:67)
[msbuild] at
org.jruby.internal.runtime.methods.DefaultMethod.interpretedCall(DefaultMethod.java:171)
[msbuild] at
org.jruby.internal.runtime.methods.DefaultMethod.call(DefaultMethod.java:147)
[msbuild] at
org.jruby.internal.runtime.methods.DefaultMethod.call(DefaultMethod.java:224)
[msbuild] at
org.jruby.runtime.CallSite$InlineCachingCallSite.cacheAndCall(CallSite.java:123)
[msbuild] at
org.jruby.runtime.CallSite$InlineCachingCallSite.call(CallSite.java:333)
[msbuild] at
org.jruby.ast.CallNoArgNode.interpret(CallNoArgNode.java:61)
[msbuild] at org.jruby.ast.NewlineNode.interpret(NewlineNode.java:101)
[msbuild] at org.jruby.ast.BlockNode.interpret(BlockNode.java:67)
[msbuild] at
org.jruby.internal.runtime.methods.DefaultMethod.interpretedCall(DefaultMethod.java:171)
[msbuild] at
org.jruby.internal.runtime.methods.DefaultMethod.call(DefaultMethod.java:147)
[msbuild] at
org.jruby.internal.runtime.methods.DefaultMethod.call(DefaultMethod.java:224)
[msbuild] at
org.jruby.runtime.CallSite$InlineCachingCallSite.cacheAndCall(CallSite.java:123)
[msbuild] at
org.jruby.runtime.CallSite$InlineCachingCallSite.call(CallSite.java:333)
[msbuild] at
org.jruby.ast.CallNoArgNode.interpret(CallNoArgNode.java:61)
[msbuild] at
org.jruby.ast.FCallOneArgNode.interpret(FCallOneArgNode.java:36)
[msbuild] at org.jruby.ast.NewlineNode.interpret(NewlineNode.java:101)
[msbuild] at org.jruby.ast.IfNode.interpret(IfNode.java:110)
[msbuild] at org.jruby.ast.NewlineNode.interpret(NewlineNode.java:101)
[msbuild] at
org.jruby.runtime.InterpretedBlock.evalBlockBody(InterpretedBlock.java:203)
[msbuild] at
org.jruby.runtime.InterpretedBlock.yield(InterpretedBlock.java:191)
[msbuild] at org.jruby.runtime.BlockBody.call(BlockBody.java:64)
[msbuild] at org.jruby.runtime.Block.call(Block.java:96)
[msbuild] at org.jruby.RubyProc.call(RubyProc.java:202)
[msbuild] at org.jruby.RubyProc.call(RubyProc.java:189)
[msbuild] at org.jruby.Ruby.tearDown(Ruby.java:2240)
[msbuild] at org.jruby.Main.run(Main.java:196)
[msbuild] at org.jruby.Main.run(Main.java:91)
[msbuild] at org.jruby.Main.main(Main.java:82)

Is it possible to handle this exception?

Thanks,
Nathan Roe

I forgot to mention that we’re using version 0.8.1.1 of the ActiveRecord
JDBC adapter.

From: Nathan D. Roe [mailto:[email protected]]
Sent: Thursday, September 11, 2008 2:51 PM
To: [email protected]
Subject: [jruby-user] Handle SQLServerException on Connection Failure
from Ruby

I’d like to handle a exception being thrown by SQL Server when the
connection is lost in Ruby code, but the exception appears to kill the
process.

Here’s the stack trace:

Exception in thread “main”
com.microsoft.sqlserver.jdbc.SQLServerException: Connection reset by
peer: socket write error
[msbuild] at
com.microsoft.sqlserver.jdbc.SQLServerConnection.terminate(Unknown
Source)
[msbuild] at com.microsoft.sqlserver.jdbc.TDSChannel.write(Unknown
Source)
[msbuild] at com.microsoft.sqlserver.jdbc.TDSWriter.flush(Unknown
Source)
[msbuild] at com.microsoft.sqlserver.jdbc.TDSWriter.writePacket(Unknown
Source)
[msbuild] at com.microsoft.sqlserver.jdbc.TDSWriter.endMessage(Unknown
Source)
[msbuild] at
com.microsoft.sqlserver.jdbc.TDSCommand.startResponse(Unknown Source)
[msbuild] at
com.microsoft.sqlserver.jdbc.TDSCommand.startResponse(Unknown Source)
[msbuild] at
com.microsoft.sqlserver.jdbc.SQLServerConnection$1ConnectionCommand.doExecute(Unknown
Source)
[msbuild] at com.microsoft.sqlserver.jdbc.TDSCommand.execute(Unknown
Source)
[msbuild] at
com.microsoft.sqlserver.jdbc.SQLServerConnection.executeCommand(Unknown
Source)
[msbuild] at
com.microsoft.sqlserver.jdbc.SQLServerConnection.connectionCommand(Unknown
Source)
[msbuild] at
com.microsoft.sqlserver.jdbc.SQLServerConnection.setAutoCommit(Unknown
Source)
[msbuild] at
jdbc_adapter.JdbcAdapterInternalService.begin(JdbcAdapterInternalService.java:394)
[msbuild] at
jdbc_adapter.JdbcAdapterInternalServiceInvoker$begin_s_method_0_0.call(Unknown
Source)
[msbuild] at
org.jruby.runtime.CallSite$InlineCachingCallSite.call(CallSite.java:330)
[msbuild] at
org.jruby.ast.CallNoArgNode.interpret(CallNoArgNode.java:61)
[msbuild] at org.jruby.ast.NewlineNode.interpret(NewlineNode.java:101)
[msbuild] at
org.jruby.internal.runtime.methods.DefaultMethod.interpretedCall(DefaultMethod.java:171)
[msbuild] at
org.jruby.internal.runtime.methods.DefaultMethod.call(DefaultMethod.java:147)
[msbuild] at
org.jruby.internal.runtime.methods.DefaultMethod.call(DefaultMethod.java:224)
[msbuild] at
org.jruby.runtime.CallSite$InlineCachingCallSite.call(CallSite.java:330)
[msbuild] at org.jruby.ast.VCallNode.interpret(VCallNode.java:82)
[msbuild] at org.jruby.ast.NewlineNode.interpret(NewlineNode.java:101)
[msbuild] at org.jruby.ast.BlockNode.interpret(BlockNode.java:67)
[msbuild] at org.jruby.ast.IfNode.interpret(IfNode.java:108)
[msbuild] at org.jruby.ast.NewlineNode.interpret(NewlineNode.java:101)
[msbuild] at org.jruby.ast.BlockNode.interpret(BlockNode.java:67)
[msbuild] at org.jruby.ast.IfNode.interpret(IfNode.java:108)
[msbuild] at org.jruby.ast.NewlineNode.interpret(NewlineNode.java:101)
[msbuild] at org.jruby.ast.RescueNode.executeBody(RescueNode.java:155)
[msbuild] at org.jruby.ast.RescueNode.interpret(RescueNode.java:108)
[msbuild] at org.jruby.ast.BeginNode.interpret(BeginNode.java:80)
[msbuild] at org.jruby.ast.NewlineNode.interpret(NewlineNode.java:101)
[msbuild] at org.jruby.ast.BlockNode.interpret(BlockNode.java:67)
[msbuild] at org.jruby.ast.EnsureNode.interpret(EnsureNode.java:93)
[msbuild] at
org.jruby.internal.runtime.methods.DefaultMethod.interpretedCall(DefaultMethod.java:171)
[msbuild] at
org.jruby.internal.runtime.methods.DefaultMethod.call(DefaultMethod.java:147)
[msbuild] at
org.jruby.internal.runtime.methods.DefaultMethod.call(DefaultMethod.java:287)
[msbuild] at
org.jruby.runtime.CallSite$InlineCachingCallSite.call(CallSite.java:393)
[msbuild] at
org.jruby.ast.CallOneArgBlockNode.interpret(CallOneArgBlockNode.java:60)
[msbuild] at org.jruby.ast.NewlineNode.interpret(NewlineNode.java:101)
[msbuild] at org.jruby.ast.BlockNode.interpret(BlockNode.java:67)
[msbuild] at
org.jruby.runtime.InterpretedBlock.evalBlockBody(InterpretedBlock.java:203)
[msbuild] at
org.jruby.runtime.InterpretedBlock.yield(InterpretedBlock.java:191)
[msbuild] at org.jruby.runtime.Block.yield(Block.java:105)
[msbuild] at org.jruby.ast.YieldNode.interpret(YieldNode.java:95)
[msbuild] at org.jruby.ast.NewlineNode.interpret(NewlineNode.java:101)
[msbuild] at
org.jruby.internal.runtime.methods.DefaultMethod.interpretedCall(DefaultMethod.java:171)
[msbuild] at
org.jruby.internal.runtime.methods.DefaultMethod.call(DefaultMethod.java:147)
[msbuild] at
org.jruby.internal.runtime.methods.DefaultMethod.call(DefaultMethod.java:245)
[msbuild] at
org.jruby.runtime.CallSite$InlineCachingCallSite.call(CallSite.java:342)
[msbuild] at
org.jruby.ast.CallNoArgBlockNode.interpret(CallNoArgBlockNode.java:63)
[msbuild] at org.jruby.ast.NewlineNode.interpret(NewlineNode.java:101)
[msbuild] at
org.jruby.runtime.InterpretedBlock.evalBlockBody(InterpretedBlock.java:203)
[msbuild] at
org.jruby.runtime.InterpretedBlock.yield(InterpretedBlock.java:191)
[msbuild] at org.jruby.runtime.Block.yield(Block.java:105)
[msbuild] at org.jruby.ast.YieldNode.interpret(YieldNode.java:95)
[msbuild] at org.jruby.ast.NewlineNode.interpret(NewlineNode.java:101)
[msbuild] at org.jruby.ast.BlockNode.interpret(BlockNode.java:67)
[msbuild] at org.jruby.ast.EnsureNode.interpret(EnsureNode.java:93)
[msbuild] at
org.jruby.internal.runtime.methods.DefaultMethod.interpretedCall(DefaultMethod.java:171)
[msbuild] at
org.jruby.internal.runtime.methods.DefaultMethod.call(DefaultMethod.java:147)
[msbuild] at
org.jruby.internal.runtime.methods.DefaultMethod.call(DefaultMethod.java:245)
[msbuild] at
org.jruby.runtime.CallSite$InlineCachingCallSite.call(CallSite.java:342)
[msbuild] at
org.jruby.ast.CallNoArgBlockNode.interpret(CallNoArgBlockNode.java:63)
[msbuild] at org.jruby.ast.NewlineNode.interpret(NewlineNode.java:101)
[msbuild] at org.jruby.ast.IfNode.interpret(IfNode.java:110)
[msbuild] at org.jruby.ast.NewlineNode.interpret(NewlineNode.java:101)
[msbuild] at org.jruby.ast.BlockNode.interpret(BlockNode.java:67)
[msbuild] at
org.jruby.internal.runtime.methods.DefaultMethod.interpretedCall(DefaultMethod.java:171)
[msbuild] at
org.jruby.internal.runtime.methods.DefaultMethod.call(DefaultMethod.java:147)
[msbuild] at
org.jruby.internal.runtime.methods.DefaultMethod.call(DefaultMethod.java:350)
[msbuild] at
org.jruby.runtime.CallSite$InlineCachingCallSite.call(CallSite.java:483)
[msbuild] at
org.jruby.ast.CallThreeArgNode.interpret(CallThreeArgNode.java:61)
[msbuild] at
org.jruby.ast.LocalAsgnNode.interpret(LocalAsgnNode.java:115)
[msbuild] at org.jruby.ast.NewlineNode.interpret(NewlineNode.java:101)
[msbuild] at org.jruby.ast.BlockNode.interpret(BlockNode.java:67)
[msbuild] at
org.jruby.internal.runtime.methods.DefaultMethod.interpretedCall(DefaultMethod.java:171)
[msbuild] at
org.jruby.internal.runtime.methods.DefaultMethod.call(DefaultMethod.java:147)
[msbuild] at
org.jruby.internal.runtime.methods.DefaultMethod.call(DefaultMethod.java:224)
[msbuild] at
org.jruby.runtime.CallSite$InlineCachingCallSite.call(CallSite.java:330)
[msbuild] at org.jruby.ast.VCallNode.interpret(VCallNode.java:82)
[msbuild] at org.jruby.ast.NewlineNode.interpret(NewlineNode.java:101)
[msbuild] at org.jruby.ast.BlockNode.interpret(BlockNode.java:67)
[msbuild] at org.jruby.ast.IfNode.interpret(IfNode.java:110)
[msbuild] at org.jruby.ast.NewlineNode.interpret(NewlineNode.java:101)
[msbuild] at org.jruby.ast.BlockNode.interpret(BlockNode.java:67)
[msbuild] at
org.jruby.internal.runtime.methods.DefaultMethod.interpretedCall(DefaultMethod.java:171)
[msbuild] at
org.jruby.internal.runtime.methods.DefaultMethod.call(DefaultMethod.java:147)
[msbuild] at
org.jruby.internal.runtime.methods.DefaultMethod.call(DefaultMethod.java:224)
[msbuild] at
org.jruby.runtime.CallSite$InlineCachingCallSite.call(CallSite.java:330)
[msbuild] at org.jruby.ast.VCallNode.interpret(VCallNode.java:82)
[msbuild] at org.jruby.ast.NewlineNode.interpret(NewlineNode.java:101)
[msbuild] at org.jruby.ast.BlockNode.interpret(BlockNode.java:67)
[msbuild] at
org.jruby.runtime.InterpretedBlock.evalBlockBody(InterpretedBlock.java:203)
[msbuild] at
org.jruby.runtime.InterpretedBlock.yield(InterpretedBlock.java:191)
[msbuild] at org.jruby.runtime.BlockBody.call(BlockBody.java:64)
[msbuild] at org.jruby.runtime.Block.call(Block.java:96)
[msbuild] at org.jruby.RubyProc.call(RubyProc.java:202)
[msbuild] at
org.jruby.internal.runtime.methods.ProcMethod.call(ProcMethod.java:64)
[msbuild] at
org.jruby.internal.runtime.methods.DynamicMethod.call(DynamicMethod.java:224)
[msbuild] at
org.jruby.internal.runtime.methods.DynamicMethod.call(DynamicMethod.java:201)
[msbuild] at
org.jruby.runtime.CallSite$InlineCachingCallSite.call(CallSite.java:330)
[msbuild] at org.jruby.ast.VCallNode.interpret(VCallNode.java:82)
[msbuild] at org.jruby.ast.NewlineNode.interpret(NewlineNode.java:101)
[msbuild] at org.jruby.ast.BlockNode.interpret(BlockNode.java:67)
[msbuild] at org.jruby.ast.RescueNode.executeBody(RescueNode.java:155)
[msbuild] at org.jruby.ast.RescueNode.interpret(RescueNode.java:108)
[msbuild] at org.jruby.ast.EnsureNode.interpret(EnsureNode.java:93)
[msbuild] at org.jruby.ast.BeginNode.interpret(BeginNode.java:80)
[msbuild] at org.jruby.ast.NewlineNode.interpret(NewlineNode.java:101)
[msbuild] at org.jruby.ast.BlockNode.interpret(BlockNode.java:67)
[msbuild] at
org.jruby.internal.runtime.methods.DefaultMethod.interpretedCall(DefaultMethod.java:171)
[msbuild] at
org.jruby.internal.runtime.methods.DefaultMethod.call(DefaultMethod.java:147)
[msbuild] at
org.jruby.internal.runtime.methods.DefaultMethod.call(DefaultMethod.java:287)
[msbuild] at
org.jruby.runtime.CallSite$InlineCachingCallSite.call(CallSite.java:393)
[msbuild] at
org.jruby.ast.CallOneArgBlockPassNode.interpret(CallOneArgBlockPassNode.java:60)
[msbuild] at org.jruby.ast.NewlineNode.interpret(NewlineNode.java:101)
[msbuild] at
org.jruby.runtime.InterpretedBlock.evalBlockBody(InterpretedBlock.java:203)
[msbuild] at
org.jruby.runtime.InterpretedBlock.yield(InterpretedBlock.java:154)
[msbuild] at org.jruby.runtime.Block.yield(Block.java:100)
[msbuild] at org.jruby.RubyArray.each(RubyArray.java:1338)
[msbuild] at org.jruby.RubyArrayInvoker$each_method_0_0.call(Unknown
Source)
[msbuild] at
org.jruby.runtime.CallSite$InlineCachingCallSite.call(CallSite.java:342)
[msbuild] at
org.jruby.ast.CallNoArgBlockNode.interpret(CallNoArgBlockNode.java:63)
[msbuild] at org.jruby.ast.NewlineNode.interpret(NewlineNode.java:101)
[msbuild] at org.jruby.ast.BlockNode.interpret(BlockNode.java:67)
[msbuild] at
org.jruby.internal.runtime.methods.DefaultMethod.interpretedCall(DefaultMethod.java:171)
[msbuild] at
org.jruby.internal.runtime.methods.DefaultMethod.call(DefaultMethod.java:147)
[msbuild] at
org.jruby.internal.runtime.methods.DefaultMethod.call(DefaultMethod.java:287)
[msbuild] at
org.jruby.runtime.CallSite$InlineCachingCallSite.cacheAndCall(CallSite.java:159)
[msbuild] at
org.jruby.runtime.CallSite$InlineCachingCallSite.call(CallSite.java:396)
[msbuild] at
org.jruby.ast.CallOneArgBlockPassNode.interpret(CallOneArgBlockPassNode.java:60)
[msbuild] at org.jruby.ast.NewlineNode.interpret(NewlineNode.java:101)
[msbuild] at
org.jruby.runtime.InterpretedBlock.evalBlockBody(InterpretedBlock.java:203)
[msbuild] at
org.jruby.runtime.InterpretedBlock.yield(InterpretedBlock.java:154)
[msbuild] at org.jruby.runtime.Block.yield(Block.java:100)
[msbuild] at org.jruby.RubyArray.each(RubyArray.java:1338)
[msbuild] at org.jruby.RubyArrayInvoker$each_method_0_0.call(Unknown
Source)
[msbuild] at
org.jruby.runtime.CallSite$InlineCachingCallSite.call(CallSite.java:342)
[msbuild] at
org.jruby.ast.CallNoArgBlockNode.interpret(CallNoArgBlockNode.java:63)
[msbuild] at org.jruby.ast.NewlineNode.interpret(NewlineNode.java:101)
[msbuild] at org.jruby.ast.BlockNode.interpret(BlockNode.java:67)
[msbuild] at
org.jruby.internal.runtime.methods.DefaultMethod.interpretedCall(DefaultMethod.java:171)
[msbuild] at
org.jruby.internal.runtime.methods.DefaultMethod.call(DefaultMethod.java:147)
[msbuild] at
org.jruby.internal.runtime.methods.DefaultMethod.call(DefaultMethod.java:287)
[msbuild] at
org.jruby.runtime.CallSite$InlineCachingCallSite.cacheAndCall(CallSite.java:159)
[msbuild] at
org.jruby.runtime.CallSite$InlineCachingCallSite.call(CallSite.java:396)
[msbuild] at
org.jruby.ast.CallOneArgBlockPassNode.interpret(CallOneArgBlockPassNode.java:60)
[msbuild] at org.jruby.ast.NewlineNode.interpret(NewlineNode.java:101)
[msbuild] at
org.jruby.runtime.InterpretedBlock.evalBlockBody(InterpretedBlock.java:203)
[msbuild] at
org.jruby.runtime.InterpretedBlock.yield(InterpretedBlock.java:154)
[msbuild] at org.jruby.runtime.Block.yield(Block.java:100)
[msbuild] at org.jruby.RubyArray.each(RubyArray.java:1338)
[msbuild] at org.jruby.RubyArrayInvoker$each_method_0_0.call(Unknown
Source)
[msbuild] at
org.jruby.runtime.CallSite$InlineCachingCallSite.cacheAndCall(CallSite.java:135)
[msbuild] at
org.jruby.runtime.CallSite$InlineCachingCallSite.call(CallSite.java:345)
[msbuild] at
org.jruby.ast.CallNoArgBlockNode.interpret(CallNoArgBlockNode.java:63)
[msbuild] at org.jruby.ast.NewlineNode.interpret(NewlineNode.java:101)
[msbuild] at org.jruby.ast.BlockNode.interpret(BlockNode.java:67)
[msbuild] at
org.jruby.internal.runtime.methods.DefaultMethod.interpretedCall(DefaultMethod.java:171)
[msbuild] at
org.jruby.internal.runtime.methods.DefaultMethod.call(DefaultMethod.java:147)
[msbuild] at
org.jruby.internal.runtime.methods.DefaultMethod.call(DefaultMethod.java:287)
[msbuild] at
org.jruby.runtime.CallSite$InlineCachingCallSite.cacheAndCall(CallSite.java:159)
[msbuild] at
org.jruby.runtime.CallSite$InlineCachingCallSite.call(CallSite.java:396)
[msbuild] at
org.jruby.ast.CallOneArgBlockNode.interpret(CallOneArgBlockNode.java:60)
[msbuild] at org.jruby.ast.NewlineNode.interpret(NewlineNode.java:101)
[msbuild] at org.jruby.ast.BlockNode.interpret(BlockNode.java:67)
[msbuild] at
org.jruby.internal.runtime.methods.DefaultMethod.interpretedCall(DefaultMethod.java:171)
[msbuild] at
org.jruby.internal.runtime.methods.DefaultMethod.call(DefaultMethod.java:147)
[msbuild] at
org.jruby.internal.runtime.methods.DefaultMethod.call(DefaultMethod.java:224)
[msbuild] at
org.jruby.runtime.CallSite$InlineCachingCallSite.cacheAndCall(CallSite.java:123)
[msbuild] at
org.jruby.runtime.CallSite$InlineCachingCallSite.call(CallSite.java:333)
[msbuild] at
org.jruby.ast.CallNoArgNode.interpret(CallNoArgNode.java:61)
[msbuild] at org.jruby.ast.ReturnNode.interpret(ReturnNode.java:85)
[msbuild] at org.jruby.ast.NewlineNode.interpret(NewlineNode.java:101)
[msbuild] at
org.jruby.internal.runtime.methods.DefaultMethod.interpretedCall(DefaultMethod.java:171)
[msbuild] at
org.jruby.internal.runtime.methods.DefaultMethod.call(DefaultMethod.java:147)
[msbuild] at
org.jruby.internal.runtime.methods.DefaultMethod.call(DefaultMethod.java:224)
[msbuild] at
org.jruby.runtime.CallSite$InlineCachingCallSite.cacheAndCall(CallSite.java:123)
[msbuild] at
org.jruby.runtime.CallSite$InlineCachingCallSite.call(CallSite.java:333)
[msbuild] at org.jruby.ast.VCallNode.interpret(VCallNode.java:82)
[msbuild] at org.jruby.ast.ReturnNode.interpret(ReturnNode.java:85)
[msbuild] at org.jruby.ast.NewlineNode.interpret(NewlineNode.java:101)
[msbuild] at org.jruby.ast.BlockNode.interpret(BlockNode.java:67)
[msbuild] at
org.jruby.internal.runtime.methods.DefaultMethod.interpretedCall(DefaultMethod.java:171)
[msbuild] at
org.jruby.internal.runtime.methods.DefaultMethod.call(DefaultMethod.java:147)
[msbuild] at org.jruby.RubyObject.send(RubyObject.java:2050)
[msbuild] at org.jruby.RubyObjectInvoker$send_method_0_0.call(Unknown
Source)
[msbuild] at
org.jruby.runtime.CallSite$InlineCachingCallSite.cacheAndCall(CallSite.java:99)
[msbuild] at
org.jruby.runtime.CallSite$InlineCachingCallSite.call(CallSite.java:294)
[msbuild] at org.jruby.ast.CallNode.interpret(CallNode.java:166)
[msbuild] at org.jruby.ast.NewlineNode.interpret(NewlineNode.java:101)
[msbuild] at org.jruby.ast.RescueNode.executeBody(RescueNode.java:155)
[msbuild] at org.jruby.ast.RescueNode.interpret(RescueNode.java:108)
[msbuild] at org.jruby.ast.BeginNode.interpret(BeginNode.java:80)
[msbuild] at org.jruby.ast.NewlineNode.interpret(NewlineNode.java:101)
[msbuild] at
org.jruby.internal.runtime.methods.DefaultMethod.interpretedCall(DefaultMethod.java:171)
[msbuild] at
org.jruby.internal.runtime.methods.DefaultMethod.call(DefaultMethod.java:147)
[msbuild] at
org.jruby.internal.runtime.methods.DefaultMethod.call(DefaultMethod.java:245)
[msbuild] at
org.jruby.runtime.CallSite$InlineCachingCallSite.cacheAndCall(CallSite.java:135)
[msbuild] at
org.jruby.runtime.CallSite$InlineCachingCallSite.call(CallSite.java:345)
[msbuild] at
org.jruby.ast.CallNoArgBlockNode.interpret(CallNoArgBlockNode.java:63)
[msbuild] at org.jruby.ast.NewlineNode.interpret(NewlineNode.java:101)
[msbuild] at org.jruby.ast.BlockNode.interpret(BlockNode.java:67)
[msbuild] at
org.jruby.internal.runtime.methods.DefaultMethod.interpretedCall(DefaultMethod.java:171)
[msbuild] at
org.jruby.internal.runtime.methods.DefaultMethod.call(DefaultMethod.java:147)
[msbuild] at
org.jruby.internal.runtime.methods.DefaultMethod.call(DefaultMethod.java:350)
[msbuild] at
org.jruby.runtime.CallSite$InlineCachingCallSite.cacheAndCall(CallSite.java:195)
[msbuild] at
org.jruby.runtime.CallSite$InlineCachingCallSite.call(CallSite.java:486)
[msbuild] at
org.jruby.ast.CallThreeArgNode.interpret(CallThreeArgNode.java:61)
[msbuild] at
org.jruby.ast.LocalAsgnNode.interpret(LocalAsgnNode.java:115)
[msbuild] at org.jruby.ast.NewlineNode.interpret(NewlineNode.java:101)
[msbuild] at org.jruby.ast.BlockNode.interpret(BlockNode.java:67)
[msbuild] at
org.jruby.internal.runtime.methods.DefaultMethod.interpretedCall(DefaultMethod.java:171)
[msbuild] at
org.jruby.internal.runtime.methods.DefaultMethod.call(DefaultMethod.java:147)
[msbuild] at
org.jruby.internal.runtime.methods.DefaultMethod.call(DefaultMethod.java:308)
[msbuild] at
org.jruby.runtime.CallSite$InlineCachingCallSite.cacheAndCall(CallSite.java:171)
[msbuild] at
org.jruby.runtime.CallSite$InlineCachingCallSite.call(CallSite.java:435)
[msbuild] at
org.jruby.ast.CallTwoArgNode.interpret(CallTwoArgNode.java:59)
[msbuild] at
org.jruby.ast.CallNoArgNode.interpret(CallNoArgNode.java:61)
[msbuild] at org.jruby.ast.NewlineNode.interpret(NewlineNode.java:101)
[msbuild] at org.jruby.ast.BlockNode.interpret(BlockNode.java:67)
[msbuild] at
org.jruby.internal.runtime.methods.DefaultMethod.interpretedCall(DefaultMethod.java:171)
[msbuild] at
org.jruby.internal.runtime.methods.DefaultMethod.call(DefaultMethod.java:147)
[msbuild] at
org.jruby.internal.runtime.methods.DefaultMethod.call(DefaultMethod.java:224)
[msbuild] at
org.jruby.runtime.CallSite$InlineCachingCallSite.cacheAndCall(CallSite.java:123)
[msbuild] at
org.jruby.runtime.CallSite$InlineCachingCallSite.call(CallSite.java:333)
[msbuild] at
org.jruby.ast.CallNoArgNode.interpret(CallNoArgNode.java:61)
[msbuild] at org.jruby.ast.NewlineNode.interpret(NewlineNode.java:101)
[msbuild] at org.jruby.ast.BlockNode.interpret(BlockNode.java:67)
[msbuild] at
org.jruby.internal.runtime.methods.DefaultMethod.interpretedCall(DefaultMethod.java:171)
[msbuild] at
org.jruby.internal.runtime.methods.DefaultMethod.call(DefaultMethod.java:147)
[msbuild] at
org.jruby.internal.runtime.methods.DefaultMethod.call(DefaultMethod.java:224)
[msbuild] at
org.jruby.runtime.CallSite$InlineCachingCallSite.cacheAndCall(CallSite.java:123)
[msbuild] at
org.jruby.runtime.CallSite$InlineCachingCallSite.call(CallSite.java:333)
[msbuild] at
org.jruby.ast.CallNoArgNode.interpret(CallNoArgNode.java:61)
[msbuild] at
org.jruby.ast.FCallOneArgNode.interpret(FCallOneArgNode.java:36)
[msbuild] at org.jruby.ast.NewlineNode.interpret(NewlineNode.java:101)
[msbuild] at org.jruby.ast.IfNode.interpret(IfNode.java:110)
[msbuild] at org.jruby.ast.NewlineNode.interpret(NewlineNode.java:101)
[msbuild] at
org.jruby.runtime.InterpretedBlock.evalBlockBody(InterpretedBlock.java:203)
[msbuild] at
org.jruby.runtime.InterpretedBlock.yield(InterpretedBlock.java:191)
[msbuild] at org.jruby.runtime.BlockBody.call(BlockBody.java:64)
[msbuild] at org.jruby.runtime.Block.call(Block.java:96)
[msbuild] at org.jruby.RubyProc.call(RubyProc.java:202)
[msbuild] at org.jruby.RubyProc.call(RubyProc.java:189)
[msbuild] at org.jruby.Ruby.tearDown(Ruby.java:2240)
[msbuild] at org.jruby.Main.run(Main.java:196)
[msbuild] at org.jruby.Main.run(Main.java:91)
[msbuild] at org.jruby.Main.main(Main.java:82)

Is it possible to handle this exception?

Thanks,
Nathan Roe