diff options
Diffstat (limited to 'qpid/java/broker/src/main/java/org/apache/qpid/server/configuration/store/MemoryConfigurationEntryStore.java')
-rw-r--r-- | qpid/java/broker/src/main/java/org/apache/qpid/server/configuration/store/MemoryConfigurationEntryStore.java | 20 |
1 files changed, 19 insertions, 1 deletions
diff --git a/qpid/java/broker/src/main/java/org/apache/qpid/server/configuration/store/MemoryConfigurationEntryStore.java b/qpid/java/broker/src/main/java/org/apache/qpid/server/configuration/store/MemoryConfigurationEntryStore.java index 24e0e3bbff..2b9c5ad290 100644 --- a/qpid/java/broker/src/main/java/org/apache/qpid/server/configuration/store/MemoryConfigurationEntryStore.java +++ b/qpid/java/broker/src/main/java/org/apache/qpid/server/configuration/store/MemoryConfigurationEntryStore.java @@ -66,7 +66,7 @@ public class MemoryConfigurationEntryStore implements ConfigurationEntryStore private static final String ID = "id"; private static final String TYPE = "@type"; - private static final int STORE_VERSION = 1; + static final int STORE_VERSION = 1; private final ObjectMapper _objectMapper; private final Map<UUID, ConfigurationEntry> _entries; @@ -268,6 +268,24 @@ public class MemoryConfigurationEntryStore implements ConfigurationEntryStore { is = url.openStream(); JsonNode node = loadJsonNodes(is, _objectMapper); + + int storeVersion = 0; + JsonNode storeVersionNode = node.get(Broker.STORE_VERSION); + if (storeVersionNode == null || storeVersionNode.isNull()) + { + throw new IllegalConfigurationException("Broker " + Broker.STORE_VERSION + " attribute must be specified"); + } + else + { + storeVersion = storeVersionNode.getIntValue(); + } + + if (storeVersion != STORE_VERSION) + { + throw new IllegalConfigurationException("The data of version " + storeVersion + + " can not be loaded by store of version " + STORE_VERSION); + } + ConfigurationEntry brokerEntry = toEntry(node, Broker.class, _entries); _rootId = brokerEntry.getId(); } |