Skip to content

Instantly share code, notes, and snippets.

@takeru
Created March 16, 2010 10:36
Show Gist options
  • Select an option

  • Save takeru/333831 to your computer and use it in GitHub Desktop.

Select an option

Save takeru/333831 to your computer and use it in GitHub Desktop.
I found this error near "stack level too deep"(=StackOverflowError) error.
This app is build with JRuby+Rails, almost 99.99% is works fine.
This error and "stack level too deep" are very rare case.
public RubyModule popRubyClass() {
int index = parentIndex;
RubyModule[] stack = parentStack;
RubyModule ret = stack[index];
stack[index] = null;
parentIndex = index - 1;
return ret;
}
This is popRubyClass source code. I don't know why index was -1.
But it is not normal. Maybe something very rare case, rare error...
03-16 12:07AM 24.093
javax.servlet.ServletContext log: Application Error
java.lang.ArrayIndexOutOfBoundsException: -1
at org.jruby.runtime.ThreadContext.popRubyClass(ThreadContext.java:535)
at org.jruby.runtime.ThreadContext.postMethodFrameAndScope(ThreadContext.java:1148)
at org.jruby.internal.runtime.methods.InterpretedMethod.post(InterpretedMethod.java:545)
at org.jruby.internal.runtime.methods.InterpretedMethod.call(InterpretedMethod.java:179)
at org.jruby.internal.runtime.methods.DefaultMethod.call(DefaultMethod.java:171)
at org.jruby.RubyClass.finvoke(RubyClass.java:567)
at org.jruby.javasupport.util.RuntimeHelpers.invoke(RuntimeHelpers.java:415)
at org.jruby.RubyBasicObject.callMethod(RubyBasicObject.java:318)
at org.jruby.javasupport.JavaEmbedUtils$1.callMethod(JavaEmbedUtils.java:143)
at org.jruby.rack.DefaultRackApplication.__call(DefaultRackApplication.java:68)
at org.jruby.rack.DefaultRackApplication.call(DefaultRackApplication.java:42)
at org.jruby.rack.servlet.DefaultServletDispatcher.process(DefaultServletDispatcher.java:37)
at org.jruby.rack.RackFilter.doFilter(RackFilter.java:56)
at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084)
at com.google.apphosting.utils.servlet.ParseBlobUploadFilter.doFilter(ParseBlobUploadFilter.java:97)
at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084)
at com.google.apphosting.runtime.jetty.SaveSessionFilter.doFilter(SaveSessionFilter.java:35)
at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084)
at com.google.apphosting.utils.servlet.TransactionCleanupFilter.doFilter(TransactionCleanupFilter.java:43)
at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084)
at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:360)
at org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216)
at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:181)
at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:712)
at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:405)
at com.google.apphosting.runtime.jetty.AppVersionHandlerMap.handle(AppVersionHandlerMap.java:238)
at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:139)
at org.mortbay.jetty.Server.handle(Server.java:313)
at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:506)
at org.mortbay.jetty.HttpConnection$RequestHandler.headerComplete(HttpConnection.java:830)
at com.google.apphosting.runtime.jetty.RpcRequestParser.parseAvailable(RpcRequestParser.java:76)
at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:381)
at com.google.apphosting.runtime.jetty.JettyServletEngineAdapter.serviceRequest(JettyServletEngineAdapter.java:135)
at com.google.apphosting.runtime.JavaRuntime.handleRequest(JavaRuntime.java:235)
at com.google.apphosting.base.RuntimePb$EvaluationRuntime$6.handleBlockingRequest(RuntimePb.java:5485)
at com.google.apphosting.base.RuntimePb$EvaluationRuntime$6.handleBlockingRequest(RuntimePb.java:5483)
at com.google.net.rpc.impl.BlockingApplicationHandler.handleRequest(BlockingApplicationHandler.java:24)
at com.google.net.rpc.impl.RpcUtil.runRpcInApplication(RpcUtil.java:363)
at com.google.net.rpc.impl.Server$2.run(Server.java:837)
at com.google.tracing.LocalTraceSpanRunnable.run(LocalTraceSpanRunnable.java:56)
at com.google.tracing.LocalTraceSpanBuilder.internalContinueSpan(LocalTraceSpanBuilder.java:536)
at com.google.net.rpc.impl.Server.startRpc(Server.java:792)
at com.google.net.rpc.impl.Server.processRequest(Server.java:367)
at com.google.net.rpc.impl.ServerConnection.messageReceived(ServerConnection.java:448)
at com.google.net.rpc.impl.RpcConnection.parseMessages(RpcConnection.java:319)
at com.google.net.rpc.impl.RpcConnection.dataReceived(RpcConnection.java:290)
at com.google.net.async.Connection.handleReadEvent(Connection.java:474)
at com.google.net.async.EventDispatcher.processNetworkEvents(EventDispatcher.java:774)
at com.google.net.async.EventDispatcher.internalLoop(EventDispatcher.java:205)
at com.google.net.async.EventDispatcher.loop(EventDispatcher.java:101)
at com.google.net.rpc.RpcService.runUntilServerShutdown(RpcService.java:251)
at com.google.apphosting.runtime.JavaRuntime$RpcRunnable.run(JavaRuntime.java:394)
at java.lang.Thread.run(Unknown Source)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment