Author: remm
Date: Thu Feb 26 09:14:49 2015
New Revision: 1662396
URL: http://svn.apache.org/r1662396
Log:
Revert after CI test run.
Modified:
tomcat/trunk/java/org/apache/tomcat/websocket/server/WsRemoteEndpointImplServer.java
Modified:
tomcat/trunk/java/org/apache/tomcat/websocket/server/WsRemoteEndpointImplServer.java
URL:
http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/tomcat/websocket/server/WsRemoteEndpointImplServer.java?rev=1662396&r1=1662395&r2=1662396&view=diff
==============================================================================
---
tomcat/trunk/java/org/apache/tomcat/websocket/server/WsRemoteEndpointImplServer.java
(original)
+++
tomcat/trunk/java/org/apache/tomcat/websocket/server/WsRemoteEndpointImplServer.java
Thu Feb 26 09:14:49 2015
@@ -59,7 +59,6 @@ public class WsRemoteEndpointImplServer
private volatile long timeoutExpiry = -1;
private volatile boolean close;
- private final Object lock = new Object();
public WsRemoteEndpointImplServer(ServletInputStream sis,
ServletOutputStream sos,
WsServerContainer serverContainer) {
@@ -87,54 +86,52 @@ public class WsRemoteEndpointImplServer
public void onWritePossible(boolean useDispatch) {
- synchronized (lock) {
- ByteBuffer[] buffers = this.buffers;
- if (buffers == null) {
- // Servlet 3.1 will call the write listener once even if
nothing
- // was written
- return;
- }
- boolean complete = false;
- try {
- // If this is false there will be a call back when it is true
- while (sos.isReady()) {
- complete = true;
- for (ByteBuffer buffer : buffers) {
- if (buffer.hasRemaining()) {
- complete = false;
- sos.write(buffer.array(), buffer.arrayOffset(),
- buffer.limit());
- buffer.position(buffer.limit());
- break;
- }
+ ByteBuffer[] buffers = this.buffers;
+ if (buffers == null) {
+ // Servlet 3.1 will call the write listener once even if nothing
+ // was written
+ return;
+ }
+ boolean complete = false;
+ try {
+ // If this is false there will be a call back when it is true
+ while (sos.isReady()) {
+ complete = true;
+ for (ByteBuffer buffer : buffers) {
+ if (buffer.hasRemaining()) {
+ complete = false;
+ sos.write(buffer.array(), buffer.arrayOffset(),
+ buffer.limit());
+ buffer.position(buffer.limit());
+ break;
}
+ }
+ if (complete) {
+ sos.flush();
+ complete = sos.isReady();
if (complete) {
- sos.flush();
- complete = sos.isReady();
- if (complete) {
- wsWriteTimeout.unregister(this);
- clearHandler(null, useDispatch);
- if (close) {
- close();
- }
+ wsWriteTimeout.unregister(this);
+ clearHandler(null, useDispatch);
+ if (close) {
+ close();
}
- break;
}
+ break;
}
- } catch (IOException | IllegalStateException e) {
- wsWriteTimeout.unregister(this);
- clearHandler(e, useDispatch);
- close();
}
+ } catch (IOException | IllegalStateException e) {
+ wsWriteTimeout.unregister(this);
+ clearHandler(e, useDispatch);
+ close();
+ }
- if (!complete) {
- // Async write is in progress
- long timeout = getSendTimeout();
- if (timeout > 0) {
- // Register with timeout thread
- timeoutExpiry = timeout + System.currentTimeMillis();
- wsWriteTimeout.register(this);
- }
+ if (!complete) {
+ // Async write is in progress
+ long timeout = getSendTimeout();
+ if (timeout > 0) {
+ // Register with timeout thread
+ timeoutExpiry = timeout + System.currentTimeMillis();
+ wsWriteTimeout.register(this);
}
}
}
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]