From 39c88de12e76fc3555c60c95a56183ac1603d0ef Mon Sep 17 00:00:00 2001 From: Alex Rudyy Date: Fri, 29 Mar 2013 13:26:05 +0000 Subject: QPID-4661: Fix broker attribute conversion bug git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1462470 13f79535-47bb-0310-9956-ffa450edef68 --- .../qpid/server/model/adapter/BrokerAdapter.java | 4 ++-- .../apache/qpid/systest/rest/BrokerRestTest.java | 23 +++++++++++++++++++++- 2 files changed, 24 insertions(+), 3 deletions(-) (limited to 'qpid/java') 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 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 validAttributes = getValidBrokerAttributes(); + Map attributes = new HashMap(); + + for (Map.Entry 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 brokerDetails = getRestTestHelper().getJsonAsSingletonList("/rest/broker"); + assertBrokerAttributes(validAttributes, brokerDetails); + } + public void testPutToUpdateWithInvalidAttributeValues() throws Exception { Map invalidAttributes = new HashMap(); -- cgit v1.2.1