You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@activemq.apache.org by cl...@apache.org on 2017/01/18 15:24:46 UTC

activemq-artemis git commit: ARTEMIS-962 Fix CME when parsing system properties

Repository: activemq-artemis
Updated Branches:
  refs/heads/1.x 52d03c885 -> 59f20d752


ARTEMIS-962 Fix CME when parsing system properties

Add synchronized block against the properties before iterating on them.

JIRA: https://issues.apache.org/jira/browse/ARTEMIS-926
(cherry picked from commit 5ae47e8c3c4cd17ca6abc75e72be0338b0ceaf96)

This closes #969


Project: http://git-wip-us.apache.org/repos/asf/activemq-artemis/repo
Commit: http://git-wip-us.apache.org/repos/asf/activemq-artemis/commit/59f20d75
Tree: http://git-wip-us.apache.org/repos/asf/activemq-artemis/tree/59f20d75
Diff: http://git-wip-us.apache.org/repos/asf/activemq-artemis/diff/59f20d75

Branch: refs/heads/1.x
Commit: 59f20d752a23fb8422f4305b999b994cc10afaff
Parents: 52d03c8
Author: Jeff Mesnil <jm...@gmail.com>
Authored: Wed Jan 18 15:56:35 2017 +0100
Committer: Clebert Suconic <cl...@apache.org>
Committed: Wed Jan 18 10:24:06 2017 -0500

----------------------------------------------------------------------
 .../core/config/impl/ConfigurationImpl.java     | 25 ++++++++++----------
 1 file changed, 13 insertions(+), 12 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/activemq-artemis/blob/59f20d75/artemis-server/src/main/java/org/apache/activemq/artemis/core/config/impl/ConfigurationImpl.java
----------------------------------------------------------------------
diff --git a/artemis-server/src/main/java/org/apache/activemq/artemis/core/config/impl/ConfigurationImpl.java b/artemis-server/src/main/java/org/apache/activemq/artemis/core/config/impl/ConfigurationImpl.java
index e318874..a59d1a2 100644
--- a/artemis-server/src/main/java/org/apache/activemq/artemis/core/config/impl/ConfigurationImpl.java
+++ b/artemis-server/src/main/java/org/apache/activemq/artemis/core/config/impl/ConfigurationImpl.java
@@ -302,22 +302,23 @@ public class ConfigurationImpl implements Configuration, Serializable {
 
    @Override
    public Configuration parseSystemProperties(Properties properties) throws Exception {
+      synchronized (properties) {
+         Map<String, Object> beanProperties = new HashMap<>();
+
+         for (Map.Entry<Object, Object> entry : properties.entrySet()) {
+            if (entry.getKey().toString().startsWith(systemPropertyPrefix)) {
+               String key = entry.getKey().toString().substring(systemPropertyPrefix.length());
+               logger.debug("Setting up config, " + key + "=" + entry.getValue());
+               beanProperties.put(key, entry.getValue());
+            }
+         }
 
-      Map<String, Object> beanProperties = new HashMap<>();
-
-      for (Map.Entry<Object, Object> entry : properties.entrySet()) {
-         if (entry.getKey().toString().startsWith(systemPropertyPrefix)) {
-            String key = entry.getKey().toString().substring(systemPropertyPrefix.length());
-            logger.debug("Setting up config, " + key + "=" + entry.getValue());
-            beanProperties.put(key, entry.getValue());
+         if (!beanProperties.isEmpty()) {
+            BeanSupport.setData(this, beanProperties);
          }
-      }
 
-      if (!beanProperties.isEmpty()) {
-         BeanSupport.setData(this, beanProperties);
+         return this;
       }
-
-      return this;
    }
 
    @Override