Author: orudyy
Date: Fri May 29 14:32:20 2015
New Revision: 1682487

URL: http://svn.apache.org/r1682487
Log:
QPID-6560: Remove redundant close of ReplicationEnvironmentFacade on intruder 
detection as it might block on facade thread executors shutdown caused by tasks 
scheduled to execute on VHN close and HA events

Modified:
    
qpid/java/trunk/bdbstore/src/main/java/org/apache/qpid/server/virtualhostnode/berkeleydb/BDBHAVirtualHostNodeImpl.java

Modified: 
qpid/java/trunk/bdbstore/src/main/java/org/apache/qpid/server/virtualhostnode/berkeleydb/BDBHAVirtualHostNodeImpl.java
URL: 
http://svn.apache.org/viewvc/qpid/java/trunk/bdbstore/src/main/java/org/apache/qpid/server/virtualhostnode/berkeleydb/BDBHAVirtualHostNodeImpl.java?rev=1682487&r1=1682486&r2=1682487&view=diff
==============================================================================
--- 
qpid/java/trunk/bdbstore/src/main/java/org/apache/qpid/server/virtualhostnode/berkeleydb/BDBHAVirtualHostNodeImpl.java
 (original)
+++ 
qpid/java/trunk/bdbstore/src/main/java/org/apache/qpid/server/virtualhostnode/berkeleydb/BDBHAVirtualHostNodeImpl.java
 Fri May 29 14:32:20 2015
@@ -1218,22 +1218,24 @@ public class BDBHAVirtualHostNodeImpl ex
     {
         LOGGER.info("Intruder detected (" + intruderHostAndPort + "), stopping 
and setting state to ERRORED");
 
-        State initialState = getState();
+        final State initialState = getState();
         try
         {
-            stopAndSetStateTo(State.ERRORED);
+            stopAndSetStateTo(State.ERRORED).addListener(new Runnable()
+            {
+                @Override
+                public void run()
+                {
+                    _lastRole.set(NodeRole.DETACHED);
+                    attributeSet(ROLE, _role, NodeRole.DETACHED);
+                    notifyStateChanged(initialState, State.ERRORED);
+                }
+            }, getTaskExecutor().getExecutor());
         }
         catch (Exception e)
         {
             LOGGER.error("Unexpected exception on closing the node when 
intruder is detected ", e);
         }
-        finally
-        {
-            closeEnvironment();
-            _lastRole.set(NodeRole.DETACHED);
-            attributeSet(ROLE, _role, NodeRole.DETACHED);
-        }
-        notifyStateChanged(initialState, State.ERRORED);
     }
 
     private abstract class VirtualHostNodeGroupTask implements Task<Void>



---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscr...@qpid.apache.org
For additional commands, e-mail: commits-h...@qpid.apache.org

Reply via email to