Author: markt
Date: Tue Feb 21 21:13:54 2012
New Revision: 1292030

URL: http://svn.apache.org/viewvc?rev=1292030&view=rev
Log:
Fix test case failure. flip Byte/Char buffers in the right places.
Rename method since it ma be writing a binary or text message.

Modified:
    tomcat/trunk/java/org/apache/catalina/websocket/MessageInbound.java
    tomcat/trunk/java/org/apache/catalina/websocket/WsOutbound.java

Modified: tomcat/trunk/java/org/apache/catalina/websocket/MessageInbound.java
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/websocket/MessageInbound.java?rev=1292030&r1=1292029&r2=1292030&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/catalina/websocket/MessageInbound.java 
(original)
+++ tomcat/trunk/java/org/apache/catalina/websocket/MessageInbound.java Tue Feb 
21 21:13:54 2012
@@ -56,8 +56,7 @@ public abstract class MessageInbound ext
             }
             read = r.read(cb.array(), cb.position(), cb.remaining());
         }
-        cb.limit(cb.position());
-        cb.position(0);
+        cb.flip();
         onTextMessage(cb);
         cb.clear();
     }

Modified: tomcat/trunk/java/org/apache/catalina/websocket/WsOutbound.java
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/websocket/WsOutbound.java?rev=1292030&r1=1292029&r2=1292030&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/catalina/websocket/WsOutbound.java (original)
+++ tomcat/trunk/java/org/apache/catalina/websocket/WsOutbound.java Tue Feb 21 
21:13:54 2012
@@ -80,7 +80,7 @@ public class WsOutbound {
             flush();
         }
         text = Boolean.FALSE;
-        doWriteBinary(msgBb, true);
+        doWriteBytes(msgBb, true);
     }
 
 
@@ -104,9 +104,11 @@ public class WsOutbound {
             return;
         }
         if (text.booleanValue()) {
+            cb.flip();
             doWriteText(cb, finalFragment);
         } else {
-            doWriteBinary(bb, finalFragment);
+            bb.flip();
+            doWriteBytes(bb, finalFragment);
         }
     }
 
@@ -157,7 +159,15 @@ public class WsOutbound {
         upgradeOutbound.flush();
     }
 
-    protected void doWriteBinary(ByteBuffer buffer, boolean finalFragment)
+    /**
+     * Writes the provided bytes as the payload in a new WebSocket frame.
+     *
+     * @param buffer        The bytes to include in the payload.
+     * @param finalFragment Do these bytes represent the final fragment of a
+     *                      WebSocket message?
+     * @throws IOException
+     */
+    protected void doWriteBytes(ByteBuffer buffer, boolean finalFragment)
             throws IOException {
 
         // Work out the first byte
@@ -216,13 +226,13 @@ public class WsOutbound {
             B2CConverter.UTF_8.newEncoder().encode(buffer, bb, true);
             bb.flip();
             if (buffer.hasRemaining()) {
-                doWriteBinary(bb, false);
+                doWriteBytes(bb, false);
             } else {
-                doWriteBinary(bb, finalFragment);
+                doWriteBytes(bb, finalFragment);
             }
         } while (buffer.hasRemaining());
 
-        // Reset
+        // Reset - bb will be cleared in doWriteBytes()
         cb.clear();
     }
 }



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

Reply via email to