You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by bu...@apache.org on 2003/11/18 00:11:24 UTC

DO NOT REPLY [Bug 24763] New: - Apache-Tomcat comm fails streaming objects of certain predictble sizes

DO NOT REPLY TO THIS EMAIL, BUT PLEASE POST YOUR BUG 
RELATED COMMENTS THROUGH THE WEB INTERFACE AVAILABLE AT
<http://nagoya.apache.org/bugzilla/show_bug.cgi?id=24763>.
ANY REPLY MADE TO THIS MESSAGE WILL NOT BE COLLECTED AND 
INSERTED IN THE BUG DATABASE.

http://nagoya.apache.org/bugzilla/show_bug.cgi?id=24763

Apache-Tomcat comm fails streaming objects of certain predictble sizes

           Summary: Apache-Tomcat comm fails streaming objects of certain
                    predictble sizes
           Product: Tomcat 4
           Version: 4.1.29
          Platform: All
        OS/Version: All
            Status: NEW
          Severity: Critical
          Priority: Other
         Component: Connector:Coyote JK 2
        AssignedTo: tomcat-dev@jakarta.apache.org
        ReportedBy: cap@pcweenie.com
                CC: cap@pcweenie.com


------------------
Description:
------------------
On certain sized objects, the communication between Apache and Tomcat via the 
JK2 connector is failing. If the object streamed to the servlet is 8187 or 8188 
bytes (and any size a factor of 8186 bytes larger than those two sizes [e.g., 
16373 & 16374, 24559 & 24560, etc.]), the servlet gets an java.io.EOFException. 
I wrote a simple client application, RemoteRequest, and servlet, 
TestModJK2Servlet demonstrate this problem. It appears to be a bug in either 
the connector or in Tomcat, but is probably the former. I believe 8186 is the 
size of the AJP frame within a 8192 byte UDP packet, so there's probably a snag 
in something like buffer rotation logic or something similar.


============================================
Configuration:
============================================
I would be happy to zip up and send the test application and servlet and 
supporting classes I used to produce this bug. With the configuration below, it 
is consistently reproducable. 

RemoteRequest is an application that makes a remote request to a servlet 
running in a Tomcat container via an Apache web server. For this test, 
RemoteRequest builds a byte array object of size 1 to size N. The size of the
object the byte array occupies (which seems to be 27 bytes + the size of the 
byte array itself) is computed. It is increased by one on each request. Both 
the RemoteRequest application and the TestModJK2Servlet log which requests 
they are able to successfully and/or unsuccessfully receive. The RemoteRequest
application, the Apache http server, and the Tomcat servers (two servers - load
balanced with equal weights and with session affinity), all reside on separate
physical servers. The versions and configurations of these follow: 


============================================
Apache 2:
============================================
Version 2.0.47 Downloaded from the Jakarta project. Configured with the 
following command:
JDK version 1.4.2_01 (from binary download)

./configure --prefix=/usr/local/apache2ssl --with-mpm=worker --enable-so --
enable-ssl=shared --enable-proxy=shared --enable-proxy-ftp=shared --enable-
proxy-http=shared --enable-proxy-connect=shared --enable-cgi --enable-
rewrite=shared --enable-http

Running on a Sun Netra t1 (UltraSPARC-IIi 440MHz), 512 MB memory
OS: Solaris 2.7 (with recommended patches)


============================================
Tomcat:
============================================
Tomcat version 4.1.29 (from binary download)
JDK version 1.4.2_02 (from binary download)
J2EE SDK 1.3.1_01 (from binary download)
TestModJK2Servlet installed at /TestModJK2Servlet
Running on a Dell server with dual 2.0GHz Xeon processors, 2048 MB memory. 
OS: RedHat Linux 9.0


============================================
Tomcat Jakarta Connector: 
============================================
Compiled the native2 version for Apache 2.0 using the source downloaded from:
http://apache.oregonstate.edu/jakarta/tomcat-4/v4.1.29/src/jakarta-tomcat-
connectors-4.1.29-src.tar.gz
Running on the Apache2 system above.


============================================
Client Application (RemoteRequest): 
============================================
A simple client that makes HTTP request like an applet does.
JDK version 1.4.2_02 (from binary download)
J2EE SDK 1.3.1_01 (from binary download)
Running on a Sun SunFire 280R server with dual 900MHz UltraSparc-III 
processors, 2048 MB memory.
OS: Solaris 2.8


Included files:
RemoteRequest.log: An excerpt of the application log showing where the failures 
occurred in testing.
TomcatCatalina.out.log: An excerpt of the Tomcat log showing where the failures 
occurred in testing.


------------------
RemoteRequest.log:
------------------
EVENT: HttpMessage.sendPostMsg: sending an object 8186 bytes long.
EVENT: Request with object of size 8186 was successful
EVENT: HttpMessage.sendPostMsg: sending an object 8187 bytes long.
EVENT: Request with object of size 8187 was ->unsuccessful<-
EVENT: HttpMessage.sendPostMsg: sending an object 8188 bytes long.
EVENT: Request with object of size 8188 was ->unsuccessful<-
EVENT: HttpMessage.sendPostMsg: sending an object 8189 bytes long.
EVENT: Request with object of size 8189 was successful
  . . .
EVENT: HttpMessage.sendPostMsg: sending an object 16372 bytes long.
EVENT: Request with object of size 16372 was successful
EVENT: HttpMessage.sendPostMsg: sending an object 16373 bytes long.
EVENT: Request with object of size 16373 was ->unsuccessful<-
EVENT: HttpMessage.sendPostMsg: sending an object 16374 bytes long.
EVENT: Request with object of size 16374 was ->unsuccessful<-
EVENT: HttpMessage.sendPostMsg: sending an object 16375 bytes long.
EVENT: Request with object of size 16375 was successful
  . . .
EVENT: HttpMessage.sendPostMsg: sending an object 24558 bytes long.
EVENT: Request with object of size 24558 was successful
EVENT: HttpMessage.sendPostMsg: sending an object 24559 bytes long.
EVENT: Request with object of size 24559 was ->unsuccessful<-
EVENT: HttpMessage.sendPostMsg: sending an object 24560 bytes long.
EVENT: Request with object of size 24560 was ->unsuccessful<-
EVENT: HttpMessage.sendPostMsg: sending an object 24561 bytes long.
EVENT: Request with object of size 24561 was successful


----------------------
TomcatCatalina.out.log
----------------------
  . . .
EVENT: Received a byte[] object containing 8158 data bytes.
EVENT:  ... and a total object size of: 8185 bytes.
EVENT: Received a byte[] object containing 8159 data bytes.
EVENT:  ... and a total object size of: 8186 bytes.
EXCEP: Exception occurred when reading in object: null
java.io.EOFException
        at java.io.ObjectInputStream$BlockDataInputStream.readFully
(ObjectInputStream.java:2581)
        at java.io.ObjectInputStream.readArray(ObjectInputStream.java:1584)
        at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1271)
        at java.io.ObjectInputStream.readObject(ObjectInputStream.java:324)
        at com.eyestreet.servlet.TestModJK2Servlet.doPost
(TestModJK2Servlet.java:89)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:760)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter
(ApplicationFilterChain.java:247)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter
(ApplicationFilterChain.java:193)
        at org.apache.catalina.core.StandardWrapperValve.invoke
(StandardWrapperValve.java:256)
        at 
org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNex
t(StandardPipeline.java:643)
        at org.apache.catalina.core.StandardPipeline.invoke
(StandardPipeline.java:480)
        at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
        at org.apache.catalina.core.StandardContextValve.invoke
(StandardContextValve.java:191)
        at 
org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNex
t(StandardPipeline.java:643)
        at org.apache.catalina.core.StandardPipeline.invoke
(StandardPipeline.java:480)
        at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
        at org.apache.catalina.core.StandardContext.invoke
(StandardContext.java:2417)
        at org.apache.catalina.core.StandardHostValve.invoke
(StandardHostValve.java:180)
        at 
org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNex
t(StandardPipeline.java:643)
        at org.apache.catalina.valves.ErrorDispatcherValve.invoke
(ErrorDispatcherValve.java:171)
        at 
org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNex
t(StandardPipeline.java:641)
        at org.apache.catalina.valves.ErrorReportValve.invoke
(ErrorReportValve.java:172)
        at 
org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNex
t(StandardPipeline.java:641)
        at org.apache.catalina.core.StandardPipeline.invoke
(StandardPipeline.java:480)
        at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
        at org.apache.catalina.core.StandardEngineValve.invoke
(StandardEngineValve.java:174)
        at 
org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNex
t(StandardPipeline.java:643)
        at org.apache.catalina.core.StandardPipeline.invoke
(StandardPipeline.java:480)
        at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
        at org.apache.coyote.tomcat4.CoyoteAdapter.service
(CoyoteAdapter.java:193)
        at org.apache.jk.server.JkCoyoteHandler.invoke(JkCoyoteHandler.java:309)
        at org.apache.jk.common.HandlerRequest.invoke(HandlerRequest.java:387)
        at org.apache.jk.common.ChannelSocket.invoke(ChannelSocket.java:673)
        at org.apache.jk.common.ChannelSocket.processConnection
(ChannelSocket.java:615)
        at org.apache.jk.common.SocketConnection.runIt(ChannelSocket.java:786)
        at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run
(ThreadPool.java:666)
        at java.lang.Thread.run(Thread.java:534)
EXCEP: Exception occurred when reading in object: null
java.io.EOFException
        at java.io.ObjectInputStream$BlockDataInputStream.readFully
(ObjectInputStream.java:2581)
        at java.io.ObjectInputStream.readArray(ObjectInputStream.java:1584)
        at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1271)
        at java.io.ObjectInputStream.readObject(ObjectInputStream.java:324)
        at com.eyestreet.servlet.TestModJK2Servlet.doPost
(TestModJK2Servlet.java:89)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:760)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter
(ApplicationFilterChain.java:247)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter
(ApplicationFilterChain.java:193)
        at org.apache.catalina.core.StandardWrapperValve.invoke
(StandardWrapperValve.java:256)
        at 
org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNex
t(StandardPipeline.java:643)
        at org.apache.catalina.core.StandardPipeline.invoke
(StandardPipeline.java:480)
        at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
        at org.apache.catalina.core.StandardContextValve.invoke
(StandardContextValve.java:191)
        at 
org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNex
t(StandardPipeline.java:643)
        at org.apache.catalina.core.StandardPipeline.invoke
(StandardPipeline.java:480)
        at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
        at org.apache.catalina.core.StandardContext.invoke
(StandardContext.java:2417)
        at org.apache.catalina.core.StandardHostValve.invoke
(StandardHostValve.java:180)
        at 
org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNex
t(StandardPipeline.java:643)
        at org.apache.catalina.valves.ErrorDispatcherValve.invoke
(ErrorDispatcherValve.java:171)
        at 
org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNex
t(StandardPipeline.java:641)
        at org.apache.catalina.valves.ErrorReportValve.invoke
(ErrorReportValve.java:172)
        at 
org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNex
t(StandardPipeline.java:641)
        at org.apache.catalina.core.StandardPipeline.invoke
(StandardPipeline.java:480)
        at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
        at org.apache.catalina.core.StandardEngineValve.invoke
(StandardEngineValve.java:174)
        at 
org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNex
t(StandardPipeline.java:643)
        at org.apache.catalina.core.StandardPipeline.invoke
(StandardPipeline.java:480)
        at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
        at org.apache.coyote.tomcat4.CoyoteAdapter.service
(CoyoteAdapter.java:193)
        at org.apache.jk.server.JkCoyoteHandler.invoke(JkCoyoteHandler.java:309)
        at org.apache.jk.common.HandlerRequest.invoke(HandlerRequest.java:387)
        at org.apache.jk.common.ChannelSocket.invoke(ChannelSocket.java:673)
        at org.apache.jk.common.ChannelSocket.processConnection
(ChannelSocket.java:615)
        at org.apache.jk.common.SocketConnection.runIt(ChannelSocket.java:786)
        at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run
(ThreadPool.java:666)
        at java.lang.Thread.run(Thread.java:534)
EVENT: Received a byte[] object containing 8162 data bytes.
EVENT:  ... and a total object size of: 8189 bytes.
EVENT: Received a byte[] object containing 8163 data bytes.
EVENT:  ... and a total object size of: 8190 bytes.
  . . .
EVENT: Received a byte[] object containing 16344 data bytes.
EVENT:  ... and a total object size of: 16371 bytes.
EVENT: Received a byte[] object containing 16345 data bytes.
EVENT:  ... and a total object size of: 16372 bytes.
EXCEP: Exception occurred when reading in object: null
java.io.EOFException
        at java.io.ObjectInputStream$BlockDataInputStream.readFully
(ObjectInputStream.java:2581)
        at java.io.ObjectInputStream.readArray(ObjectInputStream.java:1584)
        at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1271)
        at java.io.ObjectInputStream.readObject(ObjectInputStream.java:324)
        at com.eyestreet.servlet.TestModJK2Servlet.doPost
(TestModJK2Servlet.java:89)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:760)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter
(ApplicationFilterChain.java:247)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter
(ApplicationFilterChain.java:193)
        at org.apache.catalina.core.StandardWrapperValve.invoke
(StandardWrapperValve.java:256)
        at 
org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNex
t(StandardPipeline.java:643)
        at org.apache.catalina.core.StandardPipeline.invoke
(StandardPipeline.java:480)
        at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
        at org.apache.catalina.core.StandardContextValve.invoke
(StandardContextValve.java:191)
        at 
org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNex
t(StandardPipeline.java:643)
        at org.apache.catalina.core.StandardPipeline.invoke
(StandardPipeline.java:480)
        at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
        at org.apache.catalina.core.StandardContext.invoke
(StandardContext.java:2417)
        at org.apache.catalina.core.StandardHostValve.invoke
(StandardHostValve.java:180)
        at 
org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNex
t(StandardPipeline.java:643)
        at org.apache.catalina.valves.ErrorDispatcherValve.invoke
(ErrorDispatcherValve.java:171)
        at 
org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNex
t(StandardPipeline.java:641)
        at org.apache.catalina.valves.ErrorReportValve.invoke
(ErrorReportValve.java:172)
        at 
org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNex
t(StandardPipeline.java:641)
        at org.apache.catalina.core.StandardPipeline.invoke
(StandardPipeline.java:480)
        at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
        at org.apache.catalina.core.StandardEngineValve.invoke
(StandardEngineValve.java:174)
        at 
org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNex
t(StandardPipeline.java:643)
        at org.apache.catalina.core.StandardPipeline.invoke
(StandardPipeline.java:480)
        at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
        at org.apache.coyote.tomcat4.CoyoteAdapter.service
(CoyoteAdapter.java:193)
        at org.apache.jk.server.JkCoyoteHandler.invoke(JkCoyoteHandler.java:309)
        at org.apache.jk.common.HandlerRequest.invoke(HandlerRequest.java:387)
        at org.apache.jk.common.ChannelSocket.invoke(ChannelSocket.java:673)
        at org.apache.jk.common.ChannelSocket.processConnection
(ChannelSocket.java:615)
        at org.apache.jk.common.SocketConnection.runIt(ChannelSocket.java:786)
        at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run
(ThreadPool.java:666)
        at java.lang.Thread.run(Thread.java:534)
EXCEP: Exception occurred when reading in object: null
java.io.EOFException
        at java.io.ObjectInputStream$BlockDataInputStream.readFully
(ObjectInputStream.java:2581)
        at java.io.ObjectInputStream.readArray(ObjectInputStream.java:1584)
        at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1271)
        at java.io.ObjectInputStream.readObject(ObjectInputStream.java:324)
        at com.eyestreet.servlet.TestModJK2Servlet.doPost
(TestModJK2Servlet.java:89)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:760)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter
(ApplicationFilterChain.java:247)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter
(ApplicationFilterChain.java:193)
        at org.apache.catalina.core.StandardWrapperValve.invoke
(StandardWrapperValve.java:256)
        at 
org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNex
t(StandardPipeline.java:643)
        at org.apache.catalina.core.StandardPipeline.invoke
(StandardPipeline.java:480)
        at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
        at org.apache.catalina.core.StandardContextValve.invoke
(StandardContextValve.java:191)
        at 
org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNex
t(StandardPipeline.java:643)
        at org.apache.catalina.core.StandardPipeline.invoke
(StandardPipeline.java:480)
        at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
        at org.apache.catalina.core.StandardContext.invoke
(StandardContext.java:2417)
        at org.apache.catalina.core.StandardHostValve.invoke
(StandardHostValve.java:180)
        at 
org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNex
t(StandardPipeline.java:643)
        at org.apache.catalina.valves.ErrorDispatcherValve.invoke
(ErrorDispatcherValve.java:171)
        at 
org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNex
t(StandardPipeline.java:641)
        at org.apache.catalina.valves.ErrorReportValve.invoke
(ErrorReportValve.java:172)
        at 
org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNex
t(StandardPipeline.java:641)
        at org.apache.catalina.core.StandardPipeline.invoke
(StandardPipeline.java:480)
        at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
        at org.apache.catalina.core.StandardEngineValve.invoke
(StandardEngineValve.java:174)
        at 
org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNex
t(StandardPipeline.java:643)
        at org.apache.catalina.core.StandardPipeline.invoke
(StandardPipeline.java:480)
        at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
        at org.apache.coyote.tomcat4.CoyoteAdapter.service
(CoyoteAdapter.java:193)
        at org.apache.jk.server.JkCoyoteHandler.invoke(JkCoyoteHandler.java:309)
        at org.apache.jk.common.HandlerRequest.invoke(HandlerRequest.java:387)
        at org.apache.jk.common.ChannelSocket.invoke(ChannelSocket.java:673)
        at org.apache.jk.common.ChannelSocket.processConnection
(ChannelSocket.java:615)
        at org.apache.jk.common.SocketConnection.runIt(ChannelSocket.java:786)
        at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run
(ThreadPool.java:666)
        at java.lang.Thread.run(Thread.java:534)
EVENT: Received a byte[] object containing 16348 data bytes.
EVENT:  ... and a total object size of: 16375 bytes.
EVENT: Received a byte[] object containing 16349 data bytes.
EVENT:  ... and a total object size of: 16376 bytes.
  . . .
EVENT: Received a byte[] object containing 24530 data bytes.
EVENT:  ... and a total object size of: 24557 bytes.
EVENT: Received a byte[] object containing 24531 data bytes.
EVENT:  ... and a total object size of: 24558 bytes.
EXCEP: Exception occurred when reading in object: null
java.io.EOFException
        at java.io.ObjectInputStream$BlockDataInputStream.readFully
(ObjectInputStream.java:2581)
        at java.io.ObjectInputStream.readArray(ObjectInputStream.java:1584)
        at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1271)
        at java.io.ObjectInputStream.readObject(ObjectInputStream.java:324)
        at com.eyestreet.servlet.TestModJK2Servlet.doPost
(TestModJK2Servlet.java:89)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:760)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter
(ApplicationFilterChain.java:247)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter
(ApplicationFilterChain.java:193)
        at org.apache.catalina.core.StandardWrapperValve.invoke
(StandardWrapperValve.java:256)
        at 
org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNex
t(StandardPipeline.java:643)
        at org.apache.catalina.core.StandardPipeline.invoke
(StandardPipeline.java:480)
        at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
        at org.apache.catalina.core.StandardContextValve.invoke
(StandardContextValve.java:191)
        at 
org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNex
t(StandardPipeline.java:643)
        at org.apache.catalina.core.StandardPipeline.invoke
(StandardPipeline.java:480)
        at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
        at org.apache.catalina.core.StandardContext.invoke
(StandardContext.java:2417)
        at org.apache.catalina.core.StandardHostValve.invoke
(StandardHostValve.java:180)
        at 
org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNex
t(StandardPipeline.java:643)
        at org.apache.catalina.valves.ErrorDispatcherValve.invoke
(ErrorDispatcherValve.java:171)
        at 
org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNex
t(StandardPipeline.java:641)
        at org.apache.catalina.valves.ErrorReportValve.invoke
(ErrorReportValve.java:172)
        at 
org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNex
t(StandardPipeline.java:641)
        at org.apache.catalina.core.StandardPipeline.invoke
(StandardPipeline.java:480)
        at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
        at org.apache.catalina.core.StandardEngineValve.invoke
(StandardEngineValve.java:174)
        at 
org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNex
t(StandardPipeline.java:643)
        at org.apache.catalina.core.StandardPipeline.invoke
(StandardPipeline.java:480)
        at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
        at org.apache.coyote.tomcat4.CoyoteAdapter.service
(CoyoteAdapter.java:193)
        at org.apache.jk.server.JkCoyoteHandler.invoke(JkCoyoteHandler.java:309)
        at org.apache.jk.common.HandlerRequest.invoke(HandlerRequest.java:387)
        at org.apache.jk.common.ChannelSocket.invoke(ChannelSocket.java:673)
        at org.apache.jk.common.ChannelSocket.processConnection
(ChannelSocket.java:615)
        at org.apache.jk.common.SocketConnection.runIt(ChannelSocket.java:786)
        at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run
(ThreadPool.java:666)
        at java.lang.Thread.run(Thread.java:534)
EXCEP: Exception occurred when reading in object: null
java.io.EOFException
        at java.io.ObjectInputStream$BlockDataInputStream.readFully
(ObjectInputStream.java:2581)
        at java.io.ObjectInputStream.readArray(ObjectInputStream.java:1584)
        at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1271)
        at java.io.ObjectInputStream.readObject(ObjectInputStream.java:324)
        at com.eyestreet.servlet.TestModJK2Servlet.doPost
(TestModJK2Servlet.java:89)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:760)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter
(ApplicationFilterChain.java:247)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter
(ApplicationFilterChain.java:193)
        at org.apache.catalina.core.StandardWrapperValve.invoke
(StandardWrapperValve.java:256)
        at 
org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNex
t(StandardPipeline.java:643)
        at org.apache.catalina.core.StandardPipeline.invoke
(StandardPipeline.java:480)
        at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
        at org.apache.catalina.core.StandardContextValve.invoke
(StandardContextValve.java:191)
        at 
org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNex
t(StandardPipeline.java:643)
        at org.apache.catalina.core.StandardPipeline.invoke
(StandardPipeline.java:480)
        at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
        at org.apache.catalina.core.StandardContext.invoke
(StandardContext.java:2417)
        at org.apache.catalina.core.StandardHostValve.invoke
(StandardHostValve.java:180)
        at 
org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNex
t(StandardPipeline.java:643)
        at org.apache.catalina.valves.ErrorDispatcherValve.invoke
(ErrorDispatcherValve.java:171)
        at 
org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNex
t(StandardPipeline.java:641)
        at org.apache.catalina.valves.ErrorReportValve.invoke
(ErrorReportValve.java:172)
        at 
org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNex
t(StandardPipeline.java:641)
        at org.apache.catalina.core.StandardPipeline.invoke
(StandardPipeline.java:480)
        at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
        at org.apache.catalina.core.StandardEngineValve.invoke
(StandardEngineValve.java:174)
        at 
org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNex
t(StandardPipeline.java:643)
        at org.apache.catalina.core.StandardPipeline.invoke
(StandardPipeline.java:480)
        at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
        at org.apache.coyote.tomcat4.CoyoteAdapter.service
(CoyoteAdapter.java:193)
        at org.apache.jk.server.JkCoyoteHandler.invoke(JkCoyoteHandler.java:309)
        at org.apache.jk.common.HandlerRequest.invoke(HandlerRequest.java:387)
        at org.apache.jk.common.ChannelSocket.invoke(ChannelSocket.java:673)
        at org.apache.jk.common.ChannelSocket.processConnection
(ChannelSocket.java:615)
        at org.apache.jk.common.SocketConnection.runIt(ChannelSocket.java:786)
        at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run
(ThreadPool.java:666)
        at java.lang.Thread.run(Thread.java:534)
EVENT: Received a byte[] object containing 24534 data bytes.
EVENT:  ... and a total object size of: 24561 bytes.
EVENT: Received a byte[] object containing 24535 data bytes.
EVENT:  ... and a total object size of: 24562 bytes.


Again, I'd be more than happy to zip up the java code used for testing as well 
as all relevant configuration files. I refrain from tacking those on here.

Craig Prall
cap@pcweenie.com

---------------------------------------------------------------------
To unsubscribe, e-mail: tomcat-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: tomcat-dev-help@jakarta.apache.org