Author: chirino
Date: Wed Jul 26 17:44:17 2006
New Revision: 425922

URL: http://svn.apache.org/viewvc?rev=425922&view=rev
Log:
http://issues.apache.org/activemq/browse/AMQ-847

Modified:
    
incubator/activemq/branches/activemq-4.0/activemq-core/src/main/java/org/apache/activemq/ActiveMQConnection.java
    
incubator/activemq/branches/activemq-4.0/activemq-core/src/main/java/org/apache/activemq/broker/AbstractConnection.java
    
incubator/activemq/branches/activemq-4.0/activemq-core/src/main/java/org/apache/activemq/broker/region/IndirectMessageReference.java
    
incubator/activemq/branches/activemq-4.0/activemq-core/src/main/java/org/apache/activemq/thread/Scheduler.java
    
incubator/activemq/branches/activemq-4.0/activemq-core/src/test/resources/org/apache/activemq/network/reconnect-broker1.xml
    
incubator/activemq/branches/activemq-4.0/activemq-core/src/test/resources/org/apache/activemq/network/reconnect-broker2.xml
    
incubator/activemq/branches/activemq-4.0/activemq-core/src/test/resources/org/apache/activemq/network/ssh-reconnect-broker1.xml
    
incubator/activemq/branches/activemq-4.0/activemq-core/src/test/resources/org/apache/activemq/network/ssh-reconnect-broker2.xml

Modified: 
incubator/activemq/branches/activemq-4.0/activemq-core/src/main/java/org/apache/activemq/ActiveMQConnection.java
URL: 
http://svn.apache.org/viewvc/incubator/activemq/branches/activemq-4.0/activemq-core/src/main/java/org/apache/activemq/ActiveMQConnection.java?rev=425922&r1=425921&r2=425922&view=diff
==============================================================================
--- 
incubator/activemq/branches/activemq-4.0/activemq-core/src/main/java/org/apache/activemq/ActiveMQConnection.java
 (original)
+++ 
incubator/activemq/branches/activemq-4.0/activemq-core/src/main/java/org/apache/activemq/ActiveMQConnection.java
 Wed Jul 26 17:44:17 2006
@@ -535,6 +535,8 @@
             if (!closed.get()) {
                 closing.set(true);
 
+                this.factoryStats.removeConnection(this);
+                
                 if( advisoryConsumer!=null ) {
                     advisoryConsumer.dispose();
                     advisoryConsumer=null;

Modified: 
incubator/activemq/branches/activemq-4.0/activemq-core/src/main/java/org/apache/activemq/broker/AbstractConnection.java
URL: 
http://svn.apache.org/viewvc/incubator/activemq/branches/activemq-4.0/activemq-core/src/main/java/org/apache/activemq/broker/AbstractConnection.java?rev=425922&r1=425921&r2=425922&view=diff
==============================================================================
--- 
incubator/activemq/branches/activemq-4.0/activemq-core/src/main/java/org/apache/activemq/broker/AbstractConnection.java
 (original)
+++ 
incubator/activemq/branches/activemq-4.0/activemq-core/src/main/java/org/apache/activemq/broker/AbstractConnection.java
 Wed Jul 26 17:44:17 2006
@@ -389,6 +389,13 @@
     }
 
     public Response processBrokerInfo(BrokerInfo info) {
+       
+       // We only expect to get one broker info command per connection
+       if( this.brokerInfo!=null ) {
+               log.warn("Unexpected extra broker info command received: 
"+info);
+       }
+       
+        this.brokerInfo = info;
         broker.addBroker(this, info);
         return null;
     }

Modified: 
incubator/activemq/branches/activemq-4.0/activemq-core/src/main/java/org/apache/activemq/broker/region/IndirectMessageReference.java
URL: 
http://svn.apache.org/viewvc/incubator/activemq/branches/activemq-4.0/activemq-core/src/main/java/org/apache/activemq/broker/region/IndirectMessageReference.java?rev=425922&r1=425921&r2=425922&view=diff
==============================================================================
--- 
incubator/activemq/branches/activemq-4.0/activemq-core/src/main/java/org/apache/activemq/broker/region/IndirectMessageReference.java
 (original)
+++ 
incubator/activemq/branches/activemq-4.0/activemq-core/src/main/java/org/apache/activemq/broker/region/IndirectMessageReference.java
 Wed Jul 26 17:44:17 2006
@@ -146,6 +146,7 @@
     
     synchronized public void drop() {
         dropped=true;
+        lockOwner = null;
         if( !persistent && message!=null ) {
             message.decrementReferenceCount();
             message=null;
@@ -156,7 +157,7 @@
         if( !regionDestination.lock(this, subscription) )
             return false;        
         synchronized (this) {
-            if( lockOwner!=null && lockOwner!=subscription )
+            if( dropped || (lockOwner!=null && lockOwner!=subscription) )
                 return false;
             lockOwner = subscription;
             return true;

Modified: 
incubator/activemq/branches/activemq-4.0/activemq-core/src/main/java/org/apache/activemq/thread/Scheduler.java
URL: 
http://svn.apache.org/viewvc/incubator/activemq/branches/activemq-4.0/activemq-core/src/main/java/org/apache/activemq/thread/Scheduler.java?rev=425922&r1=425921&r2=425922&view=diff
==============================================================================
--- 
incubator/activemq/branches/activemq-4.0/activemq-core/src/main/java/org/apache/activemq/thread/Scheduler.java
 (original)
+++ 
incubator/activemq/branches/activemq-4.0/activemq-core/src/main/java/org/apache/activemq/thread/Scheduler.java
 Wed Jul 26 17:44:17 2006
@@ -51,6 +51,7 @@
         ScheduledFuture ticket = (ScheduledFuture) clockTickets.remove(task);
         if( ticket!=null ) {
             ticket.cancel(true);
+               clockDaemon.remove(task);
         }
     }
 

Modified: 
incubator/activemq/branches/activemq-4.0/activemq-core/src/test/resources/org/apache/activemq/network/reconnect-broker1.xml
URL: 
http://svn.apache.org/viewvc/incubator/activemq/branches/activemq-4.0/activemq-core/src/test/resources/org/apache/activemq/network/reconnect-broker1.xml?rev=425922&r1=425921&r2=425922&view=diff
==============================================================================
--- 
incubator/activemq/branches/activemq-4.0/activemq-core/src/test/resources/org/apache/activemq/network/reconnect-broker1.xml
 (original)
+++ 
incubator/activemq/branches/activemq-4.0/activemq-core/src/test/resources/org/apache/activemq/network/reconnect-broker1.xml
 Wed Jul 26 17:44:17 2006
@@ -19,6 +19,18 @@
 
   <broker brokerName="broker1" persistent="false" useShutdownHook="false" 
useJmx="false">
 
+    <!-- disabling the subscription recovery policy allows us take memory 
leaks easier -->
+    <destinationPolicy>
+      <policyMap>
+        <policyEntries>
+          <policyEntry topic=">">
+            <subscriptionRecoveryPolicy>
+              <noSubscriptionRecoveryPolicy />
+            </subscriptionRecoveryPolicy>
+          </policyEntry>
+      </policyEntries></policyMap>
+    </destinationPolicy>
+    
     <transportConnectors>
       <transportConnector uri="tcp://localhost:61616"/>
       <transportConnector uri="vm://broker1"/>

Modified: 
incubator/activemq/branches/activemq-4.0/activemq-core/src/test/resources/org/apache/activemq/network/reconnect-broker2.xml
URL: 
http://svn.apache.org/viewvc/incubator/activemq/branches/activemq-4.0/activemq-core/src/test/resources/org/apache/activemq/network/reconnect-broker2.xml?rev=425922&r1=425921&r2=425922&view=diff
==============================================================================
--- 
incubator/activemq/branches/activemq-4.0/activemq-core/src/test/resources/org/apache/activemq/network/reconnect-broker2.xml
 (original)
+++ 
incubator/activemq/branches/activemq-4.0/activemq-core/src/test/resources/org/apache/activemq/network/reconnect-broker2.xml
 Wed Jul 26 17:44:17 2006
@@ -19,6 +19,18 @@
 
   <broker brokerName="broker2" persistent="false" useShutdownHook="false" 
useJmx="false">
 
+    <!-- disabling the subscription recovery policy allows us take memory 
leaks easier -->
+    <destinationPolicy>
+      <policyMap>
+        <policyEntries>
+          <policyEntry topic=">">
+            <subscriptionRecoveryPolicy>
+              <noSubscriptionRecoveryPolicy />
+            </subscriptionRecoveryPolicy>
+          </policyEntry>
+      </policyEntries></policyMap>
+    </destinationPolicy>
+
     <transportConnectors>
       <transportConnector uri="tcp://localhost:61617"/>
       <transportConnector uri="vm://broker2"/>

Modified: 
incubator/activemq/branches/activemq-4.0/activemq-core/src/test/resources/org/apache/activemq/network/ssh-reconnect-broker1.xml
URL: 
http://svn.apache.org/viewvc/incubator/activemq/branches/activemq-4.0/activemq-core/src/test/resources/org/apache/activemq/network/ssh-reconnect-broker1.xml?rev=425922&r1=425921&r2=425922&view=diff
==============================================================================
--- 
incubator/activemq/branches/activemq-4.0/activemq-core/src/test/resources/org/apache/activemq/network/ssh-reconnect-broker1.xml
 (original)
+++ 
incubator/activemq/branches/activemq-4.0/activemq-core/src/test/resources/org/apache/activemq/network/ssh-reconnect-broker1.xml
 Wed Jul 26 17:44:17 2006
@@ -19,6 +19,18 @@
 
   <broker brokerName="broker1" persistent="false" useShutdownHook="false" 
useJmx="false">
 
+    <!-- disabling the subscription recovery policy allows us take memory 
leaks easier -->
+    <destinationPolicy>
+      <policyMap>
+        <policyEntries>
+          <policyEntry topic=">">
+            <subscriptionRecoveryPolicy>
+              <noSubscriptionRecoveryPolicy />
+            </subscriptionRecoveryPolicy>
+          </policyEntry>
+      </policyEntries></policyMap>
+    </destinationPolicy>
+    
     <transportConnectors>
       <transportConnector uri="tcp://localhost:61616"/>
       <transportConnector uri="vm://broker1"/>

Modified: 
incubator/activemq/branches/activemq-4.0/activemq-core/src/test/resources/org/apache/activemq/network/ssh-reconnect-broker2.xml
URL: 
http://svn.apache.org/viewvc/incubator/activemq/branches/activemq-4.0/activemq-core/src/test/resources/org/apache/activemq/network/ssh-reconnect-broker2.xml?rev=425922&r1=425921&r2=425922&view=diff
==============================================================================
--- 
incubator/activemq/branches/activemq-4.0/activemq-core/src/test/resources/org/apache/activemq/network/ssh-reconnect-broker2.xml
 (original)
+++ 
incubator/activemq/branches/activemq-4.0/activemq-core/src/test/resources/org/apache/activemq/network/ssh-reconnect-broker2.xml
 Wed Jul 26 17:44:17 2006
@@ -19,6 +19,18 @@
 
   <broker brokerName="broker2" persistent="false" useShutdownHook="false" 
useJmx="false">
 
+    <!-- disabling the subscription recovery policy allows us take memory 
leaks easier -->
+    <destinationPolicy>
+      <policyMap>
+        <policyEntries>
+          <policyEntry topic=">">
+            <subscriptionRecoveryPolicy>
+              <noSubscriptionRecoveryPolicy />
+            </subscriptionRecoveryPolicy>
+          </policyEntry>
+      </policyEntries></policyMap>
+    </destinationPolicy>
+    
     <transportConnectors>
       <transportConnector uri="tcp://localhost:61617"/>
       <transportConnector uri="vm://broker2"/>


Reply via email to