Github user michaelandrepearce commented on a diff in the pull request:
https://github.com/apache/activemq-artemis/pull/2115#discussion_r191918917
--- Diff:
artemis-protocols/artemis-amqp-protocol/src/main/java/org/apache/activemq/artemis/protocol/amqp/broker/AMQPMessage.java
---
@@ -604,26 +607,39 @@ public String getAddress() {
return addressSimpleString == null ? null :
addressSimpleString.toString();
}
+
+ public SimpleString cachedAddressSimpleString(String address) {
+ return CoreMessageObjectPools.cachedAddressSimpleString(address,
coreMessageObjectPools);
+ }
+
@Override
public AMQPMessage setAddress(String address) {
- this.address = SimpleString.toSimpleString(address,
coreMessageObjectPools == null ? null :
coreMessageObjectPools.getAddressStringSimpleStringPool());
+ setAddress(cachedAddressSimpleString(address));
return this;
}
@Override
public AMQPMessage setAddress(SimpleString address) {
this.address = address;
+ createExtraProperties().putSimpleStringProperty(ADDRESS_PROPERTY,
address);
return this;
}
@Override
public SimpleString getAddressSimpleString() {
if (address == null) {
- Properties properties = getProtonMessage().getProperties();
- if (properties != null) {
- setAddress(properties.getTo());
- } else {
- return null;
+
+ address =
createExtraProperties().getSimpleStringProperty(ADDRESS_PROPERTY);
+
+ if (address != null) {
+ return address;
+ }
+
+
+ Properties properties = getProperties();
+ if (properties != null && properties.getTo() != null) {
+ address = cachedAddressSimpleString(properties.getTo());
+ return address;
--- End diff --
i personally prefer Single Entry, Single Exit, but as you note its all
personal pref :), no worries if you meant to do it on purpose, just was
checking it wasn't by mistake.
---