diff options
author | Fraser Adams <fadams@apache.org> | 2014-08-22 12:13:40 +0000 |
---|---|---|
committer | Fraser Adams <fadams@apache.org> | 2014-08-22 12:13:40 +0000 |
commit | 717bfa2e17d949bf0771ca14fb15bc99dd41f9fd (patch) | |
tree | ccd22b9f8dd477695c8830dcdbf625a9b2390228 | |
parent | eb82a443fd17ab826dc6144587f65d5fe45fe92c (diff) | |
download | qpid-python-717bfa2e17d949bf0771ca14fb15bc99dd41f9fd.tar.gz |
QPID-6025: Fix NPE bug on java QpidConfig port
git-svn-id: https://svn.apache.org/repos/asf/qpid/branches/0.30@1619775 13f79535-47bb-0310-9956-ffa450edef68
4 files changed, 18 insertions, 6 deletions
diff --git a/qpid/tools/src/java/qpid-broker-plugins-management-qmf2/src/main/java/org/apache/qpid/server/qmf2/agentdata/Binding.java b/qpid/tools/src/java/qpid-broker-plugins-management-qmf2/src/main/java/org/apache/qpid/server/qmf2/agentdata/Binding.java index b609e6715c..e65d2734a7 100644 --- a/qpid/tools/src/java/qpid-broker-plugins-management-qmf2/src/main/java/org/apache/qpid/server/qmf2/agentdata/Binding.java +++ b/qpid/tools/src/java/qpid-broker-plugins-management-qmf2/src/main/java/org/apache/qpid/server/qmf2/agentdata/Binding.java @@ -22,6 +22,7 @@ package org.apache.qpid.server.qmf2.agentdata; // Misc Imports +import java.util.Collections; import java.util.Map; // Simple Logging Facade 4 Java @@ -118,11 +119,16 @@ public class Binding extends QmfAgentData setValue("bindingKey", binding.getName()); Map<String, Object> arguments = binding.getArguments(); - // Only add arguments property if the bindings have arguments + // Only add arguments property if the bindings have arguments otherwise + // set to empty Map to be consistent with C++ Broker. if (arguments != null && arguments.size() > 0) { setValue("arguments", arguments); } + else + { + setValue("arguments", Collections.EMPTY_MAP); + } // origin not implemented in Java Broker - not really sure what the origin property means anyway??? } diff --git a/qpid/tools/src/java/qpid-broker-plugins-management-qmf2/src/main/java/org/apache/qpid/server/qmf2/agentdata/Exchange.java b/qpid/tools/src/java/qpid-broker-plugins-management-qmf2/src/main/java/org/apache/qpid/server/qmf2/agentdata/Exchange.java index 051606ab17..b5e1f662db 100644 --- a/qpid/tools/src/java/qpid-broker-plugins-management-qmf2/src/main/java/org/apache/qpid/server/qmf2/agentdata/Exchange.java +++ b/qpid/tools/src/java/qpid-broker-plugins-management-qmf2/src/main/java/org/apache/qpid/server/qmf2/agentdata/Exchange.java @@ -147,7 +147,9 @@ public class Exchange extends QmfAgentData setValue("durable", _exchange.isDurable()); setValue("autoDelete", autoDelete); - // TODO altExchange and arguments properties. + // TODO figure out mapping from Java Broker model to QMF exchange arguments. + // Set to empty Map for now to be consistent with C++ broker. + setValue("arguments", Collections.EMPTY_MAP); // ObjectId needs to be set here in Exchange because the QMF2 version of qpid-config uses a hardcoded // _object_name as below in the _object_id that it sets in the getExchange() call and in exchangeRef. diff --git a/qpid/tools/src/java/qpid-broker-plugins-management-qmf2/src/main/java/org/apache/qpid/server/qmf2/agentdata/Queue.java b/qpid/tools/src/java/qpid-broker-plugins-management-qmf2/src/main/java/org/apache/qpid/server/qmf2/agentdata/Queue.java index 911b58b758..aad85e66e9 100644 --- a/qpid/tools/src/java/qpid-broker-plugins-management-qmf2/src/main/java/org/apache/qpid/server/qmf2/agentdata/Queue.java +++ b/qpid/tools/src/java/qpid-broker-plugins-management-qmf2/src/main/java/org/apache/qpid/server/qmf2/agentdata/Queue.java @@ -163,8 +163,9 @@ public class Queue extends QmfAgentData // altExchange needs to be set later, done in mapEncode() for convenience, because it isn't set during // Queue construction in the Java Broker. - // TODO arguments properties. - + // TODO figure out mapping from Java Broker model to QMF queue arguments. + // Set to empty Map for now to be consistent with C++ broker. + setValue("arguments", Collections.EMPTY_MAP); // ObjectId needs to be set here in Queue because the QMF2 version of qpid-config uses a hardcoded // _object_name as below in the _object_id that it sets in the getQueue() call and in queueRef. diff --git a/qpid/tools/src/java/qpid-qmf2-tools/src/main/java/org/apache/qpid/qmf2/tools/QpidConfig.java b/qpid/tools/src/java/qpid-qmf2-tools/src/main/java/org/apache/qpid/qmf2/tools/QpidConfig.java index fad52cbb00..04a0642e2e 100644 --- a/qpid/tools/src/java/qpid-qmf2-tools/src/main/java/org/apache/qpid/qmf2/tools/QpidConfig.java +++ b/qpid/tools/src/java/qpid-qmf2-tools/src/main/java/org/apache/qpid/qmf2/tools/QpidConfig.java @@ -30,6 +30,7 @@ import java.io.FileNotFoundException; import java.io.InputStreamReader; import java.io.IOException; +import java.util.Collections; import java.util.Date; import java.util.List; import java.util.Arrays; @@ -526,6 +527,7 @@ public final class QpidConfig { System.out.printf("%-10s%-" + maxNameLen + "s ", exchange.getStringValue("type"), name); Map args = (Map)exchange.getValue("arguments"); + args = (args == null) ? Collections.EMPTY_MAP : args; if (exchange.getBooleanValue("durable")) { @@ -599,7 +601,7 @@ public final class QpidConfig String bindingKey = binding.getStringValue("bindingKey"); Map arguments = (Map)binding.getValue("arguments"); - if (arguments.isEmpty()) + if (arguments == null || arguments.isEmpty()) { System.out.printf(" bind [%s] => %s\n", bindingKey, queueName); } @@ -657,6 +659,7 @@ public final class QpidConfig { System.out.printf("%-" + maxNameLen + "s ", name); Map<String, Object> args = queue.<Map<String, Object>>getValue("arguments"); + args = (args == null) ? Collections.EMPTY_MAP : args; /*System.out.println(args); for (Map.Entry<String, Object> entry : args.entrySet()) { System.out.println(entry.getKey() + " " + entry.getValue().getClass().getCanonicalName()); @@ -803,7 +806,7 @@ for (Map.Entry<String, Object> entry : args.entrySet()) { String bindingKey = binding.getStringValue("bindingKey"); Map arguments = (Map)binding.getValue("arguments"); - if (arguments.isEmpty()) + if (arguments == null || arguments.isEmpty()) { System.out.printf(" bind [%s] => %s\n", bindingKey, exchangeName); } |