[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