[jboss-cvs] JBoss Messaging SVN: r1812 - in trunk: src/main/org/jboss/jms/client src/main/org/jboss/jms/client/container src/main/org/jboss/jms/client/remoting tests tests/src/org/jboss/test/messaging/jms/crash
jboss-cvs-commits at lists.jboss.org
jboss-cvs-commits at lists.jboss.org
Mon Dec 18 15:08:22 EST 2006
Author: timfox
Date: 2006-12-18 15:08:15 -0500 (Mon, 18 Dec 2006)
New Revision: 1812
Modified:
trunk/src/main/org/jboss/jms/client/JBossConnection.java
trunk/src/main/org/jboss/jms/client/container/SessionAspect.java
trunk/src/main/org/jboss/jms/client/remoting/JMSRemotingConnection.java
trunk/tests/build.xml
trunk/tests/src/org/jboss/test/messaging/jms/crash/ClientCrashTwoConnectionsTest.java
trunk/tests/src/org/jboss/test/messaging/jms/crash/CreateTwoClientOnServerCommand.java
Log:
Fix tests
Modified: trunk/src/main/org/jboss/jms/client/JBossConnection.java
===================================================================
--- trunk/src/main/org/jboss/jms/client/JBossConnection.java 2006-12-18 18:14:53 UTC (rev 1811)
+++ trunk/src/main/org/jboss/jms/client/JBossConnection.java 2006-12-18 20:08:15 UTC (rev 1812)
@@ -45,10 +45,12 @@
import javax.jms.XATopicSession;
import org.jboss.jms.client.delegate.ClientConnectionDelegate;
+import org.jboss.jms.client.remoting.JMSRemotingConnection;
import org.jboss.jms.client.state.ConnectionState;
import org.jboss.jms.delegate.ConnectionDelegate;
import org.jboss.jms.delegate.SessionDelegate;
import org.jboss.jms.util.ThreadContextClassLoaderChanger;
+import org.jboss.logging.Logger;
/**
* @author <a href="mailto:ovidiu at jboss.org">Ovidiu Feodorov</a>
@@ -64,6 +66,9 @@
// Constants -----------------------------------------------------
private static final long serialVersionUID = -3715868654823177898L;
+
+ private static final Logger log = Logger.getLogger(JBossConnection.class);
+
static final int TYPE_GENERIC_CONNECTION = 0;
static final int TYPE_QUEUE_CONNECTION = 1;
@@ -225,7 +230,7 @@
public String getRemotingClientSessionId()
{
ConnectionState state = (ConnectionState)((ClientConnectionDelegate)delegate).getState();
-
+
return state.getRemotingConnection().getInvokingClient().getSessionId();
}
Modified: trunk/src/main/org/jboss/jms/client/container/SessionAspect.java
===================================================================
--- trunk/src/main/org/jboss/jms/client/container/SessionAspect.java 2006-12-18 18:14:53 UTC (rev 1811)
+++ trunk/src/main/org/jboss/jms/client/container/SessionAspect.java 2006-12-18 20:08:15 UTC (rev 1812)
@@ -130,19 +130,20 @@
// delivery count information from client to server. We could just do this on the server but
// we would lose delivery count info.
+ // CLIENT_ACKNOWLEDGE cannot be used with MDBs so is always safe to cancel on this session
+
List cancels = new ArrayList();
for(Iterator i = state.getClientAckList().iterator(); i.hasNext(); )
{
DeliveryInfo ack = (DeliveryInfo)i.next();
+
DefaultCancel cancel = new DefaultCancel(ack.getMessageProxy().getDeliveryId(), ack.getMessageProxy().getDeliveryCount());
cancels.add(cancel);
}
if (!cancels.isEmpty())
- {
- //CLIENT_ACKNOWLEDGE cannot be used with MDBs so is always safe to cancel on this session
-
+ {
del.cancelDeliveries(cancels);
}
@@ -181,6 +182,12 @@
if (trace) { log.trace(this + " delivery id: " + info.getDeliveryId() + " added to client ack list"); }
+ //Sanity check
+ if (info.getConnectionConsumerSession() != null)
+ {
+ throw new IllegalStateException("CLIENT_ACKNOWLEDGE cannot be used with a connection consumer");
+ }
+
state.getClientAckList().add(info);
//We can return immediately
@@ -193,6 +200,7 @@
//We collect the single acknowledgement in the state.
//Currently DUPS_OK is treated the same as AUTO_ACKNOWLDGE
//Also XA sessions not enlisted in a global tx are treated as AUTO_ACKNOWLEDGE
+
if (trace) { log.trace(this + " delivery id: " + info.getDeliveryId() + " added to client ack member"); }
Modified: trunk/src/main/org/jboss/jms/client/remoting/JMSRemotingConnection.java
===================================================================
--- trunk/src/main/org/jboss/jms/client/remoting/JMSRemotingConnection.java 2006-12-18 18:14:53 UTC (rev 1811)
+++ trunk/src/main/org/jboss/jms/client/remoting/JMSRemotingConnection.java 2006-12-18 20:08:15 UTC (rev 1812)
@@ -169,7 +169,7 @@
client.removeListener(callbackManager);
client.disconnect();
- client=null;
+ client = null;
log.debug(this + " closed");
}
Modified: trunk/tests/build.xml
===================================================================
--- trunk/tests/build.xml 2006-12-18 18:14:53 UTC (rev 1811)
+++ trunk/tests/build.xml 2006-12-18 20:08:15 UTC (rev 1812)
@@ -799,7 +799,6 @@
</target>
-
<target name="crash-tests" depends="tests-jar, prepare-testdirs, clear-test-logs"
description="Runs crash tests">
@@ -847,7 +846,6 @@
<!--
ClientCrashTwoConnectionsTest over "http"
-->
-
<antcall target="start-rmi-server">
<param name="test.remoting" value="http"/>
<param name="remote.server.test.logfile.suffix" value="remote-crash"/>
Modified: trunk/tests/src/org/jboss/test/messaging/jms/crash/ClientCrashTwoConnectionsTest.java
===================================================================
--- trunk/tests/src/org/jboss/test/messaging/jms/crash/ClientCrashTwoConnectionsTest.java 2006-12-18 18:14:53 UTC (rev 1811)
+++ trunk/tests/src/org/jboss/test/messaging/jms/crash/ClientCrashTwoConnectionsTest.java 2006-12-18 20:08:15 UTC (rev 1812)
@@ -120,6 +120,9 @@
log.info("server(1) = " + remotingSessionId[1]);
log.info("we have = " + ((SimpleConnectionManager)cm).getClients().size() + " clients registered on SimpleconnectionManager");
+ assertFalse(cm.containsSession(remotingSessionId[0]));
+ assertTrue(cm.containsSession(remotingSessionId[1]));
+
// Now we should have a client connection from the remote server to the local server
remoteServer.kill();
log.info("killed remote server");
@@ -129,7 +132,7 @@
// See if we still have a connection with this id
- //Connection state shouldn't have been cleared up by now
+ //Connection state should have been cleared up by now
assertFalse(cm.containsSession(remotingSessionId[0]));
assertFalse(cm.containsSession(remotingSessionId[1]));
Modified: trunk/tests/src/org/jboss/test/messaging/jms/crash/CreateTwoClientOnServerCommand.java
===================================================================
--- trunk/tests/src/org/jboss/test/messaging/jms/crash/CreateTwoClientOnServerCommand.java 2006-12-18 18:14:53 UTC (rev 1811)
+++ trunk/tests/src/org/jboss/test/messaging/jms/crash/CreateTwoClientOnServerCommand.java 2006-12-18 20:08:15 UTC (rev 1812)
@@ -29,6 +29,8 @@
import javax.jms.Topic;
import org.jboss.jms.client.JBossConnection;
+import org.jboss.jms.client.container.SessionAspect;
+import org.jboss.logging.Logger;
import org.jboss.test.messaging.tools.jmx.rmi.Command;
/**
@@ -45,6 +47,8 @@
{
private static final long serialVersionUID = -997724797145152821L;
+ private static final Logger log = Logger.getLogger(CreateTwoClientOnServerCommand.class);
+
private ConnectionFactory cf;
private boolean retainReference;
@@ -81,11 +85,12 @@
conn2.setClientID("test2");
conn2.start();
- conn1.close();
-
String arrays[] = new String[2];
arrays[0] = ((JBossConnection)conn1).getRemotingClientSessionId();
arrays[1] = ((JBossConnection)conn2).getRemotingClientSessionId();
+
+ conn1.close();
+
// Return the remoting client session id for the connection
return arrays;
More information about the jboss-cvs-commits
mailing list