Repository: qpid-broker-j Updated Branches: refs/heads/master bd5b95147 -> 37209c589
QPID-7944: [Java Broker] [Message Conversion] Work around for JDK-8148463 when handling application properties with null values. Project: http://git-wip-us.apache.org/repos/asf/qpid-broker-j/repo Commit: http://git-wip-us.apache.org/repos/asf/qpid-broker-j/commit/37209c58 Tree: http://git-wip-us.apache.org/repos/asf/qpid-broker-j/tree/37209c58 Diff: http://git-wip-us.apache.org/repos/asf/qpid-broker-j/diff/37209c58 Branch: refs/heads/master Commit: 37209c5890e43841ab4c9abe8870392dbe27a010 Parents: bd5b951 Author: Lorenz Quack <lqu...@apache.org> Authored: Mon Oct 9 14:50:07 2017 +0100 Committer: Lorenz Quack <lqu...@apache.org> Committed: Mon Oct 9 14:50:07 2017 +0100 ---------------------------------------------------------------------- .../message/internal/InternalMessageHeader.java | 19 ++++++++++++++----- .../PropertyConverter_0_10_to_InternalTest.java | 1 + .../PropertyConverter_v1_0_to_InternalTest.java | 1 + 3 files changed, 16 insertions(+), 5 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/qpid-broker-j/blob/37209c58/broker-core/src/main/java/org/apache/qpid/server/message/internal/InternalMessageHeader.java ---------------------------------------------------------------------- diff --git a/broker-core/src/main/java/org/apache/qpid/server/message/internal/InternalMessageHeader.java b/broker-core/src/main/java/org/apache/qpid/server/message/internal/InternalMessageHeader.java index a353a93..46f4a2e 100644 --- a/broker-core/src/main/java/org/apache/qpid/server/message/internal/InternalMessageHeader.java +++ b/broker-core/src/main/java/org/apache/qpid/server/message/internal/InternalMessageHeader.java @@ -26,8 +26,6 @@ import java.util.Collections; import java.util.LinkedHashMap; import java.util.Map; import java.util.Set; -import java.util.function.Function; -import java.util.stream.Collectors; import org.apache.qpid.server.message.AMQMessageHeader; @@ -89,9 +87,7 @@ public final class InternalMessageHeader implements AMQMessageHeader, Serializab public InternalMessageHeader(final AMQMessageHeader header, long arrivalTime) { - this(header.getHeaderNames() - .stream() - .collect(Collectors.toMap(Function.identity(), header::getHeader)), + this(buildHeaders(header), header.getCorrelationId(), header.getExpiration(), header.getUserId(), @@ -219,4 +215,17 @@ public final class InternalMessageHeader implements AMQMessageHeader, Serializab { return Collections.unmodifiableMap(new LinkedHashMap<>(_headers)); } + + private static Map<String, Object> buildHeaders(final AMQMessageHeader header) + { + Map<String, Object> map = new LinkedHashMap<>(); + for (String s : header.getHeaderNames()) + { + if (map.put(s, header.getHeader(s)) != null) + { + throw new IllegalStateException("Duplicate key"); + } + } + return map; + } } http://git-wip-us.apache.org/repos/asf/qpid-broker-j/blob/37209c58/broker-plugins/amqp-0-10-protocol/src/test/java/org/apache/qpid/server/protocol/v0_10/PropertyConverter_0_10_to_InternalTest.java ---------------------------------------------------------------------- diff --git a/broker-plugins/amqp-0-10-protocol/src/test/java/org/apache/qpid/server/protocol/v0_10/PropertyConverter_0_10_to_InternalTest.java b/broker-plugins/amqp-0-10-protocol/src/test/java/org/apache/qpid/server/protocol/v0_10/PropertyConverter_0_10_to_InternalTest.java index a7b9a19..d6a5156 100644 --- a/broker-plugins/amqp-0-10-protocol/src/test/java/org/apache/qpid/server/protocol/v0_10/PropertyConverter_0_10_to_InternalTest.java +++ b/broker-plugins/amqp-0-10-protocol/src/test/java/org/apache/qpid/server/protocol/v0_10/PropertyConverter_0_10_to_InternalTest.java @@ -72,6 +72,7 @@ public class PropertyConverter_0_10_to_InternalTest extends QpidTestCase Map<String, Object> headers = new HashMap<>(); headers.put("testProperty1", "testProperty1Value"); headers.put("intProperty", 1); + headers.put("nullProperty", null); final MessageProperties messageProperties = new MessageProperties(); messageProperties.setApplicationHeaders(headers); MessageTransferMessage message = createTestMessage(messageProperties); http://git-wip-us.apache.org/repos/asf/qpid-broker-j/blob/37209c58/broker-plugins/amqp-1-0-protocol/src/test/java/org/apache/qpid/server/protocol/v1_0/PropertyConverter_v1_0_to_InternalTest.java ---------------------------------------------------------------------- diff --git a/broker-plugins/amqp-1-0-protocol/src/test/java/org/apache/qpid/server/protocol/v1_0/PropertyConverter_v1_0_to_InternalTest.java b/broker-plugins/amqp-1-0-protocol/src/test/java/org/apache/qpid/server/protocol/v1_0/PropertyConverter_v1_0_to_InternalTest.java index ed7e5e6..dea495a 100644 --- a/broker-plugins/amqp-1-0-protocol/src/test/java/org/apache/qpid/server/protocol/v1_0/PropertyConverter_v1_0_to_InternalTest.java +++ b/broker-plugins/amqp-1-0-protocol/src/test/java/org/apache/qpid/server/protocol/v1_0/PropertyConverter_v1_0_to_InternalTest.java @@ -313,6 +313,7 @@ public class PropertyConverter_v1_0_to_InternalTest extends QpidTestCase Map<String, Object> properties = new HashMap<>(); properties.put("testProperty1", "testProperty1Value"); properties.put("intProperty", 1); + properties.put("nullProperty", null); ApplicationProperties applicationProperties = new ApplicationProperties(properties); Message_1_0 originalMessage = createTestMessage(applicationProperties); --------------------------------------------------------------------- To unsubscribe, e-mail: commits-unsubscr...@qpid.apache.org For additional commands, e-mail: commits-h...@qpid.apache.org