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: [EMAIL PROTECTED] ReportedBy: [EMAIL PROTECTED] CC: [EMAIL PROTECTED] ------------------ 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 [EMAIL PROTECTED] --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]