diff options
Diffstat (limited to 'java/broker-plugins/management-jmx/src/main/java/org/apache/qpid/server/jmx/mbeans/QueueMBean.java')
-rw-r--r-- | java/broker-plugins/management-jmx/src/main/java/org/apache/qpid/server/jmx/mbeans/QueueMBean.java | 24 |
1 files changed, 21 insertions, 3 deletions
diff --git a/java/broker-plugins/management-jmx/src/main/java/org/apache/qpid/server/jmx/mbeans/QueueMBean.java b/java/broker-plugins/management-jmx/src/main/java/org/apache/qpid/server/jmx/mbeans/QueueMBean.java index 1365ceb06a..b44a752312 100644 --- a/java/broker-plugins/management-jmx/src/main/java/org/apache/qpid/server/jmx/mbeans/QueueMBean.java +++ b/java/broker-plugins/management-jmx/src/main/java/org/apache/qpid/server/jmx/mbeans/QueueMBean.java @@ -50,6 +50,7 @@ import org.apache.qpid.server.jmx.ManagedObject; import org.apache.qpid.server.message.AMQMessageHeader; import org.apache.qpid.server.message.ServerMessage; import org.apache.qpid.server.model.Exchange; +import org.apache.qpid.server.model.ExclusivityPolicy; import org.apache.qpid.server.model.LifetimePolicy; import org.apache.qpid.server.model.Queue; import org.apache.qpid.server.model.QueueNotificationListener; @@ -194,7 +195,7 @@ public class QueueMBean extends AMQManagedObject implements ManagedQueue, QueueN public boolean isAutoDelete() { - return _queue.getLifetimePolicy() == LifetimePolicy.AUTO_DELETE; + return _queue.getLifetimePolicy() != LifetimePolicy.PERMANENT; } public Long getMaximumMessageAge() @@ -264,12 +265,29 @@ public class QueueMBean extends AMQManagedObject implements ManagedQueue, QueueN public boolean isExclusive() { - return (Boolean) _queue.getAttribute(Queue.EXCLUSIVE); + final Object attribute = _queue.getAttribute(Queue.EXCLUSIVE); + return attribute != null && attribute != ExclusivityPolicy.NONE; } public void setExclusive(boolean exclusive) { - _queue.setAttribute(Queue.EXCLUSIVE, isExclusive(), exclusive); + if(exclusive) + { + Object currentValue = _queue.getAttribute(Queue.EXCLUSIVE); + if(currentValue == null || currentValue == ExclusivityPolicy.NONE) + { + _queue.setAttribute(Queue.EXCLUSIVE, currentValue, ExclusivityPolicy.CONTAINER); + } + } + else + { + Object currentValue = _queue.getAttribute(Queue.EXCLUSIVE); + if(currentValue != null && currentValue != ExclusivityPolicy.NONE) + { + _queue.setAttribute(Queue.EXCLUSIVE, currentValue, ExclusivityPolicy.NONE); + } + } + } public void setAlternateExchange(String exchangeName) throws OperationsException |