The servlet spec defines the behavior that calling
HttpServletRequest.sendError() when the response has
already been committed results in an IllegalStateException.
To avoid this you need to either avoid the "sendError"
or avoid committing the response.

Your log indicates you are running Tomcat 3.2.x, not
Tomcat 3.3.  There is a known bug in Tomcat 3.2.x where
RequestDispacher.include() forces the response to be
committed.  This was done to avoid a worse bug with
respect to sessions.  This was fixed in Tomcat 3.3
(and doesn't apply to Tomcat 4.x). If the committing of
the response is due to this bug, then you would likely
get better behavior with Tomcat 3.3, or Tomcat 4.x.

Regardless of the IllegalStateException, the client
shouldn't be left hanging.  However, I haven't worked
with SOAP to know if a problem like this is most likely
to be caused by the app, SOAP, Apache, Tomcat, or the
connector.  Somebody should be handling the error better,
but without more details, I can't comment more.

Cheers,
Larry

> -----Original Message-----
> From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]]
> Sent: Tuesday, November 27, 2001 9:23 AM
> To: [EMAIL PROTECTED]
> Subject: Lost message via servlet using tomcat 3.3
> 
> 
> 
> Hello -- I am using a soap servlet (WASP 1.x) and tomcat 3.3 
> with apache. From
> time to time I get the following error message:
> 
> 
> -----
> 2001-11-20 08:18:14 - PoolTcpConnector: Starting 
> Ajp12ConnectionHandler on 8007
> 2001-11-21 09:59:07 - Ctx( /soap ): Servlet API error: 
> sendError with commited buffer 
> 2001-11-21 09:59:07 - Ctx( /soap ): IllegalStateException in: 
> R( /soap + /servlet + /soap/purge) Response has already been committed
> 2001-11-21 10:04:15 - Ctx( /soap ): Servlet API error: 
> sendError with commited buffer 
> 2001-11-21 10:04:15 - Ctx( /soap ): IllegalStateException in: 
> R( /soap + /servlet + /soap/purge) Response has already been committed
> 2001-11-23 03:37:55 - Ctx( /soap ): Servlet API error: 
> sendError with commited buffer 
> 2001-11-23 03:37:55 - Ctx( /soap ): IllegalStateException in: 
> R( /soap + /servlet + /soap/purge) Response has already been committed
> 2001-11-23 03:38:16 - Ctx( /soap ): Servlet API error: 
> sendError with commited buffer 
> 2001-11-23 03:38:16 - Ctx( /soap ): IllegalStateException in: 
> R( /soap + /servlet + /soap/purge) Response has already been committed
> 2001-11-27 02:15:14 - Ctx( /soap ): Servlet API error: 
> sendError with commited buffer 
> ----
> 
> 
> At the user level I cannot see why this is happening (i.e., 
> the user code
> does a return -- the soap layer should generate a response 
> and send it to the
> client). However, when this error occurs the client never 
> gets a response
> (the above error seems to imply that two responses were 
> generated not none).
> 
> I have three concerns:
> a) When this happens the client never times out -- can the 
> apache webserver
>    not be told to drop the connection ?
> 
> b) Why is this happening ?
> 
> c) If it is a tomcat bug (I guess it could be a wasp or a 
> user (my) bug) - is
>    it fixed in tomcat 4.x series ?
> 
> Thanks,
> Alan
> 
> --
> To unsubscribe:   <mailto:[EMAIL PROTECTED]>
> For additional commands: <mailto:[EMAIL PROTECTED]>
> Troubles with the list: <mailto:[EMAIL PROTECTED]>
> 

--
To unsubscribe:   <mailto:[EMAIL PROTECTED]>
For additional commands: <mailto:[EMAIL PROTECTED]>
Troubles with the list: <mailto:[EMAIL PROTECTED]>

Reply via email to