diff options
| author | Andrew MacBean <macbean@apache.org> | 2014-11-04 16:59:07 +0000 |
|---|---|---|
| committer | Andrew MacBean <macbean@apache.org> | 2014-11-04 16:59:07 +0000 |
| commit | 3cf16baf5d75441f6dd02aeda5ff793de6b27c93 (patch) | |
| tree | 6cbc091091e5603bc4e8c6e97f13f7885b7750d0 /qpid/java/bdbstore/src | |
| parent | c64d0182543fd9b2b8029fb18f99993a3891977c (diff) | |
| download | qpid-python-3cf16baf5d75441f6dd02aeda5ff793de6b27c93.tar.gz | |
QPID-6208: PermittedNodeList seen to disappear while performing certain HA operations
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1636646 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'qpid/java/bdbstore/src')
| -rw-r--r-- | qpid/java/bdbstore/src/main/java/org/apache/qpid/server/virtualhostnode/berkeleydb/BDBHAVirtualHostNodeImpl.java | 23 |
1 files changed, 16 insertions, 7 deletions
diff --git a/qpid/java/bdbstore/src/main/java/org/apache/qpid/server/virtualhostnode/berkeleydb/BDBHAVirtualHostNodeImpl.java b/qpid/java/bdbstore/src/main/java/org/apache/qpid/server/virtualhostnode/berkeleydb/BDBHAVirtualHostNodeImpl.java index a35f87829e..41bba263a9 100644 --- a/qpid/java/bdbstore/src/main/java/org/apache/qpid/server/virtualhostnode/berkeleydb/BDBHAVirtualHostNodeImpl.java +++ b/qpid/java/bdbstore/src/main/java/org/apache/qpid/server/virtualhostnode/berkeleydb/BDBHAVirtualHostNodeImpl.java @@ -1026,17 +1026,26 @@ public class BDBHAVirtualHostNodeImpl extends AbstractVirtualHostNode<BDBHAVirtu if (NodeRole.MASTER == newRole) { byte[] applicationState = nodeState.getAppState(); - Set<String> permittedNodes = ReplicatedEnvironmentFacade.convertApplicationStateBytesToPermittedNodeList(applicationState); - if (_permittedNodes.size() != permittedNodes.size() || !_permittedNodes.containsAll(permittedNodes)) + if (applicationState != null) { - if (_permittedNodes.contains(remoteNode.getAddress())) + Set<String> permittedNodes = ReplicatedEnvironmentFacade.convertApplicationStateBytesToPermittedNodeList(applicationState); + if (_permittedNodes.size() != permittedNodes.size() || !_permittedNodes.containsAll(permittedNodes)) { - setAttribute(PERMITTED_NODES, _permittedNodes, new ArrayList<String>(permittedNodes)); + if (_permittedNodes.contains(remoteNode.getAddress())) + { + setAttribute(PERMITTED_NODES, _permittedNodes, new ArrayList<String>(permittedNodes)); + } else + { + LOGGER.warn("Cannot change permitted nodes from Master as existing master node '" + remoteNode.getName() + + "' (" + remoteNode.getAddress() + ") is not in list of trusted nodes " + _permittedNodes); + } } - else + } + else + { + if (LOGGER.isDebugEnabled()) { - LOGGER.warn("Cannot change permitted nodes from Master as existing master node '" + remoteNode.getName() - + "' (" + remoteNode.getAddress() + ") is not in list of trusted nodes " + _permittedNodes); + LOGGER.debug(String.format("Application state returned by JE was 'null' so skipping permitted node handling: s%", nodeState)); } } } |
