Author: remm
Date: Fri Sep 11 17:10:38 2015
New Revision: 1702518

URL: http://svn.apache.org/r1702518
Log:
Since I'm experimenting with it, improve a bit the API.

Modified:
    tomcat/trunk/java/org/apache/tomcat/util/net/Nio2Endpoint.java
    tomcat/trunk/java/org/apache/tomcat/util/net/SocketWrapperBase.java

Modified: tomcat/trunk/java/org/apache/tomcat/util/net/Nio2Endpoint.java
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/tomcat/util/net/Nio2Endpoint.java?rev=1702518&r1=1702517&r2=1702518&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/tomcat/util/net/Nio2Endpoint.java (original)
+++ tomcat/trunk/java/org/apache/tomcat/util/net/Nio2Endpoint.java Fri Sep 11 
17:10:38 2015
@@ -1015,7 +1015,7 @@ public class Nio2Endpoint extends Abstra
                     if (complete) {
                         readPending.release();
                         state.state = currentState;
-                        if (completion) {
+                        if (completion && state.handler != null) {
                             
state.handler.completed(Long.valueOf(state.nBytes), state.attachment);
                         }
                     } else {
@@ -1038,8 +1038,10 @@ public class Nio2Endpoint extends Abstra
                     // If already closed, don't call onError and close again
                     return;
                 }
-                state.state = Nio2Endpoint.isInline() ? CompletionState.INLINE 
: CompletionState.DONE;
-                state.handler.failed(ioe, state.attachment);
+                state.state = Nio2Endpoint.isInline() ? CompletionState.ERROR 
: CompletionState.DONE;
+                if (state.handler != null) {
+                    state.handler.failed(ioe, state.attachment);
+                }
             }
         }
 
@@ -1068,7 +1070,7 @@ public class Nio2Endpoint extends Abstra
                     if (complete) {
                         writePending.release();
                         state.state = currentState;
-                        if (completion) {
+                        if (completion && state.handler != null) {
                             
state.handler.completed(Long.valueOf(state.nBytes), state.attachment);
                         }
                     } else {
@@ -1087,8 +1089,10 @@ public class Nio2Endpoint extends Abstra
                 }
                 Nio2SocketWrapper.this.setError(ioe);
                 writePending.release();
-                state.state = Nio2Endpoint.isInline() ? CompletionState.INLINE 
: CompletionState.DONE;
-                state.handler.failed(ioe, state.attachment);
+                state.state = Nio2Endpoint.isInline() ? CompletionState.ERROR 
: CompletionState.DONE;
+                if (state.handler != null) {
+                    state.handler.failed(ioe, state.attachment);
+                }
             }
         }
 

Modified: tomcat/trunk/java/org/apache/tomcat/util/net/SocketWrapperBase.java
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/tomcat/util/net/SocketWrapperBase.java?rev=1702518&r1=1702517&r2=1702518&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/tomcat/util/net/SocketWrapperBase.java 
(original)
+++ tomcat/trunk/java/org/apache/tomcat/util/net/SocketWrapperBase.java Fri Sep 
11 17:10:38 2015
@@ -643,6 +643,10 @@ public abstract class SocketWrapperBase<
          */
         INLINE,
         /**
+         * The operation completed inline but failed.
+         */
+        ERROR,
+        /**
          * The operation completed, but not inline.
          */
         DONE



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

Reply via email to