Author: markt
Date: Wed Nov 20 14:02:28 2013
New Revision: 1543817

URL: http://svn.apache.org/r1543817
Log:
Remove dataMessageInProgress since it is no longer required along with the 
supporting code.

Modified:
    tomcat/trunk/java/org/apache/tomcat/websocket/LocalStrings.properties
    tomcat/trunk/java/org/apache/tomcat/websocket/WsRemoteEndpointImplBase.java

Modified: tomcat/trunk/java/org/apache/tomcat/websocket/LocalStrings.properties
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/tomcat/websocket/LocalStrings.properties?rev=1543817&r1=1543816&r2=1543817&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/tomcat/websocket/LocalStrings.properties 
(original)
+++ tomcat/trunk/java/org/apache/tomcat/websocket/LocalStrings.properties Wed 
Nov 20 14:02:28 2013
@@ -57,7 +57,7 @@ wsRemoteEndpoint.closedWriter=This metho
 wsRemoteEndpoint.changeType=When sending a fragmented message, all fragments 
bust be of the same type
 wsRemoteEndpoint.concurrentMessageSend=Messages may not be sent concurrently 
even when using the asynchronous send messages. The client must wait for the 
previous message to complete before sending the next.
 wsRemoteEndpoint.flushOnCloseFailed=Flushing batched messages before closing 
the session failed
-wsRemoteEndpoint.inProgress=Message will not be sent because the WebSocket 
session is currently sending another message
+wsRemoteEndpoint.inProgress=Unexpected state. Please report a bug. Message 
will not be sent because the WebSocket session is currently sending another 
message
 wsRemoteEndpoint.invalidEncoder=The specified encoder of type [{0}] could not 
be instantiated
 wsRemoteEndpoint.noEncoder=No encoder specified for object of class [{0}]
 wsRemoteEndpoint.wrongState=Remote endpoint was in state [{0}] but state [{1}] 
is required for this action

Modified: 
tomcat/trunk/java/org/apache/tomcat/websocket/WsRemoteEndpointImplBase.java
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/tomcat/websocket/WsRemoteEndpointImplBase.java?rev=1543817&r1=1543816&r2=1543817&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/tomcat/websocket/WsRemoteEndpointImplBase.java 
(original)
+++ tomcat/trunk/java/org/apache/tomcat/websocket/WsRemoteEndpointImplBase.java 
Wed Nov 20 14:02:28 2013
@@ -64,7 +64,6 @@ public abstract class WsRemoteEndpointIm
     private boolean messagePartInProgress = false;
     private final Queue<MessagePart> messagePartQueue = new ArrayDeque<>();
     private final Object messagePartLock = new Object();
-    private boolean dataMessageInProgress = false;
 
     // State
     private boolean closed = false;
@@ -265,14 +264,15 @@ public abstract class WsRemoteEndpointIm
                 }
             }
             if (messagePartInProgress) {
+                // This must be a Control message else the state machine would
+                // have thrown an IllegalStateException.
+                // Leave the check in place for now.
+                // TODO Remove this check if there are no reports of problems
                 if (!Util.isControl(opCode)) {
-                    if (dataMessageInProgress) {
-                        throw new IllegalStateException(
-                                sm.getString("wsRemoteEndpoint.inProgress"));
-                    } else {
-                        dataMessageInProgress = true;
-                    }
+                    throw new IllegalStateException(
+                            sm.getString("wsRemoteEndpoint.inProgress"));
                 }
+                // Add it to the queue
                 messagePartQueue.add(mp);
             } else {
                 messagePartInProgress = true;
@@ -282,16 +282,12 @@ public abstract class WsRemoteEndpointIm
     }
 
 
-    void endMessage(SendHandler handler, SendResult result,
-            boolean dataMessage) {
+    void endMessage(SendHandler handler, SendResult result) {
         synchronized (messagePartLock) {
 
             fragmented = nextFragmented;
             text = nextText;
 
-            if (dataMessage) {
-                dataMessageInProgress = false;
-            }
             MessagePart mpNext = messagePartQueue.poll();
             if (mpNext == null) {
                 messagePartInProgress = false;
@@ -411,8 +407,7 @@ public abstract class WsRemoteEndpointIm
             this.opCode = opCode;
             this.payload = payload;
             this.last = last;
-            this.handler = new EndMessageHandler(
-                    endpoint, handler, !Util.isControl(opCode));
+            this.handler = new EndMessageHandler(endpoint, handler);
         }
 
 
@@ -445,19 +440,17 @@ public abstract class WsRemoteEndpointIm
 
         private final WsRemoteEndpointImplBase endpoint;
         private final SendHandler handler;
-        private final boolean dataMessage;
 
         public EndMessageHandler(WsRemoteEndpointImplBase endpoint,
-                SendHandler handler, boolean dataMessage) {
+                SendHandler handler) {
             this.endpoint = endpoint;
             this.handler = handler;
-            this.dataMessage = dataMessage;
         }
 
 
         @Override
         public void onResult(SendResult result) {
-            endpoint.endMessage(handler, result, dataMessage);
+            endpoint.endMessage(handler, result);
         }
     }
 



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

Reply via email to