diff options
| author | Alex Rudyy <orudyy@apache.org> | 2013-03-29 13:26:05 +0000 |
|---|---|---|
| committer | Alex Rudyy <orudyy@apache.org> | 2013-03-29 13:26:05 +0000 |
| commit | 39c88de12e76fc3555c60c95a56183ac1603d0ef (patch) | |
| tree | 89c0bf974d3ff4e078d4242678c1fc92f07c495c /qpid/java | |
| parent | c0360099eef5bab4109519fbe0cdf97c8c771cb9 (diff) | |
| download | qpid-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.java | 4 | ||||
| -rw-r--r-- | qpid/java/systests/src/main/java/org/apache/qpid/systest/rest/BrokerRestTest.java | 23 |
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>(); |
