Java 类javax.jms.ExceptionListener 实例源码

项目:pooled-jms    文件:JmsPoolConnectionTest.java   
@Test(timeout = 60000)
public void testExceptionListenerGetsNotified() throws Exception {
    final CountDownLatch signal = new CountDownLatch(1);
    Connection connection = cf.createConnection();
    connection.setExceptionListener(new ExceptionListener() {

        @Override
        public void onException(JMSException exception) {
            LOG.info("ExceptionListener called with error: {}", exception.getMessage());
            signal.countDown();
        }
    });

    assertNotNull(connection.getExceptionListener());

    MockJMSConnection mockJMSConnection = (MockJMSConnection) ((JmsPoolConnection) connection).getConnection();
    mockJMSConnection.injectConnectionError(new JMSException("Some non-fatal error"));

    assertTrue(signal.await(10, TimeUnit.SECONDS));
}
项目:pooled-jms    文件:PooledConnectionSecurityExceptionTest.java   
@Test
public void testFailedConnectThenSucceedsWithListener() throws JMSException {
    Connection connection = pooledConnFact.createConnection("invalid", "credentials");
    connection.setExceptionListener(new ExceptionListener() {

        @Override
        public void onException(JMSException exception) {
            LOG.warn("Connection get error: {}", exception.getMessage());
        }
    });

    try {
        connection.start();
        fail("Should fail to connect");
    } catch (JMSSecurityException ex) {
        LOG.info("Caught expected security error");
    }

    connection = pooledConnFact.createConnection("system", "manager");
    connection.start();

    LOG.info("Successfully create new connection.");

    connection.close();
}
项目:spring4-understanding    文件:SingleConnectionFactory.java   
/**
 * Prepare the given Connection before it is exposed.
 * <p>The default implementation applies ExceptionListener and client id.
 * Can be overridden in subclasses.
 * @param con the Connection to prepare
 * @throws JMSException if thrown by JMS API methods
 * @see #setExceptionListener
 * @see #setReconnectOnException
 */
protected void prepareConnection(Connection con) throws JMSException {
    if (getClientId() != null) {
        con.setClientID(getClientId());
    }
    if (this.aggregatedExceptionListener != null) {
        con.setExceptionListener(this.aggregatedExceptionListener);
    }
    else if (getExceptionListener() != null || isReconnectOnException()) {
        ExceptionListener listenerToUse = getExceptionListener();
        if (isReconnectOnException()) {
            this.aggregatedExceptionListener = new AggregatedExceptionListener();
            this.aggregatedExceptionListener.delegates.add(this);
            if (listenerToUse != null) {
                this.aggregatedExceptionListener.delegates.add(listenerToUse);
            }
            listenerToUse = this.aggregatedExceptionListener;
        }
        con.setExceptionListener(listenerToUse);
    }
}
项目:activemq-artemis    文件:JMSClientTestSupport.java   
private Connection createConnection(URI remoteURI, String username, String password, String clientId, boolean start) throws JMSException {
   JmsConnectionFactory factory = new JmsConnectionFactory(remoteURI);

   Connection connection = trackJMSConnection(factory.createConnection(username, password));

   connection.setExceptionListener(new ExceptionListener() {
      @Override
      public void onException(JMSException exception) {
         exception.printStackTrace();
      }
   });

   if (clientId != null && !clientId.isEmpty()) {
      connection.setClientID(clientId);
   }

   if (start) {
      connection.start();
   }

   return connection;
}
项目:activemq-artemis    文件:JMSClientTestSupport.java   
private Connection createCoreConnection(String connectionString, String username, String password, String clientId, boolean start) throws JMSException {
   ActiveMQJMSConnectionFactory factory = new ActiveMQJMSConnectionFactory(connectionString);

   Connection connection = trackJMSConnection(factory.createConnection(username, password));

   connection.setExceptionListener(new ExceptionListener() {
      @Override
      public void onException(JMSException exception) {
         exception.printStackTrace();
      }
   });

   if (clientId != null && !clientId.isEmpty()) {
      connection.setClientID(clientId);
   }

   if (start) {
      connection.start();
   }

   return connection;
}
项目:activemq-artemis    文件:JMSClientTestSupport.java   
private Connection createOpenWireConnection(String connectionString, String username, String password, String clientId, boolean start) throws JMSException {
   ActiveMQConnectionFactory factory = new ActiveMQConnectionFactory(connectionString);

   Connection connection = trackJMSConnection(factory.createConnection(username, password));

   connection.setExceptionListener(new ExceptionListener() {
      @Override
      public void onException(JMSException exception) {
         exception.printStackTrace();
      }
   });

   if (clientId != null && !clientId.isEmpty()) {
      connection.setClientID(clientId);
   }

   if (start) {
      connection.start();
   }

   return connection;
}
项目:activemq-artemis    文件:ActiveMQConnectionFactoryTest.java   
public void testSetExceptionListener() throws Exception {
   ActiveMQConnectionFactory cf = new ActiveMQConnectionFactory("vm://localhost?broker.persistent=false");
   connection = (ActiveMQConnection) cf.createConnection();
   assertNull(connection.getExceptionListener());

   ExceptionListener exListener = new ExceptionListener() {
      @Override
      public void onException(JMSException arg0) {
      }
   };
   cf.setExceptionListener(exListener);
   connection.close();

   connection = (ActiveMQConnection) cf.createConnection();
   assertNotNull(connection.getExceptionListener());
   assertEquals(exListener, connection.getExceptionListener());
   connection.close();

   connection = (ActiveMQConnection) cf.createConnection();
   assertEquals(exListener, connection.getExceptionListener());

   assertEquals(exListener, cf.getExceptionListener());
   connection.close();

}
项目:fabric8-amq-example    文件:AMQClientImpl.java   
private void updateInternal(Map<String, ?> configuration) throws JMSException {
  // get JMS up and running
  jmsConnection = connectionFactory.createQueueConnection();
  jmsConnection.setExceptionListener(new ExceptionListener() {
    @Override
    public void onException(JMSException e) {
      log.error("There was an error while working with JMS.", e);
    }
  });
  jmsSession = jmsConnection.createSession(false, Session.AUTO_ACKNOWLEDGE);
  Destination destination = jmsSession.createQueue("test");

  producer = new JMSProducer(jmsSession, destination);
  consumer = new JMSConsumer(jmsSession, destination);
  jmsConnection.start();
}
项目:andes    文件:AbstractACLTestCase.java   
/**
 * Creates a connection to the broker, and sets a connection listener to prevent failover and an exception listener 
 * with a {@link CountDownLatch} to synchronise in the {@link #check403Exception(Throwable)} method and allow the
 * {@link #tearDown()} method to complete properly.
 */
public Connection getConnection(String vhost, String username, String password) throws NamingException, JMSException, URLSyntaxException
{
    AMQConnection connection = (AMQConnection) getConnection(createConnectionURL(vhost, username, password));

    //Prevent Failover
    connection.setConnectionListener(this);

    //QPID-2081: use a latch to sync on exception causing connection close, to work 
    //around the connection close race during tearDown() causing sporadic failures
    _exceptionReceived = new CountDownLatch(1);

    connection.setExceptionListener(new ExceptionListener()
    {
        public void onException(JMSException e)
        {
            _exceptionReceived.countDown();
        }
    });

    return (Connection) connection;
}
项目:andes    文件:ExceptionListenerTest.java   
public void testBrokerDeath() throws Exception
{
    Connection conn = getConnection("guest", "guest");

    conn.start();

    final CountDownLatch fired = new CountDownLatch(1);
    conn.setExceptionListener(new ExceptionListener()
    {
        public void onException(JMSException e)
        {
            fired.countDown();
        }
    });

    stopBroker();

    if (!fired.await(3, TimeUnit.SECONDS))
    {
        fail("exception listener was not fired");
    }
}
项目:qpid-jms    文件:JmsMessageConsumerFailedTest.java   
@Override
protected MessageConsumer createConsumer() throws Exception {
    connection = createConnectionToMockProvider();
    Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
    Queue destination = session.createQueue(_testName.getMethodName());
    MessageConsumer consumer = session.createConsumer(destination);
    connection.setExceptionListener(new ExceptionListener() {

        @Override
        public void onException(JMSException exception) {
        }
    });
    connection.start();
    providerListener.onConnectionFailure(new IOException());

    final JmsConnection jmsConnection = connection;
    assertTrue(Wait.waitFor(new Wait.Condition() {

        @Override
        public boolean isSatisified() throws Exception {
            return !jmsConnection.isConnected();
        }
    }, TimeUnit.SECONDS.toMillis(30), TimeUnit.MILLISECONDS.toMillis(2)));

    return consumer;
}
项目:qpid-jms    文件:JmsSessionFailedTest.java   
@Override
protected void createTestResources() throws Exception {
    connection = createConnectionToMockProvider();
    session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
    connection.setExceptionListener(new ExceptionListener() {

        @Override
        public void onException(JMSException exception) {
        }
    });
    Queue destination = session.createQueue(_testName.getMethodName());

    sender = session.createProducer(destination);
    receiver = session.createConsumer(destination);
    connection.start();
    providerListener.onConnectionFailure(new IOException());

    final JmsConnection jmsConnection = connection;
    assertTrue(Wait.waitFor(new Wait.Condition() {

        @Override
        public boolean isSatisified() throws Exception {
            return !jmsConnection.isConnected();
        }
    }, TimeUnit.SECONDS.toMillis(30), TimeUnit.MILLISECONDS.toMillis(2)));
}
项目:qpid-jms    文件:JmsContextTest.java   
@Test
public void testSetExceptionListenerPassthrough() throws JMSException {
    JmsConnection connection = Mockito.mock(JmsConnection.class);
    JmsContext context = new JmsContext(connection, JMSContext.AUTO_ACKNOWLEDGE);

    ExceptionListener listener = new ExceptionListener() {

        @Override
        public void onException(JMSException exception) {
        }
    };

    try {
        context.setExceptionListener(listener);
    } finally {
        context.close();
    }

    Mockito.verify(connection, Mockito.times(1)).setExceptionListener(listener);
}
项目:qpid-jms    文件:JmsConnectionFactoryTest.java   
@Test
public void testGlobalExceptionListenerIsAppliedToCreatedConnection() throws Exception {
    JmsConnectionFactory factory = new JmsConnectionFactory(new URI("mock://127.0.0.1:5763"));

    ExceptionListener listener = new ExceptionListener() {

        @Override
        public void onException(JMSException exception) {
        }
    };

    factory.setExceptionListener(listener);
    Connection connection = factory.createConnection();
    assertNotNull(connection);
    assertNotNull(connection.getExceptionListener());
    assertSame(listener, connection.getExceptionListener());

    connection.close();
}
项目:qpid-jms    文件:JmsConnectionFactoryTest.java   
/**
 * Verify that the 'global' exception listener set on the connection factory
 * is ignored when the factory gets serialized.
 *
 * @throws Exception if an error occurs during the test.
 */
@Test
public void testSerializeThenDeserializeIgnoresGlobalExceptionListener() throws Exception {
    String uri = "amqp://localhost:1234";

    JmsConnectionFactory cf = new JmsConnectionFactory(uri);
    cf.setExceptionListener(new ExceptionListener() {
        @Override
        public void onException(JMSException exception) {
            // Nothing
        }
    });

    Map<String, String> props = cf.getProperties();

    Object roundTripped = roundTripSerialize(cf);

    assertNotNull("Null object returned", roundTripped);
    assertEquals("Unexpected type", JmsConnectionFactory.class, roundTripped.getClass());
    assertEquals("Unexpected uri", uri, ((JmsConnectionFactory)roundTripped).getRemoteURI());

    Map<String, String> props2 = ((JmsConnectionFactory)roundTripped).getProperties();

    assertFalse("Properties map should not contain ExceptionListener", props.containsKey("exceptionListener"));
    assertEquals("Properties were not equal", props, props2);
}
项目:qpid-jms    文件:JmsConnectionFailedTest.java   
@Override
protected JmsConnection createConnection() throws Exception {
    connection = createConnectionToMockProvider();
    connection.setExceptionListener(new ExceptionListener() {

        @Override
        public void onException(JMSException exception) {
        }
    });
    connection.start();

    providerListener.onConnectionFailure(new IOException());

    final JmsConnection jmsConnection = connection;
    assertTrue(Wait.waitFor(new Wait.Condition() {

        @Override
        public boolean isSatisified() throws Exception {
            return !jmsConnection.isConnected();
        }
    }, TimeUnit.SECONDS.toMillis(30), TimeUnit.MILLISECONDS.toMillis(10)));

    return connection;
}
项目:qpid-jms    文件:JmsConnectionTest.java   
@Test(timeout=60000)
public void testConnectionExceptionBrokerStop() throws Exception {
    final CountDownLatch latch = new CountDownLatch(1);
    connection = createAmqpConnection();
    connection.setExceptionListener(new ExceptionListener() {

        @Override
        public void onException(JMSException exception) {
            latch.countDown();
        }
    });
    connection.start();
    Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
    assertNotNull(session);

    stopPrimaryBroker();

    assertTrue(latch.await(10, TimeUnit.SECONDS));

    connection.close();
}
项目:qpid-jms    文件:JmsFailoverTest.java   
@Test(timeout=60000)
public void testStartFailureWithAsyncExceptionListener() throws Exception {
    URI brokerURI = new URI(getAmqpFailoverURI() +
        "?failover.maxReconnectAttempts=5" +
        "&failover.useReconnectBackOff=false");

    final CountDownLatch failed = new CountDownLatch(1);
    JmsConnectionFactory factory = new JmsConnectionFactory(brokerURI);
    factory.setExceptionListener(new ExceptionListener() {

        @Override
        public void onException(JMSException exception) {
            LOG.info("Connection got exception: {}", exception.getMessage());
            failed.countDown();
        }
    });
    connection = factory.createConnection();
    connection.start();

    stopPrimaryBroker();

    assertTrue("No async exception", failed.await(15, TimeUnit.SECONDS));
}
项目:hawtjms    文件:JmsConnectionTest.java   
@Test(timeout=60000)
public void testConnectionExceptionBrokerStop() throws Exception {
    final CountDownLatch latch = new CountDownLatch(1);
    Connection connection = createStompConnection();
    connection.setExceptionListener(new ExceptionListener() {

        @Override
        public void onException(JMSException exception) {
            latch.countDown();
        }
    });
    connection.start();
    Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
    assertNotNull(session);

    stopPrimaryBroker();

    assertTrue(latch.await(10, TimeUnit.SECONDS));

    connection.close();
}
项目:hawtjms    文件:JmsFailoverTest.java   
@Test(timeout=60000)
public void testStartFailureWithAsyncExceptionListener() throws Exception {
    URI brokerURI = new URI(getAmqpFailoverURI() + "?maxReconnectDelay=1000&maxReconnectAttempts=5");

    final CountDownLatch failed = new CountDownLatch(1);
    JmsConnectionFactory factory = new JmsConnectionFactory(brokerURI);
    factory.setExceptionListener(new ExceptionListener() {

        @Override
        public void onException(JMSException exception) {
            LOG.info("Connection got exception: {}", exception.getMessage());
            failed.countDown();
        }
    });
    Connection connection = factory.createConnection();
    connection.start();

    stopPrimaryBroker();

    assertTrue("No async exception", failed.await(15, TimeUnit.SECONDS));
}
项目:hawtjms    文件:JmsMessageProducerFailedTest.java   
@Override
protected MessageProducer createProducer() throws Exception {
    final CountDownLatch latch = new CountDownLatch(1);
    connection = createAmqpConnection();
    Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
    message = session.createMessage();
    destination = session.createQueue("test");
    MessageProducer producer = session.createProducer(destination);
    connection.setExceptionListener(new ExceptionListener() {

        @Override
        public void onException(JMSException exception) {
            latch.countDown();
        }
    });
    connection.start();
    stopPrimaryBroker();
    assertTrue(latch.await(10, TimeUnit.SECONDS));
    return producer;
}
项目:hawtjms    文件:JmsMessageConsumerFailedTest.java   
@Override
protected MessageConsumer createConsumer() throws Exception {
    final CountDownLatch latch = new CountDownLatch(1);
    connection = createAmqpConnection();
    Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
    Queue destination = session.createQueue(name.getMethodName());
    MessageConsumer consumer = session.createConsumer(destination);
    connection.setExceptionListener(new ExceptionListener() {

        @Override
        public void onException(JMSException exception) {
            latch.countDown();
        }
    });
    connection.start();
    stopPrimaryBroker();
    assertTrue(latch.await(10, TimeUnit.SECONDS));
    return consumer;
}
项目:hawtjms    文件:JmsConnectionTest.java   
@Test(timeout=60000)
public void testConnectionExceptionBrokerStop() throws Exception {
    final CountDownLatch latch = new CountDownLatch(1);
    Connection connection = createAmqpConnection();
    connection.setExceptionListener(new ExceptionListener() {

        @Override
        public void onException(JMSException exception) {
            latch.countDown();
        }
    });
    connection.start();
    Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
    assertNotNull(session);

    stopPrimaryBroker();

    assertTrue(latch.await(10, TimeUnit.SECONDS));

    connection.close();
}
项目:hawtjms    文件:JmsSessionFailedTest.java   
@Override
protected Session createSession() throws Exception {
    final CountDownLatch latch = new CountDownLatch(1);
    connection = createAmqpConnection();
    Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
    connection.setExceptionListener(new ExceptionListener() {

        @Override
        public void onException(JMSException exception) {
            latch.countDown();
        }
    });
    connection.start();
    stopPrimaryBroker();
    assertTrue(latch.await(20, TimeUnit.SECONDS));
    TimeUnit.MILLISECONDS.sleep(500);
    return session;
}
项目:hawtjms    文件:JmsConnectionFailedTest.java   
@Override
protected Connection createConnection() throws Exception {
    final CountDownLatch latch = new CountDownLatch(1);
    connection = createAmqpConnection();
    connection.setExceptionListener(new ExceptionListener() {

        @Override
        public void onException(JMSException exception) {
            latch.countDown();
        }
    });
    connection.start();
    stopPrimaryBroker();
    assertTrue(latch.await(20, TimeUnit.SECONDS));
    TimeUnit.MILLISECONDS.sleep(500);
    return connection;
}
项目:pooled-jms    文件:JmsPoolJMSContext.java   
@Override
public ExceptionListener getExceptionListener() {
    try {
        return connection.getExceptionListener();
    } catch (JMSException jmse) {
        throw JMSExceptionSupport.createRuntimeException(jmse);
    }
}
项目:pooled-jms    文件:JmsPoolJMSContext.java   
@Override
public void setExceptionListener(ExceptionListener listener) {
    try {
        connection.setExceptionListener(listener);
    } catch (JMSException jmse) {
        throw JMSExceptionSupport.createRuntimeException(jmse);
    }
}
项目:pooled-jms    文件:MockJMSContext.java   
@Override
public ExceptionListener getExceptionListener() {
    try {
        return connection.getExceptionListener();
    } catch (JMSException jmse) {
        throw JMSExceptionSupport.createRuntimeException(jmse);
    }
}
项目:pooled-jms    文件:MockJMSContext.java   
@Override
public void setExceptionListener(ExceptionListener listener) {
    try {
        connection.setExceptionListener(listener);
    } catch (JMSException jmse) {
        throw JMSExceptionSupport.createRuntimeException(jmse);
    }
}
项目:pooled-jms    文件:PooledTopicPublisherTest.java   
@Test(timeout = 60000)
public void testSetGetExceptionListener() throws Exception {
    pcf = new JmsPoolConnectionFactory();
    pcf.setConnectionFactory(new ActiveMQConnectionFactory(
        "vm://test?broker.persistent=false&broker.useJmx=false"));

    connection = (TopicConnection) pcf.createConnection();
    ExceptionListener listener = new ExceptionListener() {
        @Override
        public void onException(JMSException exception) {
        }
    };
    connection.setExceptionListener(listener);
    assertEquals(listener, connection.getExceptionListener());
}
项目:org.ops4j.pax.transx    文件:JMSContextImpl.java   
@Override
public ExceptionListener getExceptionListener() {
    try {
        return connection.getExceptionListener();
    } catch (JMSException jmse) {
        throw Utils.convertToRuntimeException(jmse);
    }
}
项目:org.ops4j.pax.transx    文件:JMSContextImpl.java   
@Override
public void setExceptionListener(ExceptionListener listener) {
    try {
        connection.setExceptionListener(listener);
    } catch (JMSException jmse) {
        throw Utils.convertToRuntimeException(jmse);
    }
}
项目:spring4-understanding    文件:AbstractMessageListenerContainer.java   
/**
 * Invoke the registered JMS ExceptionListener, if any.
 * @param ex the exception that arose during JMS processing
 * @see #setExceptionListener
 */
protected void invokeExceptionListener(JMSException ex) {
    ExceptionListener exceptionListener = getExceptionListener();
    if (exceptionListener != null) {
        exceptionListener.onException(ex);
    }
}
项目:spring4-understanding    文件:SingleConnectionFactory.java   
@Override
public void onException(JMSException ex) {
    synchronized (connectionMonitor) {
        // Iterate over temporary copy in order to avoid ConcurrentModificationException,
        // since listener invocations may in turn trigger registration of listeners...
        for (ExceptionListener listener : new LinkedHashSet<ExceptionListener>(this.delegates)) {
            listener.onException(ex);
        }
    }
}
项目:spring4-understanding    文件:SingleConnectionFactoryTests.java   
@Test
public void testWithConnectionFactoryAndExceptionListener() throws JMSException {
    ConnectionFactory cf = mock(ConnectionFactory.class);
    Connection con = mock(Connection.class);

    ExceptionListener listener = new ChainedExceptionListener();
    given(cf.createConnection()).willReturn(con);
    given(con.getExceptionListener()).willReturn(listener);

    SingleConnectionFactory scf = new SingleConnectionFactory(cf);
    scf.setExceptionListener(listener);
    Connection con1 = scf.createConnection();
    assertEquals(listener, con1.getExceptionListener());
    con1.start();
    con1.stop();
    con1.close();
    Connection con2 = scf.createConnection();
    con2.start();
    con2.stop();
    con2.close();
    scf.destroy();  // should trigger actual close

    verify(con).setExceptionListener(listener);
    verify(con, times(2)).start();
    verify(con, times(2)).stop();
    verify(con).close();
}
项目:c2mon    文件:JmsProxyImplTest.java   
/**
 * Test sendRequest with null request object - should throw exception.
 * Also calls the lifecycle start() method and checks connection and session
 * calls.
 * @throws JMSException
 * @throws InterruptedException 
 */
@Test(expected = NullPointerException.class)
public void testStartAndSendRequestNullRequest() throws JMSException, InterruptedException { 
  //need to simulate start
  EasyMock.expect(connectionFactory.createConnection()).andReturn(connection).times(2);        
  EasyMock.expect(connection.createSession(false, Session.AUTO_ACKNOWLEDGE)).andReturn(session).times(3);
  connection.setExceptionListener(EasyMock.isA(ExceptionListener.class));  
  connection.start();       

  MessageConsumer messageConsumer = EasyMock.createMock(MessageConsumer.class);
  EasyMock.expect(session.createConsumer(EasyMock.isA(Destination.class))).andReturn(messageConsumer).times(2);    
  messageConsumer.setMessageListener(EasyMock.isA(MessageListener.class));
  messageConsumer.setMessageListener(EasyMock.isA(MessageListener.class));
  session.close();

  EasyMock.replay(connectionFactory);
  EasyMock.replay(connection);
  EasyMock.replay(session);
  EasyMock.replay(messageConsumer);
  ((JmsProxyImpl) jmsProxy).init();
  Thread.sleep(2000); //leave time for connection thread to run (and set connected flag to true)
  jmsProxy.sendRequest(null, "test.queue", 1000);
  EasyMock.verify(connectionFactory);
  EasyMock.verify(connection);
  EasyMock.verify(session);
  EasyMock.verify(messageConsumer);
}
项目:c2mon    文件:JmsProxyImplTest.java   
/**
 * Test sendRequest with null queue name - should throw exception.
 * @throws JMSException
 * @throws InterruptedException 
 */
@Test(expected = NullPointerException.class)
public void testSendRequestNullQueue() throws JMSException, InterruptedException { 
  JsonRequest<ClientRequestResult> jsonRequest = EasyMock.createMock(JsonRequest.class);
  //need to simulate start
  EasyMock.expect(connectionFactory.createConnection()).andReturn(connection).times(2);        
  EasyMock.expect(connection.createSession(false, Session.AUTO_ACKNOWLEDGE)).andReturn(session).times(3);
  connection.setExceptionListener(EasyMock.isA(ExceptionListener.class));  
  connection.start();       

  MessageConsumer messageConsumer = EasyMock.createMock(MessageConsumer.class);
  EasyMock.expect(session.createConsumer(EasyMock.isA(Destination.class))).andReturn(messageConsumer).times(2);    
  messageConsumer.setMessageListener(EasyMock.isA(MessageListener.class));
  messageConsumer.setMessageListener(EasyMock.isA(MessageListener.class));
  session.close();

  EasyMock.replay(connectionFactory);
  EasyMock.replay(connection);
  EasyMock.replay(session);
  EasyMock.replay(messageConsumer);
  ((JmsProxyImpl) jmsProxy).init();
  Thread.sleep(2000); //leave time for connection thread to run (and set connected flag to true)
  jmsProxy.sendRequest(jsonRequest, null, 1000);
  EasyMock.verify(connectionFactory);
  EasyMock.verify(connection);
  EasyMock.verify(session);
  EasyMock.verify(messageConsumer);
}
项目:activemq-artemis    文件:ProducerFlowControlSendFailTest.java   
protected ConnectionFactory getConnectionFactory() throws Exception {
   factory.setExceptionListener(new ExceptionListener() {
      @Override
      public void onException(JMSException arg0) {
         if (arg0 instanceof ResourceAllocationException) {
            gotResourceException.set(true);
         }
      }
   });
   return factory;
}
项目:activemq-artemis    文件:DisconnectOnCriticalFailureTest.java   
@Test
@BMRules(
   rules = {@BMRule(
      name = "Corrupt Decoding",
      targetClass = "org.apache.activemq.artemis.core.protocol.core.impl.PacketDecoder",
      targetMethod = "decode(byte)",
      targetLocation = "ENTRY",
      action = "org.apache.activemq.artemis.tests.extras.byteman.DisconnectOnCriticalFailureTest.doThrow();")})
public void testSendDisconnect() throws Exception {
   createQueue("queue1");
   final Connection producerConnection = nettyCf.createConnection();
   final CountDownLatch latch = new CountDownLatch(1);

   try {
      producerConnection.setExceptionListener(new ExceptionListener() {
         @Override
         public void onException(JMSException e) {
            latch.countDown();
         }
      });

      corruptPacket.set(true);
      producerConnection.createSession(false, Session.AUTO_ACKNOWLEDGE);

      assertTrue(latch.await(5, TimeUnit.SECONDS));
   } finally {
      corruptPacket.set(false);

      if (producerConnection != null) {
         producerConnection.close();
      }
   }
}
项目:activemq-artemis    文件:NioQueueSubscriptionTest.java   
@Ignore("See AMQ-4286")
@Test(timeout = 60 * 1000)
public void testLotsOfConcurrentConnections() throws Exception {
   ExecutorService executor = Executors.newCachedThreadPool();
   final ConnectionFactory factory = createConnectionFactory();
   int connectionCount = 400;
   final AtomicInteger threadId = new AtomicInteger(0);
   for (int i = 0; i < connectionCount; i++) {
      executor.execute(new Runnable() {
         @Override
         public void run() {
            final int innerId = threadId.incrementAndGet();
            try {
               ExceptionListener listener = new NioQueueSubscriptionTestListener(innerId, exceptions, LOG);
               ActiveMQConnection connection = (ActiveMQConnection) factory.createConnection();
               connection.setExceptionListener(listener);
               connection.start();
               assertNotNull(connection.getBrokerName());
               connections.add(connection);
            } catch (Exception e) {
               LOG.error(">>>> Exception in run() on thread " + innerId, e);
               exceptions.put(Thread.currentThread(), e);
            }
         }
      });
   }

   executor.shutdown();
   executor.awaitTermination(30, TimeUnit.SECONDS);

   if (!exceptions.isEmpty()) {
      LOG.error(">>>> " + exceptions.size() + " exceptions like", exceptions.values().iterator().next());
      fail("unexpected exceptions in worker threads: " + exceptions.values().iterator().next());
   }
   LOG.info("created " + connectionCount + " connections");
}