activemq-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From michaelandrepearce <...@git.apache.org>
Subject [GitHub] activemq-artemis pull request #2427: ARTEMIS-2170 Optimized CoreMessage's ch...
Date Wed, 14 Nov 2018 16:12:20 GMT
Github user michaelandrepearce commented on a diff in the pull request:

    https://github.com/apache/activemq-artemis/pull/2427#discussion_r233513734
  
    --- Diff: artemis-core-client/src/main/java/org/apache/activemq/artemis/core/message/impl/CoreMessage.java
---
    @@ -564,34 +604,59 @@ public CoreMessage setUserID(UUID userID) {
        /**
         * I am keeping this synchronized as the decode of the Properties is lazy
         */
    -   protected TypedProperties checkProperties() {
    +   protected final TypedProperties checkProperties() {
           try {
    +         TypedProperties properties = this.properties;
              if (properties == null) {
    -            synchronized (this) {
    -               if (properties == null) {
    -                  TypedProperties properties = new TypedProperties();
    -                  if (buffer != null && propertiesLocation >= 0) {
    -                     final ByteBuf byteBuf = buffer.duplicate().readerIndex(propertiesLocation);
    -                     properties.decode(byteBuf, coreMessageObjectPools == null ? null
: coreMessageObjectPools.getPropertiesDecoderPools());
    -                  }
    -                  this.properties = properties;
    -               }
    +            properties = getOrInitializeTypedProperties();
    +         }
    +         return properties;
    +      } catch (Throwable e) {
    +         throw onCheckPropertiesError(e);
    --- End diff --
    
    this MUST throw the original exception if such exception, to keep exception behaviour
of any code upstream that maybe catching specific exceptions..


---

Mime
View raw message