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]