Dear Cognoscenti, We have recently been getting a few requests with abnormal Range request headers. For example:
Accept-Language: zh-cn,zh-hk,zh-tw,en-us User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1) Accept: */* Host: www.mydomain.com Connection: Keep-Alive Range: bytes=-335544320--1162852624 Accept-Encoding: gzip X-Forwarded-For: 124.115.0.146 This results in an exception like this: java.lang.ArrayIndexOutOfBoundsException at java.lang.System.arraycopy(Native Method) at com.caucho.vfs.WriteStream.write(WriteStream.java:301) at com.caucho.server.connection.ResponseStream.writeNext(ResponseStream.java:445) at com.caucho.server.connection.ToByteResponseStream.write(ToByteResponseStream.java:336) at com.caucho.server.connection.ServletOutputStreamImpl.write(ServletOutputStreamImpl.java:67) at com.caucho.vfs.ReadStream.writeToStream(ReadStream.java:899) at com.caucho.servlets.FileServlet.handleRange(FileServlet.java:498) at com.caucho.servlets.FileServlet.service(FileServlet.java:325) at com.caucho.server.dispatch.ServletFilterChain.doFilter(ServletFilterChain.java:103) at com.caucho.server.webapp.NamedDispatcherImpl.forward(NamedDispatcherImpl.java:108) at com.mydomain.www.MyServlet.doGet(BaseServlet.java:167) at javax.servlet.http.HttpServlet.service(HttpServlet.java:114) at javax.servlet.http.HttpServlet.service(HttpServlet.java:91) at com.caucho.server.dispatch.ServletFilterChain.doFilter(ServletFilterChain.java:103) at com.caucho.server.webapp.WebAppFilterChain.doFilter(WebAppFilterChain.java:187) at com.caucho.server.dispatch.ServletInvocation.service(ServletInvocation.java:265) at com.caucho.server.http.HttpRequest.handleRequest(HttpRequest.java:273) at com.caucho.server.port.TcpConnection.run(TcpConnection.java:682) at com.caucho.util.ThreadPool$Item.runTasks(ThreadPool.java:730) at com.caucho.util.ThreadPool$Item.run(ThreadPool.java:649) at java.lang.Thread.run(Thread.java:595) (I'm forwarding the request to the FileServlet). No harm done here, the requests seems to fail without causing any other side effects, but I'm wondering if the FileServlet should handle the situation a little more gracefully and give a 4xx response code instead of throwing an exception, which ends up being a 5xx response code. This is Resin 3.1.8 btw. Thanks, Knut Forkalsrud _______________________________________________ resin-interest mailing list [email protected] http://maillist.caucho.com/mailman/listinfo/resin-interest
