Author: lquack
Date: Thu Jul 14 16:01:28 2016
New Revision: 1752683

URL: http://svn.apache.org/viewvc?rev=1752683&view=rev
Log:
QPID-7331: [Java Broker] fix JsonFilePreferenceStore state handling on 
concurrent open and close

Modified:
    
qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/store/preferences/JsonFilePreferenceStore.java

Modified: 
qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/store/preferences/JsonFilePreferenceStore.java
URL: 
http://svn.apache.org/viewvc/qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/store/preferences/JsonFilePreferenceStore.java?rev=1752683&r1=1752682&r2=1752683&view=diff
==============================================================================
--- 
qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/store/preferences/JsonFilePreferenceStore.java
 (original)
+++ 
qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/store/preferences/JsonFilePreferenceStore.java
 Thu Jul 14 16:01:28 2016
@@ -110,6 +110,7 @@ public class JsonFilePreferenceStore ext
         }
         catch (Exception e)
         {
+            _storeState.set(StoreState.ERRORED);
             close();
             throw e;
         }
@@ -121,7 +122,7 @@ public class JsonFilePreferenceStore ext
         while (true)
         {
             StoreState storeState = _storeState.get();
-            if (storeState.equals(StoreState.OPENED) || 
storeState.equals(StoreState.OPENING))
+            if (storeState.equals(StoreState.OPENED) || 
storeState.equals(StoreState.ERRORED))
             {
                 if (_storeState.compareAndSet(storeState, StoreState.CLOSING))
                 {
@@ -194,7 +195,7 @@ public class JsonFilePreferenceStore ext
 
     private enum StoreState
     {
-        CLOSED, OPENING, OPENED, CLOSING;
+        CLOSED, OPENING, OPENED, CLOSING, ERRORED;
     }
 
     public static class StoreContent



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

Reply via email to