Search in sources :

Example 1 with JMSConsumer

use of jakarta.jms.JMSConsumer in project openmq by eclipse-ee4j.

the class JMSContextImpl method close.

@Override
public void close() {
    contextLogger.log(Level.FINE, "JMSContext@" + this.hashCode() + ".close(): connection@" + (connection == null ? "null" : connection.hashCode()));
    if (closed) {
        return;
    }
    closed = true;
    // close all JMSConsumer objects associated with this JMSContext
    for (JMSConsumer consumer : consumers) {
        consumer.close();
    }
    if (!consumers.isEmpty()) {
        throw new RuntimeException("Debug: consumers not empty");
    }
    // close the anonymous MessageProducer associated with this JMSContext
    if (messageProducer != null) {
        try {
            messageProducer.close();
            messageProducer = null;
        } catch (IllegalStateException e) {
            throw new MQIllegalStateRuntimeException(e);
        } catch (JMSException e) {
            throw new MQRuntimeException(e);
        }
    }
    // close the Session
    try {
        session.close();
    } catch (IllegalStateException e) {
        throw new MQIllegalStateRuntimeException(e);
    } catch (JMSException e) {
        throw new MQRuntimeException(e);
    }
    // if this is the only JMSContext using the connection, close it
    synchronized (contextSet) {
        // debug
        if (!contextSet.contains(this)) {
            throw new RuntimeException("I am not in the context set");
        }
        contextSet.remove(this);
        if (contextSet.contains(this)) {
            throw new RuntimeException("I am not in the context set");
        }
        if (contextSet.isEmpty()) {
            try {
                connection.close();
            } catch (IllegalStateException e) {
                throw new MQIllegalStateRuntimeException(e);
            } catch (JMSException e) {
                throw new MQRuntimeException(e);
            }
        }
    }
    closed = true;
}
Also used : IllegalStateException(jakarta.jms.IllegalStateException) JMSConsumer(jakarta.jms.JMSConsumer) MQInvalidDestinationRuntimeException(com.sun.messaging.jms.MQInvalidDestinationRuntimeException) JMSRuntimeException(jakarta.jms.JMSRuntimeException) MQTransactionRolledBackRuntimeException(com.sun.messaging.jms.MQTransactionRolledBackRuntimeException) JMSSecurityRuntimeException(jakarta.jms.JMSSecurityRuntimeException) MQInvalidSelectorRuntimeException(com.sun.messaging.jms.MQInvalidSelectorRuntimeException) MQTransactionInProgressRuntimeException(com.sun.messaging.jms.MQTransactionInProgressRuntimeException) IllegalStateRuntimeException(jakarta.jms.IllegalStateRuntimeException) InvalidClientIDRuntimeException(jakarta.jms.InvalidClientIDRuntimeException) MQIllegalStateRuntimeException(com.sun.messaging.jms.MQIllegalStateRuntimeException) MQRuntimeException(com.sun.messaging.jms.MQRuntimeException) MQSecurityRuntimeException(com.sun.messaging.jms.MQSecurityRuntimeException) JMSException(jakarta.jms.JMSException) MQIllegalStateRuntimeException(com.sun.messaging.jms.MQIllegalStateRuntimeException) MQRuntimeException(com.sun.messaging.jms.MQRuntimeException)

Aggregations

MQIllegalStateRuntimeException (com.sun.messaging.jms.MQIllegalStateRuntimeException)1 MQInvalidDestinationRuntimeException (com.sun.messaging.jms.MQInvalidDestinationRuntimeException)1 MQInvalidSelectorRuntimeException (com.sun.messaging.jms.MQInvalidSelectorRuntimeException)1 MQRuntimeException (com.sun.messaging.jms.MQRuntimeException)1 MQSecurityRuntimeException (com.sun.messaging.jms.MQSecurityRuntimeException)1 MQTransactionInProgressRuntimeException (com.sun.messaging.jms.MQTransactionInProgressRuntimeException)1 MQTransactionRolledBackRuntimeException (com.sun.messaging.jms.MQTransactionRolledBackRuntimeException)1 IllegalStateException (jakarta.jms.IllegalStateException)1 IllegalStateRuntimeException (jakarta.jms.IllegalStateRuntimeException)1 InvalidClientIDRuntimeException (jakarta.jms.InvalidClientIDRuntimeException)1 JMSConsumer (jakarta.jms.JMSConsumer)1 JMSException (jakarta.jms.JMSException)1 JMSRuntimeException (jakarta.jms.JMSRuntimeException)1 JMSSecurityRuntimeException (jakarta.jms.JMSSecurityRuntimeException)1