Author: macbean
Date: Thu Jun 19 09:42:45 2014
New Revision: 1603791

URL: http://svn.apache.org/r1603791
Log:
QPID-5831: Unexpected internal exception when closing JE Replicated environment

Modified:
    
qpid/trunk/qpid/java/bdbstore/src/main/java/org/apache/qpid/server/store/berkeleydb/replication/ReplicatedEnvironmentFacade.java

Modified: 
qpid/trunk/qpid/java/bdbstore/src/main/java/org/apache/qpid/server/store/berkeleydb/replication/ReplicatedEnvironmentFacade.java
URL: 
http://svn.apache.org/viewvc/qpid/trunk/qpid/java/bdbstore/src/main/java/org/apache/qpid/server/store/berkeleydb/replication/ReplicatedEnvironmentFacade.java?rev=1603791&r1=1603790&r2=1603791&view=diff
==============================================================================
--- 
qpid/trunk/qpid/java/bdbstore/src/main/java/org/apache/qpid/server/store/berkeleydb/replication/ReplicatedEnvironmentFacade.java
 (original)
+++ 
qpid/trunk/qpid/java/bdbstore/src/main/java/org/apache/qpid/server/store/berkeleydb/replication/ReplicatedEnvironmentFacade.java
 Thu Jun 19 09:42:45 2014
@@ -782,8 +782,28 @@ public class ReplicatedEnvironmentFacade
         }
         finally
         {
-            _environment.close();
-            _environment = null;
+            // Try closing the environment but swallow 
EnvironmentFailureException
+            // if the environment becomes invalid while closing.
+            // This can be caused by potential race between facade close and 
DatabasePinger open.
+            try
+            {
+                _environment.close();
+            }
+            catch (EnvironmentFailureException efe)
+            {
+                if (!_environment.isValid())
+                {
+                    LOGGER.debug("Environment became invalid on close, so 
ignore", efe);
+                }
+                else
+                {
+                    throw efe;
+                }
+            }
+            finally
+            {
+                _environment = null;
+            }
         }
     }
 



---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to