[jboss-cvs] JBoss Messaging SVN: r7787 - in trunk: tests/src/org/jboss/messaging/tests/integration/client and 1 other directories.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Wed Aug 19 05:03:51 EDT 2009


Author: timfox
Date: 2009-08-19 05:03:50 -0400 (Wed, 19 Aug 2009)
New Revision: 7787

Modified:
   trunk/src/main/org/jboss/messaging/jms/client/JBossMessageConsumer.java
   trunk/tests/src/org/jboss/messaging/tests/integration/client/ConsumerTest.java
   trunk/tests/src/org/jboss/messaging/tests/integration/jms/consumer/ConsumerTest.java
Log:
https://jira.jboss.org/jira/browse/JBMESSAGING-1716

Modified: trunk/src/main/org/jboss/messaging/jms/client/JBossMessageConsumer.java
===================================================================
--- trunk/src/main/org/jboss/messaging/jms/client/JBossMessageConsumer.java	2009-08-19 06:22:36 UTC (rev 7786)
+++ trunk/src/main/org/jboss/messaging/jms/client/JBossMessageConsumer.java	2009-08-19 09:03:50 UTC (rev 7787)
@@ -119,7 +119,7 @@
    {
       this.listener = listener;
 
-      coreListener = new JMSMessageListenerWrapper(session, consumer, listener, ackMode);
+      coreListener = listener == null ? null : new JMSMessageListenerWrapper(session, consumer, listener, ackMode);
 
       try
       {

Modified: trunk/tests/src/org/jboss/messaging/tests/integration/client/ConsumerTest.java
===================================================================
--- trunk/tests/src/org/jboss/messaging/tests/integration/client/ConsumerTest.java	2009-08-19 06:22:36 UTC (rev 7786)
+++ trunk/tests/src/org/jboss/messaging/tests/integration/client/ConsumerTest.java	2009-08-19 09:03:50 UTC (rev 7787)
@@ -21,6 +21,9 @@
  */
 package org.jboss.messaging.tests.integration.client;
 
+import java.util.concurrent.CountDownLatch;
+import java.util.concurrent.TimeUnit;
+
 import org.jboss.messaging.core.client.ClientConsumer;
 import org.jboss.messaging.core.client.ClientMessage;
 import org.jboss.messaging.core.client.ClientProducer;
@@ -38,9 +41,6 @@
 import org.jboss.messaging.tests.util.ServiceTestBase;
 import org.jboss.messaging.utils.SimpleString;
 
-import java.util.concurrent.CountDownLatch;
-import java.util.concurrent.TimeUnit;
-
 /**
  * @author <a href="mailto:andy.taylor at jboss.org">Andy Taylor</a>
  * @author <a href="mailto:clebert.suconic at jboss.org">Clebert Suconic</a>
@@ -285,5 +285,61 @@
       assertTrue(latch.await(5, TimeUnit.SECONDS));
       sessionRec.close();
    }
+   
+   public void testClearListener() throws Exception
+   {
+      ClientSessionFactory sf = createInVMFactory();
 
+      ClientSession session = sf.createSession(false, true, true);
+
+      session.createQueue(QUEUE, QUEUE, null, false);
+
+      ClientConsumer consumer = session.createConsumer(QUEUE);
+      
+      consumer.setMessageHandler(new MessageHandler()
+      {
+         public void onMessage(ClientMessage msg)
+         {
+         }
+      });
+
+      consumer.setMessageHandler(null);
+      consumer.receiveImmediate();
+   }
+   
+   public void testNoReceiveWithListener() throws Exception
+   {
+      ClientSessionFactory sf = createInVMFactory();
+
+      ClientSession session = sf.createSession(false, true, true);
+
+      session.createQueue(QUEUE, QUEUE, null, false);
+
+      ClientConsumer consumer = session.createConsumer(QUEUE);
+      
+      consumer.setMessageHandler(new MessageHandler()
+      {
+         public void onMessage(ClientMessage msg)
+         {
+         }
+      });
+
+      try
+      {
+         consumer.receiveImmediate();
+         fail("Should throw exception");
+      }
+      catch (MessagingException me)
+      {
+         if (me.getCode() == MessagingException.ILLEGAL_STATE)
+         {
+            //Ok
+         }
+         else
+         {
+            fail("Wrong exception code");
+         }
+      }
+   }
+
 }

Modified: trunk/tests/src/org/jboss/messaging/tests/integration/jms/consumer/ConsumerTest.java
===================================================================
--- trunk/tests/src/org/jboss/messaging/tests/integration/jms/consumer/ConsumerTest.java	2009-08-19 06:22:36 UTC (rev 7786)
+++ trunk/tests/src/org/jboss/messaging/tests/integration/jms/consumer/ConsumerTest.java	2009-08-19 09:03:50 UTC (rev 7787)
@@ -21,6 +21,15 @@
  */
 package org.jboss.messaging.tests.integration.jms.consumer;
 
+import javax.jms.Connection;
+import javax.jms.JMSException;
+import javax.jms.Message;
+import javax.jms.MessageConsumer;
+import javax.jms.MessageListener;
+import javax.jms.MessageProducer;
+import javax.jms.Session;
+import javax.jms.TextMessage;
+
 import org.jboss.messaging.core.config.Configuration;
 import org.jboss.messaging.core.config.TransportConfiguration;
 import org.jboss.messaging.core.config.impl.ConfigurationImpl;
@@ -35,13 +44,6 @@
 import org.jboss.messaging.tests.util.UnitTestCase;
 import org.jboss.messaging.utils.SimpleString;
 
-import javax.jms.Connection;
-import javax.jms.Message;
-import javax.jms.MessageConsumer;
-import javax.jms.MessageProducer;
-import javax.jms.Session;
-import javax.jms.TextMessage;
-
 /**
  * @author <a href="mailto:andy.taylor at jboss.org">Andy Taylor</a>
  */
@@ -61,20 +63,20 @@
    protected void setUp() throws Exception
    {
       super.setUp();
-      
+
       Configuration conf = new ConfigurationImpl();
       conf.setSecurityEnabled(false);
       conf.setJMXManagementEnabled(true);
       conf.getAcceptorConfigurations()
           .add(new TransportConfiguration("org.jboss.messaging.core.remoting.impl.invm.InVMAcceptorFactory"));
-      server = Messaging.newMessagingServer(conf, false);      
+      server = Messaging.newMessagingServer(conf, false);
       jmsServer = new JMSServerManagerImpl(server);
       jmsServer.setContext(new NullInitialContext());
-      jmsServer.start();      
+      jmsServer.start();
       jmsServer.createQueue(Q_NAME, Q_NAME, null, true);
       cf = new JBossConnectionFactory(new TransportConfiguration("org.jboss.messaging.core.remoting.impl.invm.InVMConnectorFactory"));
       cf.setBlockOnPersistentSend(true);
-      cf.setPreAcknowledge(true);          
+      cf.setPreAcknowledge(true);
    }
 
    @Override
@@ -95,12 +97,12 @@
          }
          server = null;
       }
-      
+
       server = null;
       jmsServer = null;
       cf = null;
       jBossQueue = null;
-      
+
       super.tearDown();
    }
 
@@ -144,7 +146,7 @@
          producer.setTimeToLive(1);
          producer.send(textMessage);
       }
-                                                                    
+
       conn.start();
       for (int i = 0; i < noOfMessages; i++)
       {
@@ -157,4 +159,45 @@
       assertEquals(0, ((Queue)server.getPostOffice().getBinding(queueName).getBindable()).getMessageCount());
       conn.close();
    }
+
+   public void testClearExceptionListener() throws Exception
+   {
+      Connection conn = cf.createConnection();
+      Session session = conn.createSession(false, JBossSession.PRE_ACKNOWLEDGE);
+      jBossQueue = new JBossQueue(Q_NAME);
+      MessageConsumer consumer = session.createConsumer(jBossQueue);
+      consumer.setMessageListener(new MessageListener()
+      {
+         public void onMessage(Message msg)
+         {
+         }
+      });
+
+      consumer.setMessageListener(null);
+      consumer.receiveNoWait();
+   }
+   
+   public void testCantReceiveWhenListenerIsSet() throws Exception
+   {
+      Connection conn = cf.createConnection();
+      Session session = conn.createSession(false, JBossSession.PRE_ACKNOWLEDGE);
+      jBossQueue = new JBossQueue(Q_NAME);
+      MessageConsumer consumer = session.createConsumer(jBossQueue);
+      consumer.setMessageListener(new MessageListener()
+      {
+         public void onMessage(Message msg)
+         {
+         }
+      });
+
+      try
+      {
+         consumer.receiveNoWait();
+         fail("Should throw exception");
+      }
+      catch (JMSException e)
+      {
+         //Ok
+      }
+   }
 }




More information about the jboss-cvs-commits mailing list