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