summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFraser Adams <fadams@apache.org>2014-08-22 12:13:40 +0000
committerFraser Adams <fadams@apache.org>2014-08-22 12:13:40 +0000
commit717bfa2e17d949bf0771ca14fb15bc99dd41f9fd (patch)
treeccd22b9f8dd477695c8830dcdbf625a9b2390228
parenteb82a443fd17ab826dc6144587f65d5fe45fe92c (diff)
downloadqpid-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
-rw-r--r--qpid/tools/src/java/qpid-broker-plugins-management-qmf2/src/main/java/org/apache/qpid/server/qmf2/agentdata/Binding.java8
-rw-r--r--qpid/tools/src/java/qpid-broker-plugins-management-qmf2/src/main/java/org/apache/qpid/server/qmf2/agentdata/Exchange.java4
-rw-r--r--qpid/tools/src/java/qpid-broker-plugins-management-qmf2/src/main/java/org/apache/qpid/server/qmf2/agentdata/Queue.java5
-rw-r--r--qpid/tools/src/java/qpid-qmf2-tools/src/main/java/org/apache/qpid/qmf2/tools/QpidConfig.java7
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);
}