Author: markt
Date: Thu Sep 17 08:56:20 2015
New Revision: 1703534

URL: http://svn.apache.org/r1703534
Log:
Code review / refactoring in light of 
https://bz.apache.org/bugzilla/show_bug.cgi?id=58390
error is only used by NIO2 so move it to Nio2SocketWrapper

Modified:
    tomcat/trunk/java/org/apache/tomcat/util/net/Nio2Endpoint.java
    tomcat/trunk/java/org/apache/tomcat/util/net/NioEndpoint.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=1703534&r1=1703533&r2=1703534&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/tomcat/util/net/Nio2Endpoint.java (original)
+++ tomcat/trunk/java/org/apache/tomcat/util/net/Nio2Endpoint.java Thu Sep 17 
08:56:20 2015
@@ -577,6 +577,7 @@ public class Nio2Endpoint extends Abstra
         private final Semaphore writePending = new Semaphore(1);
         private boolean writeInterest = false; // Guarded by 
writeCompletionHandler
         private boolean writeNotify = false;
+        private volatile IOException error = null;
 
         private CompletionHandler<Integer, SocketWrapperBase<Nio2Channel>> 
awaitBytesHandler
                 = new CompletionHandler<Integer, 
SocketWrapperBase<Nio2Channel>>() {
@@ -847,6 +848,9 @@ public class Nio2Endpoint extends Abstra
         public void setSendfileData(SendfileData sf) { this.sendfileData = sf; 
}
         public SendfileData getSendfileData() { return this.sendfileData; }
 
+        public IOException getError() { return error; }
+        public void setError(IOException error) { this.error = error; }
+
 
         @Override
         public boolean isReadyForRead() throws IOException {
@@ -1250,6 +1254,11 @@ public class Nio2Endpoint extends Abstra
 
         @Override
         protected void flushBlocking() throws IOException {
+            if (getError() != null) {
+                throw getError();
+            }
+
+
             // Before doing a blocking flush, make sure that any pending non
             // blocking write has completed.
             try {
@@ -1266,7 +1275,11 @@ public class Nio2Endpoint extends Abstra
         }
 
         @Override
-        protected boolean flushNonBlocking() {
+        protected boolean flushNonBlocking() throws IOException {
+            if (getError() != null) {
+                throw getError();
+            }
+
             return flushNonBlocking(false);
         }
 

Modified: tomcat/trunk/java/org/apache/tomcat/util/net/NioEndpoint.java
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/tomcat/util/net/NioEndpoint.java?rev=1703534&r1=1703533&r2=1703534&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/tomcat/util/net/NioEndpoint.java (original)
+++ tomcat/trunk/java/org/apache/tomcat/util/net/NioEndpoint.java Thu Sep 17 
08:56:20 2015
@@ -1071,8 +1071,6 @@ public class NioEndpoint extends Abstrac
                         NioSocketWrapper ka = (NioSocketWrapper) 
key.attachment();
                         if ( ka == null ) {
                             cancelledKey(key); //we don't support any keys 
without attachments
-                        } else if ( ka.getError() != null) {
-                            cancelledKey(key);//TODO this is not yet being used
                         } else if ((ka.interestOps()&SelectionKey.OP_READ) == 
SelectionKey.OP_READ ||
                                   (ka.interestOps()&SelectionKey.OP_WRITE) == 
SelectionKey.OP_WRITE) {
                             if (close) {

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=1703534&r1=1703533&r2=1703534&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/tomcat/util/net/SocketWrapperBase.java 
(original)
+++ tomcat/trunk/java/org/apache/tomcat/util/net/SocketWrapperBase.java Thu Sep 
17 08:56:20 2015
@@ -46,7 +46,6 @@ public abstract class SocketWrapperBase<
     private volatile long readTimeout = -1;
     private volatile long writeTimeout = -1;
 
-    private IOException error = null;
     private volatile int keepAliveLeft = 100;
     private volatile boolean async = false;
     private boolean keptAlive = false;
@@ -199,8 +198,6 @@ public abstract class SocketWrapperBase<
     }
 
 
-    public IOException getError() { return error; }
-    public void setError(IOException error) { this.error = error; }
     public void setKeepAliveLeft(int keepAliveLeft) { this.keepAliveLeft = 
keepAliveLeft;}
     public int decrementKeepAlive() { return (--keepAliveLeft);}
     public boolean isKeptAlive() {return keptAlive;}
@@ -484,10 +481,6 @@ public abstract class SocketWrapperBase<
             return false;
         }
 
-        if (getError() != null) {
-            throw getError();
-        }
-
         boolean result = false;
         if (block) {
             // A blocking flush will always empty the buffer.



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

Reply via email to