Knut Forkalsrud wrote:
> 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
>   

Out of curiosity, what's the actual size of the file? And what kind of 
application? Just browser download or some kind of fancy streaming client.

-- Scott

>   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
> resin-interest@caucho.com
> http://maillist.caucho.com/mailman/listinfo/resin-interest
>   




_______________________________________________
resin-interest mailing list
resin-interest@caucho.com
http://maillist.caucho.com/mailman/listinfo/resin-interest

Reply via email to