You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@activemq.apache.org by js...@apache.org on 2006/09/29 17:10:29 UTC
svn commit: r451323 - in
/incubator/activemq/trunk/activemq-core/src/main/java/org/apache/activemq:
ActiveMQConnection.java ActiveMQSession.java
Author: jstrachan
Date: Fri Sep 29 08:10:28 2006
New Revision: 451323
URL: http://svn.apache.org/viewvc?view=rev&rev=451323
Log:
make absolutely sure that a session is always removed from the connection even if there is a failure while closing
Modified:
incubator/activemq/trunk/activemq-core/src/main/java/org/apache/activemq/ActiveMQConnection.java
incubator/activemq/trunk/activemq-core/src/main/java/org/apache/activemq/ActiveMQSession.java
Modified: incubator/activemq/trunk/activemq-core/src/main/java/org/apache/activemq/ActiveMQConnection.java
URL: http://svn.apache.org/viewvc/incubator/activemq/trunk/activemq-core/src/main/java/org/apache/activemq/ActiveMQConnection.java?view=diff&rev=451323&r1=451322&r2=451323
==============================================================================
--- incubator/activemq/trunk/activemq-core/src/main/java/org/apache/activemq/ActiveMQConnection.java (original)
+++ incubator/activemq/trunk/activemq-core/src/main/java/org/apache/activemq/ActiveMQConnection.java Fri Sep 29 08:10:28 2006
@@ -165,9 +165,7 @@
* Construct an <code>ActiveMQConnection</code>
* @param transport
* @param factoryStats
- * @param userName
- * @param password
- * @throws Exception
+ * @throws Exception
*/
protected ActiveMQConnection(final Transport transport, IdGenerator clientIdGenerator, JMSStatsImpl factoryStats)
throws Exception {
Modified: incubator/activemq/trunk/activemq-core/src/main/java/org/apache/activemq/ActiveMQSession.java
URL: http://svn.apache.org/viewvc/incubator/activemq/trunk/activemq-core/src/main/java/org/apache/activemq/ActiveMQSession.java?view=diff&rev=451323&r1=451322&r2=451323
==============================================================================
--- incubator/activemq/trunk/activemq-core/src/main/java/org/apache/activemq/ActiveMQSession.java (original)
+++ incubator/activemq/trunk/activemq-core/src/main/java/org/apache/activemq/ActiveMQSession.java Fri Sep 29 08:10:28 2006
@@ -535,32 +535,36 @@
synchronized public void dispose() throws JMSException {
if (!closed) {
- executor.stop();
-
- for (Iterator iter = consumers.iterator(); iter.hasNext();) {
- ActiveMQMessageConsumer consumer = (ActiveMQMessageConsumer) iter.next();
- consumer.dispose();
- }
- consumers.clear();
-
- for (Iterator iter = producers.iterator(); iter.hasNext();) {
- ActiveMQMessageProducer producer = (ActiveMQMessageProducer) iter.next();
- producer.dispose();
- }
- producers.clear();
-
try {
- if (getTransactionContext().isInLocalTransaction()) {
- rollback();
+ executor.stop();
+
+ for (Iterator iter = consumers.iterator(); iter.hasNext();) {
+ ActiveMQMessageConsumer consumer = (ActiveMQMessageConsumer) iter.next();
+ consumer.dispose();
+ }
+ consumers.clear();
+
+ for (Iterator iter = producers.iterator(); iter.hasNext();) {
+ ActiveMQMessageProducer producer = (ActiveMQMessageProducer) iter.next();
+ producer.dispose();
}
- } catch (JMSException e) {
+ producers.clear();
+
+ try {
+ if (getTransactionContext().isInLocalTransaction()) {
+ rollback();
+ }
+ }
+ catch (JMSException e) {
+ }
+
+
+ }
+ finally {
+ connection.removeSession(this);
+ this.transactionContext = null;
+ closed = true;
}
-
-
- connection.removeSession(this);
- this.transactionContext=null;
- closed = true;
-
}
}