2014-06-04 15:47 GMT+04:00 Mark Thomas <[email protected]>: > On 04/06/2014 12:36, Konstantin Kolinko wrote: >> 2014-06-04 15:25 GMT+04:00 <[email protected]>: >>> Author: markt >>> Date: Wed Jun 4 11:25:51 2014 >>> New Revision: 1600109 >>> >>> URL: http://svn.apache.org/r1600109 >>> Log: >>> Refactoring. >>> Switch from a boolean to an Enum for error state so we can differentiate >>> between an error that requires the connection is closed after the current >>> response is completed and an error that requires that the connection is >>> closed immediately. >>> This commit should be a NO-OP. While the different error states are set, >>> the only the presence of an error (or not) is tested - i.e. no change from >>> the implementation prior to this commit. >>> Try to be consistent when an error occurs. Set the status code first (if >>> required), then set the error state and finally log (if required). >>> >>> Added: >>> tomcat/trunk/java/org/apache/coyote/ErrorState.java (with props) >>> Modified: >>> tomcat/trunk/java/org/apache/coyote/AbstractProcessor.java >>> tomcat/trunk/java/org/apache/coyote/ajp/AbstractAjpProcessor.java >>> tomcat/trunk/java/org/apache/coyote/ajp/AjpNio2Processor.java >>> tomcat/trunk/java/org/apache/coyote/ajp/AjpNioProcessor.java >>> tomcat/trunk/java/org/apache/coyote/http11/AbstractHttp11Processor.java >>> tomcat/trunk/java/org/apache/coyote/http11/Http11AprProcessor.java >>> tomcat/trunk/java/org/apache/coyote/http11/Http11Nio2Processor.java >>> tomcat/trunk/java/org/apache/coyote/http11/Http11NioProcessor.java >>> tomcat/trunk/java/org/apache/coyote/spdy/SpdyProcessor.java >>> >>> Modified: tomcat/trunk/java/org/apache/coyote/AbstractProcessor.java >>> URL: >>> http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/coyote/AbstractProcessor.java?rev=1600109&r1=1600108&r2=1600109&view=diff >>> ============================================================================== >>> --- tomcat/trunk/java/org/apache/coyote/AbstractProcessor.java (original) >>> +++ tomcat/trunk/java/org/apache/coyote/AbstractProcessor.java Wed Jun 4 >>> 11:25:51 2014 >>> @@ -40,9 +40,9 @@ public abstract class AbstractProcessor< >>> protected SocketWrapper<S> socketWrapper = null; >>> >>> /** >>> - * Error flag. >>> + * Error state for the request/response currently being processed. >>> */ >>> - protected boolean error; >>> + private ErrorState errorState; >> >> You have to assign ErrorState.NONE here by default. >> Otherwise I expect "setErrorState" to fail with NPE. > > Currently not required as resetErrorState() is always called before any > call to setErrorState().
For HTTP, AJP - OK. I see that resetErrorState() is called in process(). (I did not notice it at the first glance). For AJP : why resetErrorState() is not called in recycle()? (The HTTP processor calls it). For SpdyProcessor - broken. It never calls resetErrorState(). Best regards, Konstantin Kolinko --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
