java.lang.IndexOutOfBoundsException

Spring JIRA | Stephane Broussin | 8 years ago
  1. 0

    The ResourceServlet uses the "in.available()" syntax which seems to fail when running IBM WebSphere 6's JRE. This happens both with compressed (gzipped) content or not. By replacing the code with a more traditionnal approach (using in.read() like "FileCopyUtils" does), it works fine ! My proposition of fix is: ----------------------------------- replace in 'doGet' method: while (in.available() > 0) { int len = in.read(buffer); out.write(buffer, 0, len); } ----------------------------------- by: int bytesRead = -1; while ((bytesRead = in.read(buffer)) != -1) { out.write(buffer, 0, bytesRead); } By the way, the exception is: [10/20/08 13:49:59:905 CEST] 0000002a SystemOut O 20/10/2008 13:49:59,905 DEBUG [WebContainer : 0] com.fortis.rsa.spring.webflow.js.ResourceServlet - Enabling GZIP compression for the current response. [10/20/08 13:49:59:905 CEST] 0000002a SystemErr R java.lang.IndexOutOfBoundsException at java.util.zip.DeflaterOutputStream.write(DeflaterOutputStream.java:128) at java.util.zip.GZIPOutputStream.write(GZIPOutputStream.java:93) at com.fortis.rsa.spring.webflow.js.ResourceServlet$GZIPResponseStream.write(ResourceServlet.java:352) at com.fortis.rsa.spring.webflow.js.ResourceServlet.doGet(ResourceServlet.java:127) at javax.servlet.http.HttpServlet.service(HttpServlet.java:751) at javax.servlet.http.HttpServlet.service(HttpServlet.java:856) at com.ibm.ws.webcontainer.servlet.ServletWrapper.service(ServletWrapper.java:1572) at com.ibm.ws.webcontainer.servlet.ServletWrapper.service(ServletWrapper.java:1521) at com.ibm.ws.webcontainer.filter.WebAppFilterChain.doFilter(WebAppFilterChain.java:113) at com.ibm.ws.webcontainer.filter.WebAppFilterChain._doFilter(WebAppFilterChain.java:82) at com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:759) at com.ibm.ws.webcontainer.webapp.WebApp.handleRequest(WebApp.java:3174) at com.ibm.ws.webcontainer.webapp.WebGroup.handleRequest(WebGroup.java:253) at com.ibm.ws.webcontainer.VirtualHost.handleRequest(VirtualHost.java:229) at com.ibm.ws.webcontainer.WebContainer.handleRequest(WebContainer.java:1970) at com.ibm.ws.webcontainer.channel.WCChannelLink.ready(WCChannelLink.java:114)

    Spring JIRA | 8 years ago | Stephane Broussin
    java.lang.IndexOutOfBoundsException
  2. 0

    The ResourceServlet uses the "in.available()" syntax which seems to fail when running IBM WebSphere 6's JRE. This happens both with compressed (gzipped) content or not. By replacing the code with a more traditionnal approach (using in.read() like "FileCopyUtils" does), it works fine ! My proposition of fix is: ----------------------------------- replace in 'doGet' method: while (in.available() > 0) { int len = in.read(buffer); out.write(buffer, 0, len); } ----------------------------------- by: int bytesRead = -1; while ((bytesRead = in.read(buffer)) != -1) { out.write(buffer, 0, bytesRead); } By the way, the exception is: [10/20/08 13:49:59:905 CEST] 0000002a SystemOut O 20/10/2008 13:49:59,905 DEBUG [WebContainer : 0] com.fortis.rsa.spring.webflow.js.ResourceServlet - Enabling GZIP compression for the current response. [10/20/08 13:49:59:905 CEST] 0000002a SystemErr R java.lang.IndexOutOfBoundsException at java.util.zip.DeflaterOutputStream.write(DeflaterOutputStream.java:128) at java.util.zip.GZIPOutputStream.write(GZIPOutputStream.java:93) at com.fortis.rsa.spring.webflow.js.ResourceServlet$GZIPResponseStream.write(ResourceServlet.java:352) at com.fortis.rsa.spring.webflow.js.ResourceServlet.doGet(ResourceServlet.java:127) at javax.servlet.http.HttpServlet.service(HttpServlet.java:751) at javax.servlet.http.HttpServlet.service(HttpServlet.java:856) at com.ibm.ws.webcontainer.servlet.ServletWrapper.service(ServletWrapper.java:1572) at com.ibm.ws.webcontainer.servlet.ServletWrapper.service(ServletWrapper.java:1521) at com.ibm.ws.webcontainer.filter.WebAppFilterChain.doFilter(WebAppFilterChain.java:113) at com.ibm.ws.webcontainer.filter.WebAppFilterChain._doFilter(WebAppFilterChain.java:82) at com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:759) at com.ibm.ws.webcontainer.webapp.WebApp.handleRequest(WebApp.java:3174) at com.ibm.ws.webcontainer.webapp.WebGroup.handleRequest(WebGroup.java:253) at com.ibm.ws.webcontainer.VirtualHost.handleRequest(VirtualHost.java:229) at com.ibm.ws.webcontainer.WebContainer.handleRequest(WebContainer.java:1970) at com.ibm.ws.webcontainer.channel.WCChannelLink.ready(WCChannelLink.java:114)

    Spring JIRA | 8 years ago | Stephane Broussin
    java.lang.IndexOutOfBoundsException
  3. Speed up your debug routine!

    Automated exception search integrated into your IDE

  4. 0

    GitHub comment 62#244409575

    GitHub | 3 months ago | theck13
    java.lang.IndexOutOfBoundsException
  5. 0

    Error message while viewing console log: A problem occurred while processing the request. Please check our bug tracker to see if a similar problem has already been reported. If it is already reported, please vote and put a comment on it to let us gauge the impact of the problem. If you think this is a new issue, please file a new issue. When you file an issue, make sure to add the entire stack trace, along with the version of Jenkins and relevant plugins. The users list might be also useful in understanding what has happened. Stack trace javax.servlet.ServletException: java.lang.IndexOutOfBoundsException at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:778) at org.kohsuke.stapler.Stapler.invoke(Stapler.java:858) at org.kohsuke.stapler.MetaClass$4.doDispatch(MetaClass.java:210) at org.kohsuke.stapler.NameBasedDispatcher.dispatch(NameBasedDispatcher.java:53) at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:728) at org.kohsuke.stapler.Stapler.invoke(Stapler.java:858) at org.kohsuke.stapler.MetaClass$12.dispatch(MetaClass.java:390) at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:728) at org.kohsuke.stapler.Stapler.invoke(Stapler.java:858) at org.kohsuke.stapler.MetaClass$6.doDispatch(MetaClass.java:248) at org.kohsuke.stapler.NameBasedDispatcher.dispatch(NameBasedDispatcher.java:53) at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:728) at org.kohsuke.stapler.Stapler.invoke(Stapler.java:858) at org.kohsuke.stapler.Stapler.invoke(Stapler.java:631) at org.kohsuke.stapler.Stapler.service(Stapler.java:225) at javax.servlet.http.HttpServlet.service(HttpServlet.java:848) at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:686) at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1494) at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:96) at jenkins.metrics.impl.MetricsFilter.doFilter(MetricsFilter.java:117) at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:99) at hudson.util.PluginServletFilter.doFilter(PluginServletFilter.java:88) at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1482) at hudson.security.csrf.CrumbFilter.doFilter(CrumbFilter.java:48) at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1482) at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:84) at hudson.security.UnwrapSecurityExceptionFilter.doFilter(UnwrapSecurityExceptionFilter.java:51) at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87) at jenkins.security.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:117) at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87) at org.acegisecurity.providers.anonymous.AnonymousProcessingFilter.doFilter(AnonymousProcessingFilter.java:125) at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87) at org.acegisecurity.ui.rememberme.RememberMeProcessingFilter.doFilter(RememberMeProcessingFilter.java:142) at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87) at org.acegisecurity.ui.AbstractProcessingFilter.doFilter(AbstractProcessingFilter.java:271) at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87) at jenkins.security.BasicHeaderProcessor.doFilter(BasicHeaderProcessor.java:86) at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87) at org.acegisecurity.context.HttpSessionContextIntegrationFilter.doFilter(HttpSessionContextIntegrationFilter.java:249) at hudson.security.HttpSessionContextIntegrationFilter2.doFilter(HttpSessionContextIntegrationFilter2.java:67) at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87) at hudson.security.ChainedServletFilter.doFilter(ChainedServletFilter.java:76) at hudson.security.HudsonFilter.doFilter(HudsonFilter.java:164) at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1482) at org.kohsuke.stapler.compression.CompressionFilter.doFilter(CompressionFilter.java:46) at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1482) at hudson.util.CharacterEncodingFilter.doFilter(CharacterEncodingFilter.java:81) at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1474) at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:499) at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:137) at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:533) at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:231) at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1086) at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:428) at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:193) at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1020) at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:135) at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:116) at org.eclipse.jetty.server.Server.handle(Server.java:370) at org.eclipse.jetty.server.AbstractHttpConnection.handleRequest(AbstractHttpConnection.java:489) at org.eclipse.jetty.server.AbstractHttpConnection.content(AbstractHttpConnection.java:960) at org.eclipse.jetty.server.AbstractHttpConnection$RequestHandler.content(AbstractHttpConnection.java:1021) at org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:865) at org.eclipse.jetty.http.HttpParser.parseAvailable(HttpParser.java:240) at org.eclipse.jetty.server.AsyncHttpConnection.handle(AsyncHttpConnection.java:82) at org.eclipse.jetty.io.nio.SelectChannelEndPoint.handle(SelectChannelEndPoint.java:668) at org.eclipse.jetty.io.nio.SelectChannelEndPoint$1.run(SelectChannelEndPoint.java:52) at winstone.BoundedExecutorService$1.run(BoundedExecutorService.java:77) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) at java.lang.Thread.run(Thread.java:744) Caused by: java.lang.IndexOutOfBoundsException at hudson.MarkupText.rangeCheck(MarkupText.java:276) at hudson.MarkupText.addMarkup(MarkupText.java:258) at hudson.tasks._maven.Maven3MojoNote.annotate(Maven3MojoNote.java:56) at hudson.console.ConsoleAnnotationOutputStream$1.annotate(ConsoleAnnotationOutputStream.java:115) at hudson.console.ConsoleAnnotator$1Aggregator.annotate(ConsoleAnnotator.java:111) at hudson.console.ConsoleAnnotationOutputStream.eol(ConsoleAnnotationOutputStream.java:145) at hudson.console.LineTransformationOutputStream.eol(LineTransformationOutputStream.java:60) at hudson.console.LineTransformationOutputStream.write(LineTransformationOutputStream.java:56) at hudson.console.LineTransformationOutputStream.write(LineTransformationOutputStream.java:74) at org.apache.commons.io.output.ProxyOutputStream.write(ProxyOutputStream.java:90) at org.kohsuke.stapler.framework.io.LargeText$HeadMark.moveTo(LargeText.java:312) at org.kohsuke.stapler.framework.io.LargeText.writeLogTo(LargeText.java:227) at hudson.console.AnnotatedLargeText.writeHtmlTo(AnnotatedLargeText.java:156) at hudson.console.AnnotatedLargeText.writeLogTo(AnnotatedLargeText.java:143) at org.kohsuke.stapler.framework.io.LargeText.doProgressText(LargeText.java:262) at hudson.console.AnnotatedLargeText.doProgressiveHtml(AnnotatedLargeText.java:91) at sun.reflect.GeneratedMethodAccessor740.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:606) at org.kohsuke.stapler.Function$InstanceFunction.invoke(Function.java:298) at org.kohsuke.stapler.Function.bindAndInvoke(Function.java:161) at org.kohsuke.stapler.Function.bindAndInvokeAndServeResponse(Function.java:96) at org.kohsuke.stapler.MetaClass$1.doDispatch(MetaClass.java:120) at org.kohsuke.stapler.NameBasedDispatcher.dispatch(NameBasedDispatcher.java:53) at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:728) ... 70 more

    Jenkins JIRA | 2 years ago | Alex Rovner
    javax.servlet.ServletException: java.lang.IndexOutOfBoundsException

    Not finding the right solution?
    Take a tour to get the most out of Samebug.

    Tired of useless tips?

    Automated exception search integrated into your IDE

    Root Cause Analysis

    1. java.lang.IndexOutOfBoundsException

      No message provided

      at java.util.zip.DeflaterOutputStream.write()
    2. Java RT
      GZIPOutputStream.write
      1. java.util.zip.DeflaterOutputStream.write(DeflaterOutputStream.java:128)
      2. java.util.zip.GZIPOutputStream.write(GZIPOutputStream.java:93)
      2 frames
    3. com.fortis.rsa
      ResourceServlet.doGet
      1. com.fortis.rsa.spring.webflow.js.ResourceServlet$GZIPResponseStream.write(ResourceServlet.java:352)
      2. com.fortis.rsa.spring.webflow.js.ResourceServlet.doGet(ResourceServlet.java:127)
      2 frames
    4. JavaServlet
      HttpServlet.service
      1. javax.servlet.http.HttpServlet.service(HttpServlet.java:751)
      2. javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
      2 frames
    5. WebSphere
      WebContainer.handleRequest
      1. com.ibm.ws.webcontainer.servlet.ServletWrapper.service(ServletWrapper.java:1572)
      2. com.ibm.ws.webcontainer.servlet.ServletWrapper.service(ServletWrapper.java:1521)
      3. com.ibm.ws.webcontainer.filter.WebAppFilterChain.doFilter(WebAppFilterChain.java:113)
      4. com.ibm.ws.webcontainer.filter.WebAppFilterChain._doFilter(WebAppFilterChain.java:82)
      5. com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:759)
      6. com.ibm.ws.webcontainer.webapp.WebApp.handleRequest(WebApp.java:3174)
      7. com.ibm.ws.webcontainer.webapp.WebGroup.handleRequest(WebGroup.java:253)
      8. com.ibm.ws.webcontainer.VirtualHost.handleRequest(VirtualHost.java:229)
      9. com.ibm.ws.webcontainer.WebContainer.handleRequest(WebContainer.java:1970)
      9 frames
    6. com.ibm.ws
      WCChannelLink.ready
      1. com.ibm.ws.webcontainer.channel.WCChannelLink.ready(WCChannelLink.java:114)
      1 frame