Github user michaelandrepearce commented on a diff in the pull request:

    https://github.com/apache/activemq-artemis/pull/1752#discussion_r160009754
  
    --- Diff: 
artemis-core-client/src/main/java/org/apache/activemq/artemis/core/message/impl/CoreMessage.java
 ---
    @@ -528,8 +543,17 @@ public void decodeHeadersAndProperties(final ByteBuf 
buffer) {
        private void decodeHeadersAndProperties(final ByteBuf buffer, boolean 
lazyProperties) {
           messageIDPosition = buffer.readerIndex();
           messageID = buffer.readLong();
    -
    -      address = SimpleString.readNullableSimpleString(buffer);
    +      int b = buffer.readByte();
    +      if (b != DataConstants.NULL) {
    +         final int length = buffer.readInt();
    +         if (keysInterner != null) {
    +            address = keysInterner.intern(buffer, length);
    --- End diff --
    
    If you are having separate pools of last seen SimpleStrings instead of 
global interning for typed properties keys and values, you should probably pool 
address's separate from those. Imagine the pool is size 32 default, very 
quickly be used up and find typedproperty keys are invalidating address's in 
that last seen pool


---

Reply via email to