Author: remm
Date: Fri May 30 07:48:34 2014
New Revision: 1598480

URL: http://svn.apache.org/r1598480
Log:
Remove listener calls optimizations, they skip a lot of things which could be 
useful and ultimately it doesn't work that well.

Modified:
    
tomcat/trunk/java/org/apache/coyote/http11/upgrade/Nio2ServletInputStream.java
    
tomcat/trunk/java/org/apache/coyote/http11/upgrade/Nio2ServletOutputStream.java

Modified: 
tomcat/trunk/java/org/apache/coyote/http11/upgrade/Nio2ServletInputStream.java
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/coyote/http11/upgrade/Nio2ServletInputStream.java?rev=1598480&r1=1598479&r2=1598480&view=diff
==============================================================================
--- 
tomcat/trunk/java/org/apache/coyote/http11/upgrade/Nio2ServletInputStream.java 
(original)
+++ 
tomcat/trunk/java/org/apache/coyote/http11/upgrade/Nio2ServletInputStream.java 
Fri May 30 07:48:34 2014
@@ -40,7 +40,7 @@ public class Nio2ServletInputStream exte
     private final CompletionHandler<Integer, SocketWrapper<Nio2Channel>> 
completionHandler;
     private boolean flipped = false;
     private volatile boolean readPending = false;
-    private volatile boolean fireListener = false;
+    private volatile boolean interest = false;
 
     public Nio2ServletInputStream(SocketWrapper<Nio2Channel> wrapper, 
AbstractEndpoint<Nio2Channel> endpoint0) {
         this.endpoint = endpoint0;
@@ -49,31 +49,21 @@ public class Nio2ServletInputStream exte
         this.completionHandler = new CompletionHandler<Integer, 
SocketWrapper<Nio2Channel>>() {
             @Override
             public void completed(Integer nBytes, SocketWrapper<Nio2Channel> 
attachment) {
-                boolean fire = false;
+                boolean notify = false;
                 synchronized (completionHandler) {
                     if (nBytes.intValue() < 0) {
                         failed(new EOFException(), attachment);
-                        return;
-                    }
-                    readPending = false;
-                    fire = fireListener;
-                    fireListener = false;
-                }
-                if (nBytes.intValue() > 0) {
-                    if (!Nio2Endpoint.isInline() && fire) {
-                        try {
-                            onDataAvailable();
-                        } catch (IOException e) {
-                            failed(e, attachment);
+                    } else {
+                        readPending = false;
+                        if (interest && !Nio2Endpoint.isInline()) {
+                            interest = false;
+                            notify = true;
                         }
                     }
-                } else {
-                    try {
-                        onAllDataRead();
-                    } catch (IOException e) {
-                        failed(e, attachment);
-                    }
                 }
+                if (notify) {
+                    endpoint.processSocket(attachment, SocketStatus.OPEN_READ, 
false);
+                } 
             }
             @Override
             public void failed(Throwable exc, SocketWrapper<Nio2Channel> 
attachment) {
@@ -93,7 +83,7 @@ public class Nio2ServletInputStream exte
     protected boolean doIsReady() throws IOException {
         synchronized (completionHandler) {
             if (readPending) {
-                fireListener = true;
+                interest = true;
                 return false;
             }
             ByteBuffer readBuffer = channel.getBufHandler().getReadBuffer();
@@ -116,7 +106,7 @@ public class Nio2ServletInputStream exte
                     flipped = true;
                 }
             } else {
-                fireListener = true;
+                interest = true;
             }
             return isReady;
         }

Modified: 
tomcat/trunk/java/org/apache/coyote/http11/upgrade/Nio2ServletOutputStream.java
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/coyote/http11/upgrade/Nio2ServletOutputStream.java?rev=1598480&r1=1598479&r2=1598480&view=diff
==============================================================================
--- 
tomcat/trunk/java/org/apache/coyote/http11/upgrade/Nio2ServletOutputStream.java 
(original)
+++ 
tomcat/trunk/java/org/apache/coyote/http11/upgrade/Nio2ServletOutputStream.java 
Fri May 30 07:48:34 2014
@@ -58,13 +58,7 @@ public class Nio2ServletOutputStream ext
                 } else {
                     writePending.release();
                     if (!Nio2Endpoint.isInline()) {
-                        try {
-                            onWritePossible();
-                        } catch (IOException e) {
-                            socketWrapper.setError(true);
-                            onError(e);
-                            endpoint.processSocket(socketWrapper, 
SocketStatus.ERROR, false);
-                        }
+                        endpoint.processSocket(socketWrapper, 
SocketStatus.OPEN_WRITE, false);
                     }
                 }
             }



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

Reply via email to