You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@activemq.apache.org by jb...@apache.org on 2020/02/28 06:31:45 UTC
[activemq] branch activemq-5.15.x updated: AMQ-7423 - Remove
synchronization from JAAS PropertiesLoader
This is an automated email from the ASF dual-hosted git repository.
jbonofre pushed a commit to branch activemq-5.15.x
in repository https://gitbox.apache.org/repos/asf/activemq.git
The following commit(s) were added to refs/heads/activemq-5.15.x by this push:
new ae9d1c5 AMQ-7423 - Remove synchronization from JAAS PropertiesLoader
ae9d1c5 is described below
commit ae9d1c5136e0ade3209772348ef69b263be7ed05
Author: Colm O hEigeartaigh <co...@apache.org>
AuthorDate: Thu Feb 27 15:29:26 2020 +0000
AMQ-7423 - Remove synchronization from JAAS PropertiesLoader
(cherry picked from commit 67fb6f8871a04e18870fda65ac5eab9d486da309)
---
.../org/apache/activemq/security/AuthorizationEntry.java | 3 +--
.../apache/activemq/security/DefaultAuthorizationMap.java | 2 --
.../org/apache/activemq/filter/DestinationMapEntry.java | 2 --
.../java/org/apache/activemq/jaas/PropertiesLoader.java | 15 ++++-----------
4 files changed, 5 insertions(+), 17 deletions(-)
diff --git a/activemq-broker/src/main/java/org/apache/activemq/security/AuthorizationEntry.java b/activemq-broker/src/main/java/org/apache/activemq/security/AuthorizationEntry.java
index 37f07ba..8d208ff 100644
--- a/activemq-broker/src/main/java/org/apache/activemq/security/AuthorizationEntry.java
+++ b/activemq-broker/src/main/java/org/apache/activemq/security/AuthorizationEntry.java
@@ -45,9 +45,8 @@ public class AuthorizationEntry extends DestinationMapEntry {
return groupClass;
}
- @SuppressWarnings("unchecked")
private Set<Object> emptySet() {
- return Collections.EMPTY_SET;
+ return Collections.emptySet();
}
public void setGroupClass(String groupClass) {
diff --git a/activemq-broker/src/main/java/org/apache/activemq/security/DefaultAuthorizationMap.java b/activemq-broker/src/main/java/org/apache/activemq/security/DefaultAuthorizationMap.java
index b249119..e27f8a7 100644
--- a/activemq-broker/src/main/java/org/apache/activemq/security/DefaultAuthorizationMap.java
+++ b/activemq-broker/src/main/java/org/apache/activemq/security/DefaultAuthorizationMap.java
@@ -24,8 +24,6 @@ import java.util.*;
import org.apache.activemq.command.ActiveMQDestination;
import org.apache.activemq.filter.DestinationMap;
import org.apache.activemq.filter.DestinationMapEntry;
-import org.apache.activemq.filter.DestinationMapNode;
-import org.apache.activemq.filter.DestinationNode;
/**
* Represents a destination based configuration of policies so that individual
diff --git a/activemq-client/src/main/java/org/apache/activemq/filter/DestinationMapEntry.java b/activemq-client/src/main/java/org/apache/activemq/filter/DestinationMapEntry.java
index f1d7838..c08ebca 100644
--- a/activemq-client/src/main/java/org/apache/activemq/filter/DestinationMapEntry.java
+++ b/activemq-client/src/main/java/org/apache/activemq/filter/DestinationMapEntry.java
@@ -16,8 +16,6 @@
*/
package org.apache.activemq.filter;
-import javax.annotation.PostConstruct;
-
import org.apache.activemq.command.*;
/**
diff --git a/activemq-jaas/src/main/java/org/apache/activemq/jaas/PropertiesLoader.java b/activemq-jaas/src/main/java/org/apache/activemq/jaas/PropertiesLoader.java
index 3f2df61..0ed8376 100644
--- a/activemq-jaas/src/main/java/org/apache/activemq/jaas/PropertiesLoader.java
+++ b/activemq-jaas/src/main/java/org/apache/activemq/jaas/PropertiesLoader.java
@@ -17,14 +17,15 @@
package org.apache.activemq.jaas;
import java.io.File;
-import java.util.HashMap;
import java.util.Map;
+import java.util.concurrent.ConcurrentHashMap;
+
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
public class PropertiesLoader {
private static final Logger LOG = LoggerFactory.getLogger(PropertiesLoader.class);
- static final Map<FileNameKey, ReloadableProperties> staticCache = new HashMap<FileNameKey, ReloadableProperties>();
+ private static final Map<FileNameKey, ReloadableProperties> staticCache = new ConcurrentHashMap<FileNameKey, ReloadableProperties>();
protected boolean debug;
public void init(Map options) {
@@ -35,18 +36,10 @@ public class PropertiesLoader {
}
public ReloadableProperties load(String nameProperty, String fallbackName, Map options) {
- ReloadableProperties result;
FileNameKey key = new FileNameKey(nameProperty, fallbackName, options);
key.setDebug(debug);
- synchronized (staticCache) {
- result = staticCache.get(key);
- if (result == null) {
- result = new ReloadableProperties(key);
- staticCache.put(key, result);
- }
- }
-
+ ReloadableProperties result = staticCache.computeIfAbsent(key, k -> new ReloadableProperties(k));
return result.obtained();
}