Author: remy.maucherat(a)jboss.com
Date: 2014-06-05 17:50:35 -0400 (Thu, 05 Jun 2014)
New Revision: 2447
Modified:
branches/7.4.x/src/main/java/org/apache/tomcat/websocket/WsRemoteEndpointImplBase.java
branches/7.4.x/src/main/java/org/apache/tomcat/websocket/server/WsRemoteEndpointImplServer.java
Log:
BZ1100491: Cleanup (better looking sync).
Modified:
branches/7.4.x/src/main/java/org/apache/tomcat/websocket/WsRemoteEndpointImplBase.java
===================================================================
---
branches/7.4.x/src/main/java/org/apache/tomcat/websocket/WsRemoteEndpointImplBase.java 2014-06-05
21:49:52 UTC (rev 2446)
+++
branches/7.4.x/src/main/java/org/apache/tomcat/websocket/WsRemoteEndpointImplBase.java 2014-06-05
21:50:35 UTC (rev 2447)
@@ -671,8 +671,7 @@
}
public void write() {
- // FIXME: this sync should be useless
- synchronized (buffer) {
+ synchronized (endpoint) {
buffer.clear();
CoderResult cr = encoder.encode(message, buffer, true);
if (cr.isError()) {
Modified:
branches/7.4.x/src/main/java/org/apache/tomcat/websocket/server/WsRemoteEndpointImplServer.java
===================================================================
---
branches/7.4.x/src/main/java/org/apache/tomcat/websocket/server/WsRemoteEndpointImplServer.java 2014-06-05
21:49:52 UTC (rev 2446)
+++
branches/7.4.x/src/main/java/org/apache/tomcat/websocket/server/WsRemoteEndpointImplServer.java 2014-06-05
21:50:35 UTC (rev 2447)
@@ -81,7 +81,7 @@
}
- public void onWritePossible(boolean useDispatch, boolean block) {
+ public synchronized void onWritePossible(boolean useDispatch, boolean block) {
if (buffers == null) {
// Servlet 3.1 will call the write listener once even if nothing
// was written
@@ -93,16 +93,12 @@
while (block || sos.isReady()) {
complete = true;
for (ByteBuffer buffer : buffers) {
- // FIXME: this sync should be useless, an unwanted onWritePossible
- // seems to be causing this
- synchronized (buffer) {
- if (buffer.hasRemaining()) {
- complete = false;
- sos.write(buffer.array(), buffer.arrayOffset(),
- buffer.limit());
- buffer.position(buffer.limit());
- break;
- }
+ if (buffer.hasRemaining()) {
+ complete = false;
+ sos.write(buffer.array(), buffer.arrayOffset(),
+ buffer.limit());
+ buffer.position(buffer.limit());
+ break;
}
}
if (complete) {