java.lang.ArrayIndexOutOfBoundsException: 4096

Java.net JIRA | apps4u | 5 years ago
tip
Do you know that we can give you better hits? Get more relevant results from Samebug’s stack trace search.
  1. 0

    - fix should include jetty integration test It would be nice if the tracing in jersey could limit itself to a certain number of bytes configured by the user or easier to implement a certain number of traces. Although it is a limitation of jetty in this case and can be avoided by (in 1.6.5) set a jetty.http.headerbuffersize system property (bytes). Jersey can always exceed the header size of the server with the traces, so it would be nice to be able to configure it to avoid the Internal Server Error. This is the request before the one that failed: < HTTP/1.1 200 OK < X-TraceUrl: /appstats/details?time=1347223516282&type=json < Content-Type: text/plain < X-Jersey-Trace-000: accept root resource classes: "/_world/south-america/colombia/choco/" < X-Jersey-Trace-001: match path "/_world/south-america/colombia/choco/" -> "/application\.wadl(/.*)?", "(/.*)?" < X-Jersey-Trace-002: accept right hand path java.util.regex.Matcher[pattern=(/.*)? region=0,37 lastmatch=/_world/south-america/colombia/choco/]: "/_world/south-amer ica/colombia/choco/" -> "" : "/_world/south-america/colombia/choco/" < X-Jersey-Trace-003: accept resource: "" -> @Path("/") co.apps4u.i2u.resources.RootResource@13926fbf < X-Jersey-Trace-004: match path "/_world/south-america/colombia/choco/" -> "/_([^/]+/$)(/.*)?", "/_([^/]+?)(/.*)?", "/([^/]+\.[^/]+)(/.*)?", "/([^/]+/$)(/.*)?", "/( [^/]+)(/.*)?", "" < X-Jersey-Trace-005: accept right hand path java.util.regex.Matcher[pattern=/_([^/]+?)(/.*)? region=0,37 lastmatch=/_world/south-america/colombia/choco/]: "/_world/ south-america/colombia/choco/" -> "/_world" : "/south-america/colombia/choco/" < X-Jersey-Trace-006: accept sub-resource locator: "" : "_world" -> @Path("/_{resource}") co.apps4u.i2u.resources.RootResource@13926fbf.findResourceKind(java.lang.St ring) = world<br/> < X-Jersey-Trace-007: match path "/south-america/colombia/choco/" -> "/_([^/]+/$)(/.*)?", "/_([^/]+?)(/.*)?", "/([^/]+\.[^/]+)(/.*)?", "/([^/]+/$)(/.*)?", "/([^/]+)( /.*)?", "" < X-Jersey-Trace-008: accept right hand path java.util.regex.Matcher[pattern=/([^/]+)(/.*)? region=0,30 lastmatch=/south-america/colombia/choco/]: "/south-america/co lombia/choco/" -> "/south-america" : "/colombia/choco/" < X-Jersey-Trace-009: accept sub-resource locator: "_world" : "/south-america" -> @Path("/{resource: [^/]+}") co.apps4u.i2u.resources.Resource@72e66ea2.findResource( java.lang.String) = south-america<br/> < X-Jersey-Trace-010: match path "/colombia/choco/" -> "/_([^/]+/$)(/.*)?", "/_([^/]+?)(/.*)?", "/([^/]+\.[^/]+)(/.*)?", "/([^/]+/$)(/.*)?", "/([^/]+)(/.*)?", "" < X-Jersey-Trace-011: accept right hand path java.util.regex.Matcher[pattern=/([^/]+)(/.*)? region=0,16 lastmatch=/colombia/choco/]: "/colombia/choco/" -> "/colombia " : "/choco/" < X-Jersey-Trace-012: accept sub-resource locator: "_world/south-america" : "/colombia" -> @Path("/{resource: [^/]+}") co.apps4u.i2u.resources.Resource@7669889c.find Resource(java.lang.String) = colombia<br/> < X-Jersey-Trace-013: match path "/choco/" -> "/_([^/]+/$)(/.*)?", "/_([^/]+?)(/.*)?", "/([^/]+\.[^/]+)(/.*)?", "/([^/]+/$)(/.*)?", "/([^/]+)(/.*)?", "" < X-Jersey-Trace-014: accept right hand path java.util.regex.Matcher[pattern=/([^/]+/$)(/.*)? region=0,7 lastmatch=/choco/]: "/choco/" -> "/choco/" : "" < X-Jersey-Trace-015: accept sub-resource locator: "_world/south-america/colombia" : "/choco/" -> @Path("/{resource: [^/]+/$}") co.apps4u.i2u.resources.Resource@a87f 680.findResourceContainer(java.lang.String) = choco<br/> < X-Jersey-Trace-016: match path "" -> "/_([^/]+/$)(/.*)?", "/_([^/]+?)(/.*)?", "/([^/]+\.[^/]+)(/.*)?", "/([^/]+/$)(/.*)?", "/([^/]+)(/.*)?", "" < X-Jersey-Trace-017: accept resource methods: "_world/south-america/colombia/choco/", GET -> co.apps4u.i2u.resources.Resource@644852e6 < X-Jersey-Trace-018: matched resource method: public java.lang.String co.apps4u.i2u.resources.Resource.doGet() < X-Jersey-Trace-019: matched message body writer: java.lang.String@1684583b, "text/plain" -> com.sun.jersey.core.impl.provider.entity.StringProvider@66c3433d The next request had one more component in the path and throws an exception: / Method: public java.lang.String co.apps4u.i2u.resources.Resource.doGet() Sep 09, 2012 8:33:11 PM com.google.apphosting.utils.jetty.JettyLogger warn WARNING: header full: java.lang.ArrayIndexOutOfBoundsException: 4096 Sep 09, 2012 8:33:11 PM com.google.appengine.tools.appstats.AppstatsFilter doFilter INFO: Appstats available: /appstats/details?time=1347222791201 Sep 09, 2012 8:33:11 PM com.google.apphosting.utils.jetty.JettyLogger warn WARNING: /_world/south-america/colombia/choco/capurgana/ java.lang.ArrayIndexOutOfBoundsException: 4096 at org.mortbay.io.ByteArrayBuffer.poke(ByteArrayBuffer.java:268) at org.mortbay.io.AbstractBuffer.put(AbstractBuffer.java:456) at org.mortbay.jetty.HttpFields$Field.put(HttpFields.java:1424) at org.mortbay.jetty.HttpGenerator.completeHeader(HttpGenerator.java:523) at org.mortbay.jetty.HttpConnection.commitResponse(HttpConnection.java:632) at org.mortbay.jetty.HttpConnection$Output.flush(HttpConnection.java:1004) at com.sun.jersey.spi.container.servlet.WebComponent$Writer.flush(WebComponent.java:315) at com.sun.jersey.spi.container.ContainerResponse$CommittingOutputStream.flush(ContainerResponse.java:145) at sun.nio.cs.StreamEncoder.implFlush(StreamEncoder.java:297) at sun.nio.cs.StreamEncoder.flush(StreamEncoder.java:141) at java.io.OutputStreamWriter.flush(OutputStreamWriter.java:229) at java.io.BufferedWriter.flush(BufferedWriter.java:254) at com.sun.jersey.core.util.ReaderWriter.writeToAsString(ReaderWriter.java:191) at com.sun.jersey.core.provider.AbstractMessageReaderWriterProvider.writeToAsString(AbstractMessageReaderWriterProvider.java:128) at com.sun.jersey.core.impl.provider.entity.StringProvider.writeTo(StringProvider.java:88) at com.sun.jersey.core.impl.provider.entity.StringProvider.writeTo(StringProvider.java:58) at com.sun.jersey.spi.container.ContainerResponse.write(ContainerResponse.java:306) at com.sun.jersey.server.impl.application.WebApplicationImpl._handleRequest(WebApplicationImpl.java:1448) at com.sun.jersey.server.impl.application.WebApplicationImpl.handleRequest(WebApplicationImpl.java:1360) at com.sun.jersey.server.impl.application.WebApplicationImpl.handleRequest(WebApplicationImpl.java:1350) at com.sun.jersey.spi.container.servlet.WebComponent.service(WebComponent.java:416) at com.sun.jersey.spi.container.servlet.ServletContainer.service(ServletContainer.java:538) at com.sun.jersey.spi.container.servlet.ServletContainer.service(ServletContainer.java:716)

    Java.net JIRA | 5 years ago | apps4u
    java.lang.ArrayIndexOutOfBoundsException: 4096

    Root Cause Analysis

    1. java.lang.ArrayIndexOutOfBoundsException

      4096

      at org.mortbay.io.ByteArrayBuffer.poke()
    2. Jetty Server
      HttpConnection$Output.flush
      1. org.mortbay.io.ByteArrayBuffer.poke(ByteArrayBuffer.java:268)
      2. org.mortbay.io.AbstractBuffer.put(AbstractBuffer.java:456)
      3. org.mortbay.jetty.HttpFields$Field.put(HttpFields.java:1424)
      4. org.mortbay.jetty.HttpGenerator.completeHeader(HttpGenerator.java:523)
      5. org.mortbay.jetty.HttpConnection.commitResponse(HttpConnection.java:632)
      6. org.mortbay.jetty.HttpConnection$Output.flush(HttpConnection.java:1004)
      6 frames
    3. Jersey
      WebComponent$Writer.flush
      1. com.sun.jersey.spi.container.servlet.WebComponent$Writer.flush(WebComponent.java:315)
      1 frame
    4. Jersey
      ContainerResponse$CommittingOutputStream.flush
      1. com.sun.jersey.spi.container.ContainerResponse$CommittingOutputStream.flush(ContainerResponse.java:145)
      1 frame
    5. Java RT
      BufferedWriter.flush
      1. sun.nio.cs.StreamEncoder.implFlush(StreamEncoder.java:297)
      2. sun.nio.cs.StreamEncoder.flush(StreamEncoder.java:141)
      3. java.io.OutputStreamWriter.flush(OutputStreamWriter.java:229)
      4. java.io.BufferedWriter.flush(BufferedWriter.java:254)
      4 frames
    6. jersey-core
      StringProvider.writeTo
      1. com.sun.jersey.core.util.ReaderWriter.writeToAsString(ReaderWriter.java:191)
      2. com.sun.jersey.core.provider.AbstractMessageReaderWriterProvider.writeToAsString(AbstractMessageReaderWriterProvider.java:128)
      3. com.sun.jersey.core.impl.provider.entity.StringProvider.writeTo(StringProvider.java:88)
      4. com.sun.jersey.core.impl.provider.entity.StringProvider.writeTo(StringProvider.java:58)
      4 frames
    7. Jersey
      WebApplicationImpl.handleRequest
      1. com.sun.jersey.spi.container.ContainerResponse.write(ContainerResponse.java:306)
      2. com.sun.jersey.server.impl.application.WebApplicationImpl._handleRequest(WebApplicationImpl.java:1448)
      3. com.sun.jersey.server.impl.application.WebApplicationImpl.handleRequest(WebApplicationImpl.java:1360)
      4. com.sun.jersey.server.impl.application.WebApplicationImpl.handleRequest(WebApplicationImpl.java:1350)
      4 frames
    8. Jersey
      ServletContainer.service
      1. com.sun.jersey.spi.container.servlet.WebComponent.service(WebComponent.java:416)
      2. com.sun.jersey.spi.container.servlet.ServletContainer.service(ServletContainer.java:538)
      3. com.sun.jersey.spi.container.servlet.ServletContainer.service(ServletContainer.java:716)
      3 frames