From 3cf16baf5d75441f6dd02aeda5ff793de6b27c93 Mon Sep 17 00:00:00 2001 From: Andrew MacBean Date: Tue, 4 Nov 2014 16:59:07 +0000 Subject: 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 --- .../berkeleydb/BDBHAVirtualHostNodeImpl.java | 23 +++++++++++++++------- 1 file changed, 16 insertions(+), 7 deletions(-) (limited to 'qpid/java') 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 permittedNodes = ReplicatedEnvironmentFacade.convertApplicationStateBytesToPermittedNodeList(applicationState); - if (_permittedNodes.size() != permittedNodes.size() || !_permittedNodes.containsAll(permittedNodes)) + if (applicationState != null) { - if (_permittedNodes.contains(remoteNode.getAddress())) + Set permittedNodes = ReplicatedEnvironmentFacade.convertApplicationStateBytesToPermittedNodeList(applicationState); + if (_permittedNodes.size() != permittedNodes.size() || !_permittedNodes.containsAll(permittedNodes)) { - setAttribute(PERMITTED_NODES, _permittedNodes, new ArrayList(permittedNodes)); + if (_permittedNodes.contains(remoteNode.getAddress())) + { + setAttribute(PERMITTED_NODES, _permittedNodes, new ArrayList(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)); } } } -- cgit v1.2.1