From 935c44e8b502304cec0830bb09099c27c3ed07bb Mon Sep 17 00:00:00 2001 From: Keith Wall Date: Wed, 30 Apr 2014 15:51:32 +0000 Subject: QPID-5715: Address review comments from Alex Rudyy git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1591366 13f79535-47bb-0310-9956-ffa450edef68 --- .../berkeleydb/BDBHAVirtualHostNodeImpl.java | 44 +++++++++++----------- 1 file changed, 22 insertions(+), 22 deletions(-) (limited to 'qpid/java/bdbstore/src/main') 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 1f647652c2..95f542585c 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 @@ -24,6 +24,7 @@ import java.security.PrivilegedAction; import java.util.Collection; import java.util.HashMap; import java.util.Map; +import java.util.Set; import java.util.concurrent.ExecutionException; import java.util.concurrent.TimeUnit; import java.util.concurrent.TimeoutException; @@ -37,8 +38,8 @@ import com.sleepycat.je.rep.ReplicationNode; import com.sleepycat.je.rep.StateChangeEvent; import com.sleepycat.je.rep.StateChangeListener; -import org.apache.qpid.server.configuration.IllegalConfigurationException; import org.apache.log4j.Logger; +import org.apache.qpid.server.configuration.IllegalConfigurationException; import org.apache.qpid.server.logging.messages.ConfigStoreMessages; import org.apache.qpid.server.model.Broker; import org.apache.qpid.server.model.BrokerModel; @@ -107,7 +108,7 @@ public class BDBHAVirtualHostNodeImpl extends AbstractVirtualHostNode proxyForValidation, final Set changedAttributes) + { + super.validateChange(proxyForValidation, changedAttributes); + if (changedAttributes.contains(ROLE)) + { + String currentRole = getRole(); + if (!ReplicatedEnvironment.State.REPLICA.name().equals(currentRole)) + { + throw new IllegalStateException("Cannot transfer mastership when not a replica, current role is " + currentRole); + } + BDBHAVirtualHostNode proposed = (BDBHAVirtualHostNode)proxyForValidation; + if (!ReplicatedEnvironment.State.MASTER.name().equals(proposed.getRole())) + { + throw new IllegalArgumentException("Changing role to other value then " + ReplicatedEnvironment.State.MASTER.name() + " is unsupported"); + } + } + } + @Override public Map getEnvironmentConfiguration() { @@ -530,26 +550,6 @@ public class BDBHAVirtualHostNodeImpl extends AbstractVirtualHostNode