You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by ma...@apache.org on 2013/10/08 23:03:16 UTC

svn commit: r1530421 - /tomcat/trunk/java/org/apache/tomcat/websocket/WsFrameBase.java

Author: markt
Date: Tue Oct  8 21:03:15 2013
New Revision: 1530421

URL: http://svn.apache.org/r1530421
Log:
Fix infinite loop issue triggered by the test case for BZ 55638

Modified:
    tomcat/trunk/java/org/apache/tomcat/websocket/WsFrameBase.java

Modified: tomcat/trunk/java/org/apache/tomcat/websocket/WsFrameBase.java
URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/tomcat/websocket/WsFrameBase.java?rev=1530421&r1=1530420&r2=1530421&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/tomcat/websocket/WsFrameBase.java (original)
+++ tomcat/trunk/java/org/apache/tomcat/websocket/WsFrameBase.java Tue Oct  8 21:03:15 2013
@@ -97,7 +97,7 @@ public abstract class WsFrameBase {
     protected void processInputBuffer() throws IOException {
         while (true) {
             wsSession.updateLastActive();
-
+            System.out.println("pos0 readPos [" + readPos + "] writePos [" + writePos + "]");
             if (state == State.NEW_FRAME) {
                 if (!processInitialHeader()) {
                     break;
@@ -108,17 +108,21 @@ public abstract class WsFrameBase {
                     throw new IOException(sm.getString("wsFrame.closed"));
                 }
             }
+            System.out.println("pos1 readPos [" + readPos + "] writePos [" + writePos + "]");
             if (state == State.PARTIAL_HEADER) {
                 if (!processRemainingHeader()) {
                     break;
                 }
             }
+            System.out.println("pos2 readPos [" + readPos + "] writePos [" + writePos + "]");
             if (state == State.DATA) {
                 if (!processData()) {
                     break;
                 }
             }
+            System.out.println("pos3 readPos [" + readPos + "] writePos [" + writePos + "]");
         }
+        System.out.println("pos4 readPos [" + readPos + "] writePos [" + writePos + "]");
     }
 
 
@@ -266,14 +270,16 @@ public abstract class WsFrameBase {
 
 
     private boolean processData() throws IOException {
-        checkRoomPayload();
+        boolean result;
         if (Util.isControl(opCode)) {
-            return processDataControl();
+            result = processDataControl();
         } else if (textMessage) {
-            return processDataText();
+            result = processDataText();
         } else {
-            return processDataBinary();
+            result = processDataBinary();
         }
+        checkRoomPayload();
+        return result;
     }
 
 



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