Re: svn commit: r1600109 - in /tomcat/trunk/java/org/apache/coyote: ./ ajp/ http11/ spdy/

2014-06-04 Thread Konstantin Kolinko
2014-06-04 15:25 GMT+04:00  ma...@apache.org:
 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=1600109r1=1600108r2=1600109view=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 SocketWrapperS 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.

 +protected void setErrorState(ErrorState errorState) {
 +this.errorState = this.errorState.getMostSevere(errorState);
 +}
 +
 +
 +protected void resetErrorState() {
 +errorState = ErrorState.NONE;
 +}
 +
 +
 +protected ErrorState getErrorState() {
 +return errorState;
 +}

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



Re: svn commit: r1600109 - in /tomcat/trunk/java/org/apache/coyote: ./ ajp/ http11/ spdy/

2014-06-04 Thread Mark Thomas
On 04/06/2014 12:36, Konstantin Kolinko wrote:
 2014-06-04 15:25 GMT+04:00  ma...@apache.org:
 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=1600109r1=1600108r2=1600109view=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 SocketWrapperS 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().

Mark


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



Re: svn commit: r1600109 - in /tomcat/trunk/java/org/apache/coyote: ./ ajp/ http11/ spdy/

2014-06-04 Thread Konstantin Kolinko
2014-06-04 15:47 GMT+04:00 Mark Thomas ma...@apache.org:
 On 04/06/2014 12:36, Konstantin Kolinko wrote:
 2014-06-04 15:25 GMT+04:00  ma...@apache.org:
 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=1600109r1=1600108r2=1600109view=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 SocketWrapperS 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: dev-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org



Re: svn commit: r1600109 - in /tomcat/trunk/java/org/apache/coyote: ./ ajp/ http11/ spdy/

2014-06-04 Thread Mark Thomas
On 04/06/2014 12:57, Konstantin Kolinko wrote:
 2014-06-04 15:47 GMT+04:00 Mark Thomas ma...@apache.org:
 On 04/06/2014 12:36, Konstantin Kolinko wrote:
 2014-06-04 15:25 GMT+04:00  ma...@apache.org:
 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=1600109r1=1600108r2=1600109view=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 SocketWrapperS 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).

Because that is what the code did previously. I deliberately opted not
to do several refactorings so the commit more obviously introduced no
functional changes.

From a consistency point of view, I think that call makes more sense in
recycle than in process() which means errorState will need to be
initialised.

 For SpdyProcessor - broken. It never calls resetErrorState().

Agreed. This will be fixed as a side-effect of the changes above.

Mark


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



Re: svn commit: r1600109 - in /tomcat/trunk/java/org/apache/coyote: ./ ajp/ http11/ spdy/

2014-06-04 Thread Konstantin Kolinko
2014-06-04 16:52 GMT+04:00 Mark Thomas ma...@apache.org:
 On 04/06/2014 12:57, Konstantin Kolinko wrote:
 2014-06-04 15:47 GMT+04:00 Mark Thomas ma...@apache.org:
 On 04/06/2014 12:36, Konstantin Kolinko wrote:
 2014-06-04 15:25 GMT+04:00  ma...@apache.org:
 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
  /**
 - * 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).

 Because that is what the code did previously. I deliberately opted not
 to do several refactorings so the commit more obviously introduced no
 functional changes.

 From a consistency point of view, I think that call makes more sense in
 recycle than in process() which means errorState will need to be
 initialised.

 For SpdyProcessor - broken. It never calls resetErrorState().

 Agreed. This will be fixed as a side-effect of the changes above.


Ack. I see. Thank you.

Best regards,
Konstantin Kolinko

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