You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cxf.apache.org by ay...@apache.org on 2011/06/01 11:17:32 UTC
svn commit: r1130068 -
/cxf/trunk/systests/ws-specs/src/test/java/org/apache/cxf/systest/ws/rm/RetransmissionQueueTest.java
Author: ay
Date: Wed Jun 1 09:17:27 2011
New Revision: 1130068
URL: http://svn.apache.org/viewvc?rev=1130068&view=rev
Log:
[CXF-3563] WS-RM RetransmissionQueueTest to correctly simulate the testing condition
Modified:
cxf/trunk/systests/ws-specs/src/test/java/org/apache/cxf/systest/ws/rm/RetransmissionQueueTest.java
Modified: cxf/trunk/systests/ws-specs/src/test/java/org/apache/cxf/systest/ws/rm/RetransmissionQueueTest.java
URL: http://svn.apache.org/viewvc/cxf/trunk/systests/ws-specs/src/test/java/org/apache/cxf/systest/ws/rm/RetransmissionQueueTest.java?rev=1130068&r1=1130067&r2=1130068&view=diff
==============================================================================
--- cxf/trunk/systests/ws-specs/src/test/java/org/apache/cxf/systest/ws/rm/RetransmissionQueueTest.java (original)
+++ cxf/trunk/systests/ws-specs/src/test/java/org/apache/cxf/systest/ws/rm/RetransmissionQueueTest.java Wed Jun 1 09:17:27 2011
@@ -18,7 +18,7 @@
*/
package org.apache.cxf.systest.ws.rm;
-import java.io.IOException;
+import java.io.OutputStream;
import java.util.logging.Logger;
import javax.xml.ws.Endpoint;
@@ -32,6 +32,7 @@ import org.apache.cxf.greeter_control.Gr
import org.apache.cxf.interceptor.Fault;
import org.apache.cxf.interceptor.LoggingInInterceptor;
import org.apache.cxf.interceptor.LoggingOutInterceptor;
+import org.apache.cxf.interceptor.MessageSenderInterceptor;
import org.apache.cxf.message.Message;
import org.apache.cxf.phase.AbstractPhaseInterceptor;
import org.apache.cxf.phase.Phase;
@@ -113,22 +114,30 @@ public class RetransmissionQueueTest ext
bus.getOutFaultInterceptors().add(out);
+ bus.getExtension(RMManager.class).getRMAssertion().getBaseRetransmissionInterval()
+ .setMilliseconds(new Long(5000));
+
GreeterService gs = new GreeterService();
final Greeter greeter = gs.getGreeterPort();
updateAddressPort(greeter, DecoupledClientServerTest.PORT);
LOG.fine("Created greeter client.");
ConnectionHelper.setKeepAliveConnection(greeter, true);
+ RMManager manager = bus.getExtension(RMManager.class);
try {
greeter.greetMeOneWay("oneway");
} catch (Exception e) {
- fail("fault thrown after queued for retransmission");
+ // no exception shall be thrown when the message is queued for retransmission
+ fail("fault thrown after queued for retransmission: " + e);
}
+ // the message shall be in the queue
+ assertFalse("RetransmissionQueue empty", manager.getRetransmissionQueue().isEmpty());
+
tes.setWorking(true);
- long wait = 3000;
+ long wait = 10000;
while (wait > 0) {
long start = System.currentTimeMillis();
try {
@@ -138,14 +147,14 @@ public class RetransmissionQueueTest ext
}
wait -= System.currentTimeMillis() - start;
}
-
- RMManager manager = bus.getExtension(RMManager.class);
- boolean empty = manager.getRetransmissionQueue().isEmpty();
-
- assertTrue("RetransmissionQueue not cleared", empty);
+
+ // the message shall no longer be in the queue
+ assertTrue("RetransmissionQueue not empty", manager.getRetransmissionQueue().isEmpty());
}
-
+ /*
+ * an interceptor to trigger an error occuring at the sending phase.
+ */
static class TransmissionErrorSimulator extends AbstractPhaseInterceptor<Message> {
private boolean working;
@@ -153,7 +162,8 @@ public class RetransmissionQueueTest ext
* @param phase
*/
public TransmissionErrorSimulator() {
- super(Phase.WRITE);
+ super(Phase.PREPARE_SEND);
+ addAfter(MessageSenderInterceptor.class.getName());
}
/* (non-Javadoc)
@@ -169,10 +179,14 @@ public class RetransmissionQueueTest ext
// spare the message
} else if (!working) {
// triggers a simulated error
- throw new Fault(new IOException("simulated transmission error"));
+ try {
+ message.getContent(OutputStream.class).close();
+ } catch (Exception e) {
+ //
+ }
}
}
-
+
/**
* @return the working
*/