[jboss-cvs] JBoss Messaging SVN: r4442 - in trunk: tests/src/org/jboss/messaging/tests/unit/core/client/impl and 1 other directory.
jboss-cvs-commits at lists.jboss.org
jboss-cvs-commits at lists.jboss.org
Thu Jun 12 06:23:05 EDT 2008
Author: timfox
Date: 2008-06-12 06:23:04 -0400 (Thu, 12 Jun 2008)
New Revision: 4442
Modified:
trunk/src/main/org/jboss/messaging/core/client/impl/ClientSessionImpl.java
trunk/tests/src/org/jboss/messaging/tests/unit/core/client/impl/ClientSessionImplTest.java
Log:
Fixed test
Modified: trunk/src/main/org/jboss/messaging/core/client/impl/ClientSessionImpl.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/client/impl/ClientSessionImpl.java 2008-06-12 09:42:54 UTC (rev 4441)
+++ trunk/src/main/org/jboss/messaging/core/client/impl/ClientSessionImpl.java 2008-06-12 10:23:04 UTC (rev 4442)
@@ -486,22 +486,17 @@
try
{
closeChildren();
-
+
if (cacheProducers)
{
- for (ClientProducer producer: producerCache.values())
- {
- producer.close();
- }
-
- producerCache.clear();
+ producerCache.clear();
}
-
+
//Make sure any remaining acks make it to the server
- acknowledgeInternal(false);
+ acknowledgeInternal(false);
- remotingConnection.sendBlocking(serverTargetID, serverTargetID, new EmptyPacket(EmptyPacket.CLOSE));
+ remotingConnection.sendBlocking(serverTargetID, serverTargetID, new EmptyPacket(EmptyPacket.CLOSE));
}
finally
{
@@ -592,8 +587,6 @@
//2. cancel all deliveries on server but not in tx
- log.info("Removing consumer");
-
remotingConnection.sendOneWay(serverTargetID, serverTargetID, new SessionCancelMessage(-1, false));
}
@@ -873,7 +866,7 @@
private void acknowledgeInternal(final boolean block) throws MessagingException
{
if (acked)
- {
+ {
return;
}
Modified: trunk/tests/src/org/jboss/messaging/tests/unit/core/client/impl/ClientSessionImplTest.java
===================================================================
--- trunk/tests/src/org/jboss/messaging/tests/unit/core/client/impl/ClientSessionImplTest.java 2008-06-12 09:42:54 UTC (rev 4441)
+++ trunk/tests/src/org/jboss/messaging/tests/unit/core/client/impl/ClientSessionImplTest.java 2008-06-12 10:23:04 UTC (rev 4442)
@@ -716,8 +716,14 @@
EasyMock.verify(pd);
}
- public void testClose() throws Exception
+ public void testClose() throws Exception
{
+ testClose(true);
+ testClose(false);
+ }
+
+ private void testClose(boolean delivered) throws Exception
+ {
ClientConnectionInternal conn = EasyMock.createStrictMock(ClientConnectionInternal.class);
RemotingConnection rc = EasyMock.createStrictMock(RemotingConnection.class);
@@ -726,7 +732,15 @@
EasyMock.expect(conn.getRemotingConnection()).andReturn(rc);
final long sessionTargetID = 9121892;
+
+ EasyMock.replay(conn, rc);
+ ClientSessionInternal session = new ClientSessionImpl(conn, sessionTargetID, false, -1, false, false, false, false);
+
+ EasyMock.verify(conn, rc);
+
+ EasyMock.reset(conn, rc);
+
ClientProducerInternal prod1 = EasyMock.createStrictMock(ClientProducerInternal.class);
ClientProducerInternal prod2 = EasyMock.createStrictMock(ClientProducerInternal.class);
@@ -735,9 +749,7 @@
ClientBrowser browser1 = EasyMock.createStrictMock(ClientBrowser.class);
ClientBrowser browser2 = EasyMock.createStrictMock(ClientBrowser.class);
-
- ClientSessionInternal session = new ClientSessionImpl(conn, sessionTargetID, false, -1, false, false, false, false);
-
+
prod1.close();
prod2.close();
cons1.close();
@@ -745,16 +757,21 @@
browser1.close();
browser2.close();
- SessionAcknowledgeMessage message = new SessionAcknowledgeMessage(0, true);
+ final int numDeliveries = 10;
- rc.sendOneWay(sessionTargetID, sessionTargetID, message);
-
+ if (delivered)
+ {
+ SessionAcknowledgeMessage message = new SessionAcknowledgeMessage(numDeliveries - 1, true);
+
+ rc.sendOneWay(sessionTargetID, sessionTargetID, message);
+ }
+
EasyMock.expect(rc.sendBlocking(sessionTargetID, sessionTargetID, new EmptyPacket(EmptyPacket.CLOSE))).andReturn(null);
conn.removeSession(session);
-
+
EasyMock.replay(conn, rc, prod1, prod2, cons1, cons2, browser1, browser2);
-
+
session.addProducer(prod1);
session.addProducer(prod2);
@@ -765,6 +782,16 @@
session.addBrowser(browser2);
assertFalse(session.isClosed());
+
+ if (delivered)
+ {
+ //Simulate there being some undelivered messages
+ for (int i = 0; i < numDeliveries; i++)
+ {
+ session.delivered(i, false);
+ session.acknowledge();
+ }
+ }
session.close();
More information about the jboss-cvs-commits
mailing list