jruby / jruby-rack

Rack for JRuby and Java appservers
MIT License
397 stars 137 forks source link

Exception handling not possible #152

Closed CSchulz closed 11 years ago

CSchulz commented 11 years ago

Hello,

I have made the experience the last days that there is something wrong with the exception handling. It seems that is something going wrong internally. I hope I am right here, I don't where to ask.

I am fetching the class with JRuby and use rescue to catch the exception. I can't use any of my methods, only backtrace from the NativeException is possible.

That is the point I don't understand, I fetch the class descriptor give it to the rescue and expect the object of the exception caught.

In some cases it works, but it wasn't possible yet to find out, what the difference is.

The log says following (jruby-complete-1.6-8 and jruby-rack-1.1.10):

2013.03.25 02:18:21 ERROR o.s.s.ui.JRubyFacade  Fail to render: http://localhost:9000/sonar/redmine_configuration/test
undefined method `getMessage' for #<NativeException:0x1dd81516>
    D:/Daten/Eclipse/Sonar/sonar-redmine-plugin/src/main/resources/org/sonar/ror/redmine/app/controllers/redmine_configuration_controller.rb:61:in `test'
    org/jruby/RubyKernel.java:2105:in `send'
    D:/sonar-3.6-SNAPSHOT/war/sonar-server/WEB-INF/gems/gems/actionpack-2.3.15/lib/action_controller/base.rb:1333:in `perform_action'
    D:/sonar-3.6-SNAPSHOT/war/sonar-server/WEB-INF/gems/gems/actionpack-2.3.15/lib/action_controller/filters.rb:617:in `call_filters'
    D:/sonar-3.6-SNAPSHOT/war/sonar-server/WEB-INF/gems/gems/actionpack-2.3.15/lib/action_controller/filters.rb:610:in `perform_action_with_filters'
    D:/sonar-3.6-SNAPSHOT/war/sonar-server/WEB-INF/gems/gems/actionpack-2.3.15/lib/action_controller/benchmarking.rb:68:in `perform_action_with_benchmark'
    D:/sonar-3.6-SNAPSHOT/war/sonar-server/WEB-INF/gems/gems/activesupport-2.3.15/lib/active_support/core_ext/benchmark.rb:17:in `ms'
    file:/D:/sonar-3.6-SNAPSHOT/war/sonar-server/WEB-INF/lib/jruby-complete-1.6.8.jar!/META-INF/jruby.home/lib/ruby/1.8/benchmark.rb:308:in `realtime'
    D:/sonar-3.6-SNAPSHOT/war/sonar-server/WEB-INF/gems/gems/activesupport-2.3.15/lib/active_support/core_ext/benchmark.rb:17:in `ms'
    D:/sonar-3.6-SNAPSHOT/war/sonar-server/WEB-INF/gems/gems/actionpack-2.3.15/lib/action_controller/benchmarking.rb:68:in `perform_action_with_benchmark'
    D:/sonar-3.6-SNAPSHOT/war/sonar-server/WEB-INF/gems/gems/actionpack-2.3.15/lib/action_controller/rescue.rb:160:in `perform_action_with_rescue'
    D:/sonar-3.6-SNAPSHOT/war/sonar-server/WEB-INF/gems/gems/actionpack-2.3.15/lib/action_controller/flash.rb:151:in `perform_action_with_flash'
    org/jruby/RubyKernel.java:2105:in `send'
    D:/sonar-3.6-SNAPSHOT/war/sonar-server/WEB-INF/gems/gems/actionpack-2.3.15/lib/action_controller/base.rb:532:in `process'
    D:/sonar-3.6-SNAPSHOT/war/sonar-server/WEB-INF/gems/gems/actionpack-2.3.15/lib/action_controller/filters.rb:606:in `process_with_filters'
    D:/sonar-3.6-SNAPSHOT/war/sonar-server/WEB-INF/gems/gems/actionpack-2.3.15/lib/action_controller/base.rb:391:in `process'
    D:/sonar-3.6-SNAPSHOT/war/sonar-server/WEB-INF/gems/gems/actionpack-2.3.15/lib/action_controller/base.rb:386:in `call'
    D:/sonar-3.6-SNAPSHOT/war/sonar-server/WEB-INF/gems/gems/actionpack-2.3.15/lib/action_controller/routing/route_set.rb:438:in `call'
    D:/sonar-3.6-SNAPSHOT/war/sonar-server/WEB-INF/gems/gems/actionpack-2.3.15/lib/action_controller/dispatcher.rb:87:in `dispatch'
    D:/sonar-3.6-SNAPSHOT/war/sonar-server/WEB-INF/gems/gems/actionpack-2.3.15/lib/action_controller/dispatcher.rb:121:in `_call'
    D:/sonar-3.6-SNAPSHOT/war/sonar-server/WEB-INF/gems/gems/actionpack-2.3.15/lib/action_controller/dispatcher.rb:130:in `build_middleware_stack'
    org/jruby/RubyProc.java:270:in `call'
    org/jruby/RubyProc.java:220:in `call'
    D:/sonar-3.6-SNAPSHOT/war/sonar-server/WEB-INF/gems/gems/activerecord-2.3.15/lib/active_record/query_cache.rb:29:in `call'
    D:/sonar-3.6-SNAPSHOT/war/sonar-server/WEB-INF/gems/gems/activerecord-2.3.15/lib/active_record/connection_adapters/abstract/query_cache.rb:34:in `cache'
    D:/sonar-3.6-SNAPSHOT/war/sonar-server/WEB-INF/gems/gems/activerecord-2.3.15/lib/active_record/query_cache.rb:9:in `cache'
    D:/sonar-3.6-SNAPSHOT/war/sonar-server/WEB-INF/gems/gems/activerecord-2.3.15/lib/active_record/query_cache.rb:28:in `call'
    D:/sonar-3.6-SNAPSHOT/war/sonar-server/WEB-INF/gems/gems/activerecord-2.3.15/lib/active_record/connection_adapters/abstract/connection_pool.rb:361:in `call'
    D:/sonar-3.6-SNAPSHOT/war/sonar-server/WEB-INF/gems/gems/actionpack-2.3.15/lib/action_controller/string_coercion.rb:25:in `call'
    D:/sonar-3.6-SNAPSHOT/war/sonar-server/WEB-INF/gems/gems/rack-1.1.3/lib/rack/head.rb:9:in `call'
    D:/sonar-3.6-SNAPSHOT/war/sonar-server/WEB-INF/gems/gems/rack-1.1.3/lib/rack/methodoverride.rb:24:in `call'
    D:/sonar-3.6-SNAPSHOT/war/sonar-server/WEB-INF/gems/gems/actionpack-2.3.15/lib/action_controller/params_parser.rb:15:in `call'
    file:/D:/sonar-3.6-SNAPSHOT/war/sonar-server/WEB-INF/lib/jruby-rack-1.1.10.jar!/jruby/rack/session_store.rb:70:in `context'
    D:/sonar-3.6-SNAPSHOT/war/sonar-server/WEB-INF/gems/gems/rack-1.1.3/lib/rack/session/abstract/id.rb:58:in `call'
    D:/sonar-3.6-SNAPSHOT/war/sonar-server/WEB-INF/gems/gems/actionpack-2.3.15/lib/action_controller/failsafe.rb:26:in `call'
    D:/sonar-3.6-SNAPSHOT/war/sonar-server/WEB-INF/gems/gems/rack-1.1.3/lib/rack/lock.rb:11:in `call'
    D:/sonar-3.6-SNAPSHOT/war/sonar-server/WEB-INF/gems/gems/rack-1.1.3/lib/rack/lock.rb:11:in `call'
    D:/sonar-3.6-SNAPSHOT/war/sonar-server/WEB-INF/gems/gems/actionpack-2.3.15/lib/action_controller/dispatcher.rb:114:in `call'
    D:/sonar-3.6-SNAPSHOT/war/sonar-server/WEB-INF/gems/gems/actionpack-2.3.15/lib/action_controller/reloader.rb:34:in `run'
    D:/sonar-3.6-SNAPSHOT/war/sonar-server/WEB-INF/gems/gems/actionpack-2.3.15/lib/action_controller/dispatcher.rb:108:in `call'
    file:/D:/sonar-3.6-SNAPSHOT/war/sonar-server/WEB-INF/lib/jruby-rack-1.1.10.jar!/rack/adapter/rails.rb:34:in `serve_rails'
    file:/D:/sonar-3.6-SNAPSHOT/war/sonar-server/WEB-INF/lib/jruby-rack-1.1.10.jar!/rack/adapter/rails.rb:39:in `call'
    file:/D:/sonar-3.6-SNAPSHOT/war/sonar-server/WEB-INF/lib/jruby-rack-1.1.10.jar!/rack/handler/servlet.rb:22:in `call'

With jruby-complete-1.7.3 and jruby-rack-1.1.13.1 I got following message:

2013.03.25 01:35:18 ERROR jruby.rack  couldn't handle error: response committed
org.jruby.exceptions.RaiseException: (NativeException) java.io.IOException: Closed
    at org.mortbay.jetty.AbstractGenerator$Output.write(AbstractGenerator.java:631) ~[jetty-6.1.25.jar:6.1.25]
    at org.mortbay.jetty.AbstractGenerator$Output.write(AbstractGenerator.java:590) ~[jetty-6.1.25.jar:6.1.25]
    at org.mortbay.servlet.GzipFilter$GzipStream.write(GzipFilter.java:504) ~[jetty-util-6.1.25.jar:6.1.25]
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:1.7.0_05]
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) ~[na:1.7.0_05]
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[na:1.7.0_05]
    at java.lang.reflect.Method.invoke(Unknown Source) ~[na:1.7.0_05]
    at org.jruby.javasupport.JavaMethod.invokeDirectWithExceptionHandling(JavaMethod.java:455) ~[jruby-complete-1.7.3.jar:na]
    at org.jruby.javasupport.JavaMethod.invokeDirect(JavaMethod.java:316) ~[jruby-complete-1.7.3.jar:na]
    at org.jruby.java.invokers.InstanceMethodInvoker.call(InstanceMethodInvoker.java:61) ~[jruby-complete-1.7.3.jar:na]
    at org.jruby.runtime.callsite.CachingCallSite.cacheAndCall(CachingCallSite.java:326) ~[jruby-complete-1.7.3.jar:na]
    at org.jruby.runtime.callsite.CachingCallSite.call(CachingCallSite.java:170) ~[jruby-complete-1.7.3.jar:na]
    at org.jruby.ast.CallOneArgNode.interpret(CallOneArgNode.java:57) ~[jruby-complete-1.7.3.jar:na]
    at org.jruby.ast.NewlineNode.interpret(NewlineNode.java:105) ~[jruby-complete-1.7.3.jar:na]
    at org.jruby.ast.BlockNode.interpret(BlockNode.java:71) ~[jruby-complete-1.7.3.jar:na]
    at org.jruby.evaluator.ASTInterpreter.INTERPRET_BLOCK(ASTInterpreter.java:112) ~[jruby-complete-1.7.3.jar:na]
    at org.jruby.runtime.InterpretedBlock.evalBlockBody(InterpretedBlock.java:384) ~[jruby-complete-1.7.3.jar:na]
    at org.jruby.runtime.InterpretedBlock.yield(InterpretedBlock.java:357) ~[jruby-complete-1.7.3.jar:na]
    at org.jruby.runtime.InterpretedBlock.yield(InterpretedBlock.java:312) ~[jruby-complete-1.7.3.jar:na]
    at org.jruby.runtime.Block.yield(Block.java:130) ~[jruby-complete-1.7.3.jar:na]
    at org.jruby.ast.YieldNode.interpret(YieldNode.java:121) ~[jruby-complete-1.7.3.jar:na]
    at org.jruby.ast.NewlineNode.interpret(NewlineNode.java:105) ~[jruby-complete-1.7.3.jar:na]
    at org.jruby.evaluator.ASTInterpreter.INTERPRET_BLOCK(ASTInterpreter.java:112) ~[jruby-complete-1.7.3.jar:na]
    at org.jruby.runtime.InterpretedBlock.evalBlockBody(InterpretedBlock.java:384) ~[jruby-complete-1.7.3.jar:na]
    at org.jruby.runtime.InterpretedBlock.yield(InterpretedBlock.java:357) ~[jruby-complete-1.7.3.jar:na]
    at org.jruby.runtime.InterpretedBlock.yield(InterpretedBlock.java:312) ~[jruby-complete-1.7.3.jar:na]
    at org.jruby.runtime.Block.yield(Block.java:130) ~[jruby-complete-1.7.3.jar:na]
    at org.jruby.ast.YieldNode.interpret(YieldNode.java:121) ~[jruby-complete-1.7.3.jar:na]
    at org.jruby.ast.NewlineNode.interpret(NewlineNode.java:105) ~[jruby-complete-1.7.3.jar:na]
    at org.jruby.ast.IfNode.interpret(IfNode.java:116) ~[jruby-complete-1.7.3.jar:na]
    at org.jruby.ast.IfNode.interpret(IfNode.java:118) ~[jruby-complete-1.7.3.jar:na]
    at org.jruby.ast.NewlineNode.interpret(NewlineNode.java:105) ~[jruby-complete-1.7.3.jar:na]
    at org.jruby.ast.BlockNode.interpret(BlockNode.java:71) ~[jruby-complete-1.7.3.jar:na]
    at org.jruby.evaluator.ASTInterpreter.INTERPRET_METHOD(ASTInterpreter.java:75) ~[jruby-complete-1.7.3.jar:na]
    at org.jruby.internal.runtime.methods.InterpretedMethod.call(InterpretedMethod.java:161) ~[jruby-complete-1.7.3.jar:na]
    at org.jruby.internal.runtime.methods.DefaultMethod.call(DefaultMethod.java:180) ~[jruby-complete-1.7.3.jar:na]
    at org.jruby.runtime.callsite.CachingCallSite.cacheAndCall(CachingCallSite.java:316) ~[jruby-complete-1.7.3.jar:na]
    at org.jruby.runtime.callsite.CachingCallSite.callBlock(CachingCallSite.java:145) ~[jruby-complete-1.7.3.jar:na]
    at org.jruby.runtime.callsite.CachingCallSite.callIter(CachingCallSite.java:154) ~[jruby-complete-1.7.3.jar:na]
    at org.jruby.ast.CallNoArgBlockNode.interpret(CallNoArgBlockNode.java:64) ~[jruby-complete-1.7.3.jar:na]
    at org.jruby.ast.NewlineNode.interpret(NewlineNode.java:105) ~[jruby-complete-1.7.3.jar:na]
    at org.jruby.evaluator.ASTInterpreter.INTERPRET_METHOD(ASTInterpreter.java:75) ~[jruby-complete-1.7.3.jar:na]
    at org.jruby.internal.runtime.methods.InterpretedMethod.call(InterpretedMethod.java:161) ~[jruby-complete-1.7.3.jar:na]
    at org.jruby.internal.runtime.methods.DefaultMethod.call(DefaultMethod.java:180) ~[jruby-complete-1.7.3.jar:na]
    at org.jruby.RubyClass.finvoke(RubyClass.java:578) ~[jruby-complete-1.7.3.jar:na]
    at org.jruby.RubyBasicObject.send(RubyBasicObject.java:2763) ~[jruby-complete-1.7.3.jar:na]
    at org.jruby.RubyKernel.send(RubyKernel.java:2086) ~[jruby-complete-1.7.3.jar:na]
    at org.jruby.RubyKernel$INVOKER$s$send.call(RubyKernel$INVOKER$s$send.gen) ~[jruby-complete-1.7.3.jar:na]
    at org.jruby.runtime.callsite.CachingCallSite.callBlock(CachingCallSite.java:177) ~[jruby-complete-1.7.3.jar:na]
    at org.jruby.runtime.callsite.CachingCallSite.call(CachingCallSite.java:183) ~[jruby-complete-1.7.3.jar:na]
    at org.jruby.ast.CallSpecialArgBlockPassNode.interpret(CallSpecialArgBlockPassNode.java:64) ~[jruby-complete-1.7.3.jar:na]
    at org.jruby.ast.NewlineNode.interpret(NewlineNode.java:105) ~[jruby-complete-1.7.3.jar:na]
    at org.jruby.evaluator.ASTInterpreter.INTERPRET_METHOD(ASTInterpreter.java:75) ~[jruby-complete-1.7.3.jar:na]
    at org.jruby.internal.runtime.methods.InterpretedMethod.call(InterpretedMethod.java:112) ~[jruby-complete-1.7.3.jar:na]
    at org.jruby.internal.runtime.methods.DefaultMethod.call(DefaultMethod.java:154) ~[jruby-complete-1.7.3.jar:na]
    at org.jruby.javasupport.util.RuntimeHelpers$MethodMissingMethod.call(RuntimeHelpers.java:445) ~[jruby-complete-1.7.3.jar:na]
    at org.jruby.internal.runtime.methods.DynamicMethod.call(DynamicMethod.java:201) ~[jruby-complete-1.7.3.jar:na]
    at org.jruby.javasupport.util.RuntimeHelpers.callMethodMissing(RuntimeHelpers.java:388) ~[jruby-complete-1.7.3.jar:na]
    at org.jruby.RubyClass.finvoke(RubyClass.java:576) ~[jruby-complete-1.7.3.jar:na]
    at org.jruby.RubyBasicObject.send(RubyBasicObject.java:2763) ~[jruby-complete-1.7.3.jar:na]
    at org.jruby.RubyKernel.send(RubyKernel.java:2086) ~[jruby-complete-1.7.3.jar:na]
    at org.jruby.RubyKernel$INVOKER$s$send.call(RubyKernel$INVOKER$s$send.gen) ~[jruby-complete-1.7.3.jar:na]
    at org.jruby.runtime.callsite.CachingCallSite.callBlock(CachingCallSite.java:177) ~[jruby-complete-1.7.3.jar:na]
    at org.jruby.runtime.callsite.CachingCallSite.callIter(CachingCallSite.java:188) ~[jruby-complete-1.7.3.jar:na]
    at org.jruby.ast.CallOneArgBlockNode.interpret(CallOneArgBlockNode.java:60) ~[jruby-complete-1.7.3.jar:na]
    at org.jruby.ast.NewlineNode.interpret(NewlineNode.java:105) ~[jruby-complete-1.7.3.jar:na]
    at org.jruby.ast.IfNode.interpret(IfNode.java:118) ~[jruby-complete-1.7.3.jar:na]
    at org.jruby.ast.NewlineNode.interpret(NewlineNode.java:105) ~[jruby-complete-1.7.3.jar:na]
    at org.jruby.ast.BlockNode.interpret(BlockNode.java:71) ~[jruby-complete-1.7.3.jar:na]
    at org.jruby.ast.IfNode.interpret(IfNode.java:118) ~[jruby-complete-1.7.3.jar:na]
    at org.jruby.ast.IfNode.interpret(IfNode.java:118) ~[jruby-complete-1.7.3.jar:na]
    at org.jruby.ast.IfNode.interpret(IfNode.java:118) ~[jruby-complete-1.7.3.jar:na]
    at org.jruby.ast.IfNode.interpret(IfNode.java:118) ~[jruby-complete-1.7.3.jar:na]
    at org.jruby.ast.NewlineNode.interpret(NewlineNode.java:105) ~[jruby-complete-1.7.3.jar:na]
    at org.jruby.ast.RescueNode.executeBody(RescueNode.java:224) ~[jruby-complete-1.7.3.jar:na]
    at org.jruby.ast.RescueNode.interpret(RescueNode.java:119) ~[jruby-complete-1.7.3.jar:na]
    at org.jruby.ast.EnsureNode.interpret(EnsureNode.java:96) ~[jruby-complete-1.7.3.jar:na]
    at org.jruby.ast.BeginNode.interpret(BeginNode.java:83) ~[jruby-complete-1.7.3.jar:na]
    at org.jruby.ast.NewlineNode.interpret(NewlineNode.java:105) ~[jruby-complete-1.7.3.jar:na]
    at org.jruby.ast.BlockNode.interpret(BlockNode.java:71) ~[jruby-complete-1.7.3.jar:na]
    at org.jruby.evaluator.ASTInterpreter.INTERPRET_METHOD(ASTInterpreter.java:75) ~[jruby-complete-1.7.3.jar:na]
    at org.jruby.internal.runtime.methods.InterpretedMethod.call(InterpretedMethod.java:182) ~[jruby-complete-1.7.3.jar:na]
    at org.jruby.internal.runtime.methods.DefaultMethod.call(DefaultMethod.java:188) ~[jruby-complete-1.7.3.jar:na]
    at org.jruby.runtime.callsite.CachingCallSite.call(CachingCallSite.java:168) ~[jruby-complete-1.7.3.jar:na]
    at org.jruby.ast.FCallOneArgNode.interpret(FCallOneArgNode.java:36) ~[jruby-complete-1.7.3.jar:na]
    at org.jruby.ast.NewlineNode.interpret(NewlineNode.java:105) ~[jruby-complete-1.7.3.jar:na]
    at org.jruby.ast.BlockNode.interpret(BlockNode.java:71) ~[jruby-complete-1.7.3.jar:na]
    at org.jruby.ast.IfNode.interpret(IfNode.java:118) ~[jruby-complete-1.7.3.jar:na]
    at org.jruby.ast.NewlineNode.interpret(NewlineNode.java:105) ~[jruby-complete-1.7.3.jar:na]
    at org.jruby.evaluator.ASTInterpreter.INTERPRET_METHOD(ASTInterpreter.java:75) ~[jruby-complete-1.7.3.jar:na]
    at org.jruby.internal.runtime.methods.InterpretedMethod.call(InterpretedMethod.java:112) ~[jruby-complete-1.7.3.jar:na]
    at org.jruby.internal.runtime.methods.DefaultMethod.call(DefaultMethod.java:154) ~[jruby-complete-1.7.3.jar:na]
    at JRuby$$Rack$$Response_101589962.respond(JRuby$$Rack$$Response_101589962.gen:13) ~[na:na]
    at org.jruby.rack.AbstractRackDispatcher.process(AbstractRackDispatcher.java:33) ~[jruby-rack-1.1.10.jar:na]
    at org.jruby.rack.AbstractFilter.doFilter(AbstractFilter.java:66) [jruby-rack-1.1.10.jar:na]
    at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157) [jetty-6.1.25.jar:6.1.25]
    at org.sonar.server.platform.MasterServletFilter.doFilter(MasterServletFilter.java:83) [classes/:na]
    at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157) [jetty-6.1.25.jar:6.1.25]
    at org.sonar.server.ui.DatabaseSessionFilter.doFilter(DatabaseSessionFilter.java:34) [classes/:na]
    at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157) [jetty-6.1.25.jar:6.1.25]
    at org.mortbay.servlet.UserAgentFilter.doFilter(UserAgentFilter.java:78) [jetty-util-6.1.25.jar:6.1.25]
    at org.mortbay.servlet.GzipFilter.doFilter(GzipFilter.java:131) [jetty-util-6.1.25.jar:6.1.25]
    at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157) [jetty-6.1.25.jar:6.1.25]
    at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:388) [jetty-6.1.25.jar:6.1.25]
    at org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216) [jetty-6.1.25.jar:6.1.25]
    at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:182) [jetty-6.1.25.jar:6.1.25]
    at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:765) [jetty-6.1.25.jar:6.1.25]
    at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:440) [jetty-6.1.25.jar:6.1.25]
    at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152) [jetty-6.1.25.jar:6.1.25]
    at org.mortbay.jetty.Server.handle(Server.java:326) [jetty-6.1.25.jar:6.1.25]
    at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:542) [jetty-6.1.25.jar:6.1.25]
    at org.mortbay.jetty.HttpConnection$RequestHandler.content(HttpConnection.java:943) [jetty-6.1.25.jar:6.1.25]
    at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:756) [jetty-6.1.25.jar:6.1.25]
    at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:218) [jetty-6.1.25.jar:6.1.25]
    at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:404) [jetty-6.1.25.jar:6.1.25]
    at org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:410) [jetty-6.1.25.jar:6.1.25]
    at org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:582) [jetty-util-6.1.25.jar:6.1.25]
kares commented 11 years ago

I think this is an issue with JRuby 1.6.8 - you do need to "unwrap" rescue-d Java exceptions ... (try using getCause). This is "fixed" in 1.7 ... also next time you report please make sure you're using the latest JRuby-Rack. There are several ways you can ask about issues you're unsure ... check http://jruby.org/community

CSchulz commented 11 years ago

getCause isn't available, too. But I found out that you can use the exception object like a "normal" string. It shows only the message nothing more.