summaryrefslogtreecommitdiff
path: root/qpid/java
diff options
context:
space:
mode:
authorAlex Rudyy <orudyy@apache.org>2013-03-29 13:26:05 +0000
committerAlex Rudyy <orudyy@apache.org>2013-03-29 13:26:05 +0000
commit39c88de12e76fc3555c60c95a56183ac1603d0ef (patch)
tree89c0bf974d3ff4e078d4242678c1fc92f07c495c /qpid/java
parentc0360099eef5bab4109519fbe0cdf97c8c771cb9 (diff)
downloadqpid-python-39c88de12e76fc3555c60c95a56183ac1603d0ef.tar.gz
QPID-4661: Fix broker attribute conversion bug
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1462470 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'qpid/java')
-rw-r--r--qpid/java/broker/src/main/java/org/apache/qpid/server/model/adapter/BrokerAdapter.java4
-rw-r--r--qpid/java/systests/src/main/java/org/apache/qpid/systest/rest/BrokerRestTest.java23
2 files changed, 24 insertions, 3 deletions
diff --git a/qpid/java/broker/src/main/java/org/apache/qpid/server/model/adapter/BrokerAdapter.java b/qpid/java/broker/src/main/java/org/apache/qpid/server/model/adapter/BrokerAdapter.java
index 73706904e5..381d85d02f 100644
--- a/qpid/java/broker/src/main/java/org/apache/qpid/server/model/adapter/BrokerAdapter.java
+++ b/qpid/java/broker/src/main/java/org/apache/qpid/server/model/adapter/BrokerAdapter.java
@@ -1028,9 +1028,9 @@ public class BrokerAdapter extends AbstractAdapter implements Broker, Configurat
Collection<String> names = AVAILABLE_ATTRIBUTES;
for (String name : names)
{
- if (attributes.containsKey(name))
+ if (convertedAttributes.containsKey(name))
{
- Object desired = attributes.get(name);
+ Object desired = convertedAttributes.get(name);
Object expected = getAttribute(name);
if (changeAttribute(name, expected, desired))
{
diff --git a/qpid/java/systests/src/main/java/org/apache/qpid/systest/rest/BrokerRestTest.java b/qpid/java/systests/src/main/java/org/apache/qpid/systest/rest/BrokerRestTest.java
index fe4115b4c0..20905175ee 100644
--- a/qpid/java/systests/src/main/java/org/apache/qpid/systest/rest/BrokerRestTest.java
+++ b/qpid/java/systests/src/main/java/org/apache/qpid/systest/rest/BrokerRestTest.java
@@ -34,7 +34,6 @@ import org.apache.qpid.server.model.LifetimePolicy;
import org.apache.qpid.server.model.Port;
import org.apache.qpid.server.model.State;
import org.apache.qpid.server.model.VirtualHost;
-import org.apache.qpid.server.model.adapter.BrokerAdapter;
import org.apache.qpid.test.utils.QpidTestCase;
import org.apache.qpid.test.utils.TestBrokerConfiguration;
import org.apache.qpid.test.utils.TestSSLConstants;
@@ -103,6 +102,28 @@ public class BrokerRestTest extends QpidRestTestCase
assertBrokerAttributes(brokerAttributes, brokerDetails);
}
+ public void testPutUpdateWhereNumericAttributesAreSetAsStringValues() throws Exception
+ {
+ Map<String, Object> validAttributes = getValidBrokerAttributes();
+ Map<String, Object> attributes = new HashMap<String, Object>();
+
+ for (Map.Entry<String, Object> entry : validAttributes.entrySet())
+ {
+ Object value = entry.getValue();
+ if (value instanceof Number)
+ {
+ value = String.valueOf(value);
+ }
+ attributes.put(entry.getKey(), value);
+ }
+
+ int response = getRestTestHelper().submitRequest("/rest/broker", "PUT", attributes);
+ assertEquals("Unexpected update response", 200, response);
+
+ Map<String, Object> brokerDetails = getRestTestHelper().getJsonAsSingletonList("/rest/broker");
+ assertBrokerAttributes(validAttributes, brokerDetails);
+ }
+
public void testPutToUpdateWithInvalidAttributeValues() throws Exception
{
Map<String, Object> invalidAttributes = new HashMap<String, Object>();