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/05/23 01:52:28 UTC
svn commit: r1485512 - in /tomcat/trunk/test/org/apache/tomcat/websocket:
TestWsRemoteEndpoint.java TestWsWebSocketContainer.java
TesterSingleMessageClient.java
Author: markt
Date: Wed May 22 23:52:28 2013
New Revision: 1485512
URL: http://svn.apache.org/r1485512
Log:
Refactor passing of the latch to improve robustness on test failure. Once the session is closed, user properties are no longer accessible.
Modified:
tomcat/trunk/test/org/apache/tomcat/websocket/TestWsRemoteEndpoint.java
tomcat/trunk/test/org/apache/tomcat/websocket/TestWsWebSocketContainer.java
tomcat/trunk/test/org/apache/tomcat/websocket/TesterSingleMessageClient.java
Modified: tomcat/trunk/test/org/apache/tomcat/websocket/TestWsRemoteEndpoint.java
URL: http://svn.apache.org/viewvc/tomcat/trunk/test/org/apache/tomcat/websocket/TestWsRemoteEndpoint.java?rev=1485512&r1=1485511&r2=1485512&view=diff
==============================================================================
--- tomcat/trunk/test/org/apache/tomcat/websocket/TestWsRemoteEndpoint.java (original)
+++ tomcat/trunk/test/org/apache/tomcat/websocket/TestWsRemoteEndpoint.java Wed May 22 23:52:28 2013
@@ -38,6 +38,7 @@ import org.apache.catalina.startup.Tomca
import org.apache.tomcat.websocket.TesterSingleMessageClient.AsyncHandler;
import org.apache.tomcat.websocket.TesterSingleMessageClient.AsyncText;
import org.apache.tomcat.websocket.TesterSingleMessageClient.TesterAnnotatedEndpoint;
+import org.apache.tomcat.websocket.TesterSingleMessageClient.TesterEndpoint;
import org.apache.tomcat.websocket.TesterSingleMessageClient.TesterProgrammaticEndpoint;
public class TestWsRemoteEndpoint extends TomcatBaseTest {
@@ -92,7 +93,9 @@ public class TestWsRemoteEndpoint extend
}
CountDownLatch latch = new CountDownLatch(1);
- wsSession.getUserProperties().put("latch", latch);
+ TesterEndpoint tep =
+ (TesterEndpoint) wsSession.getUserProperties().get("endpoint");
+ tep.setLatch(latch);
AsyncHandler<?> handler = new AsyncText(latch);
wsSession.addMessageHandler(handler);
Modified: tomcat/trunk/test/org/apache/tomcat/websocket/TestWsWebSocketContainer.java
URL: http://svn.apache.org/viewvc/tomcat/trunk/test/org/apache/tomcat/websocket/TestWsWebSocketContainer.java?rev=1485512&r1=1485511&r2=1485512&view=diff
==============================================================================
--- tomcat/trunk/test/org/apache/tomcat/websocket/TestWsWebSocketContainer.java (original)
+++ tomcat/trunk/test/org/apache/tomcat/websocket/TestWsWebSocketContainer.java Wed May 22 23:52:28 2013
@@ -52,6 +52,7 @@ import org.apache.tomcat.util.net.Tester
import org.apache.tomcat.websocket.TesterSingleMessageClient.BasicBinary;
import org.apache.tomcat.websocket.TesterSingleMessageClient.BasicHandler;
import org.apache.tomcat.websocket.TesterSingleMessageClient.BasicText;
+import org.apache.tomcat.websocket.TesterSingleMessageClient.TesterEndpoint;
import org.apache.tomcat.websocket.TesterSingleMessageClient.TesterProgrammaticEndpoint;
import org.apache.tomcat.websocket.server.Constants;
import org.apache.tomcat.websocket.server.WsListener;
@@ -235,7 +236,9 @@ public class TestWsWebSocketContainer ex
TesterEchoServer.Config.PATH_BASIC));
BasicHandler<?> handler;
CountDownLatch latch = new CountDownLatch(1);
- wsSession.getUserProperties().put("latch", latch);
+ TesterEndpoint tep =
+ (TesterEndpoint) wsSession.getUserProperties().get("endpoint");
+ tep.setLatch(latch);
if (isTextMessage) {
handler = new BasicText(latch);
} else {
Modified: tomcat/trunk/test/org/apache/tomcat/websocket/TesterSingleMessageClient.java
URL: http://svn.apache.org/viewvc/tomcat/trunk/test/org/apache/tomcat/websocket/TesterSingleMessageClient.java?rev=1485512&r1=1485511&r2=1485512&view=diff
==============================================================================
--- tomcat/trunk/test/org/apache/tomcat/websocket/TesterSingleMessageClient.java (original)
+++ tomcat/trunk/test/org/apache/tomcat/websocket/TesterSingleMessageClient.java Wed May 22 23:52:28 2013
@@ -33,21 +33,31 @@ import javax.websocket.Session;
public class TesterSingleMessageClient {
- public static class TesterProgrammaticEndpoint extends Endpoint {
+ public interface TesterEndpoint {
+ void setLatch(CountDownLatch latch);
+ }
+
+ public static class TesterProgrammaticEndpoint
+ extends Endpoint implements TesterEndpoint {
+
+ private CountDownLatch latch = null;
+
+ @Override
+ public void setLatch(CountDownLatch latch) {
+ this.latch = latch;
+ }
@Override
public void onClose(Session session, CloseReason closeReason) {
- clearLatch(session);
+ clearLatch();
}
@Override
public void onError(Session session, Throwable throwable) {
- clearLatch(session);
+ clearLatch();
}
- private void clearLatch(Session session) {
- CountDownLatch latch =
- (CountDownLatch) session.getUserProperties().get("latch");
+ private void clearLatch() {
if (latch != null) {
while (latch.getCount() > 0) {
latch.countDown();
@@ -57,27 +67,31 @@ public class TesterSingleMessageClient {
@Override
public void onOpen(Session session, EndpointConfig config) {
- // NO-OP
+ session.getUserProperties().put("endpoint", this);
}
}
@ClientEndpoint
- public static class TesterAnnotatedEndpoint {
+ public static class TesterAnnotatedEndpoint implements TesterEndpoint {
+
+ private CountDownLatch latch = null;
+
+ @Override
+ public void setLatch(CountDownLatch latch) {
+ this.latch = latch;
+ }
@OnClose
- public void onClose(Session session) {
- clearLatch(session);
+ public void onClose() {
+ clearLatch();
}
@OnError
- public void onError(Session session,
- @SuppressWarnings("unused") Throwable throwable) {
- clearLatch(session);
+ public void onError(@SuppressWarnings("unused") Throwable throwable) {
+ clearLatch();
}
- private void clearLatch(Session session) {
- CountDownLatch latch =
- (CountDownLatch) session.getUserProperties().get("latch");
+ private void clearLatch() {
if (latch != null) {
while (latch.getCount() > 0) {
latch.countDown();
@@ -86,8 +100,8 @@ public class TesterSingleMessageClient {
}
@OnOpen
- public void onOpen() {
- // NO-OP
+ public void onOpen(Session session) {
+ session.getUserProperties().put("endpoint", this);
}
}
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org
For additional commands, e-mail: dev-help@tomcat.apache.org