You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@trafficcontrol.apache.org by da...@apache.org on 2016/12/06 05:01:00 UTC

[3/6] incubator-trafficcontrol git commit: TR - avoid unnecessary synchronization for https cert registry

TR - avoid unnecessary synchronization for https cert registry

(cherry picked from commit 8d1732dc14ec98d075bdecc3866298def8dd0ef4)


Project: http://git-wip-us.apache.org/repos/asf/incubator-trafficcontrol/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-trafficcontrol/commit/165a2a6e
Tree: http://git-wip-us.apache.org/repos/asf/incubator-trafficcontrol/tree/165a2a6e
Diff: http://git-wip-us.apache.org/repos/asf/incubator-trafficcontrol/diff/165a2a6e

Branch: refs/heads/psql-rebase
Commit: 165a2a6e422080808eb9fcdef8edb42f67020d8d
Parents: b2154dc
Author: Trevor Ackerman <tr...@gmail.com>
Authored: Tue Nov 22 10:31:53 2016 -0700
Committer: Dave Neuman <ne...@apache.org>
Committed: Mon Dec 5 14:35:54 2016 -0700

----------------------------------------------------------------------
 .../traffic_router/secure/CertificateRegistry.java    | 14 ++++----------
 .../traffic_router/secure/KeyManager.java             | 10 ++++++----
 2 files changed, 10 insertions(+), 14 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-trafficcontrol/blob/165a2a6e/traffic_router/connector/src/main/java/com/comcast/cdn/traffic_control/traffic_router/secure/CertificateRegistry.java
----------------------------------------------------------------------
diff --git a/traffic_router/connector/src/main/java/com/comcast/cdn/traffic_control/traffic_router/secure/CertificateRegistry.java b/traffic_router/connector/src/main/java/com/comcast/cdn/traffic_control/traffic_router/secure/CertificateRegistry.java
index c3c7470..298d28a 100644
--- a/traffic_router/connector/src/main/java/com/comcast/cdn/traffic_control/traffic_router/secure/CertificateRegistry.java
+++ b/traffic_router/connector/src/main/java/com/comcast/cdn/traffic_control/traffic_router/secure/CertificateRegistry.java
@@ -26,7 +26,7 @@ public class CertificateRegistry {
 	protected static org.apache.juli.logging.Log log = org.apache.juli.logging.LogFactory.getLog(CertificateRegistry.class);
 
 	private CertificateDataConverter certificateDataConverter = new CertificateDataConverter();
-	private Map<String, HandshakeData>	handshakeDataMap = new HashMap<>();
+	volatile private Map<String, HandshakeData>	handshakeDataMap = new HashMap<>();
 
 	// Recommended Singleton Pattern implementation
 	// https://community.oracle.com/docs/DOC-918906
@@ -38,15 +38,11 @@ public class CertificateRegistry {
 	}
 
 	public List<String> getAliases() {
-		synchronized (handshakeDataMap) {
-			return new ArrayList<>(handshakeDataMap.keySet());
-		}
+		return new ArrayList<>(handshakeDataMap.keySet());
 	}
 
 	public HandshakeData getHandshakeData(final String alias) {
-		synchronized (handshakeDataMap) {
-			return handshakeDataMap.get(alias);
-		}
+		return handshakeDataMap.get(alias);
 	}
 
 	@SuppressWarnings("PMD.AccessorClassGeneration")
@@ -63,9 +59,7 @@ public class CertificateRegistry {
 			map.put(alias, handshakeData);
 		}
 
-		synchronized (handshakeDataMap) {
-			handshakeDataMap = map;
-		}
+		handshakeDataMap = map;
 	}
 
 	public CertificateDataConverter getCertificateDataConverter() {

http://git-wip-us.apache.org/repos/asf/incubator-trafficcontrol/blob/165a2a6e/traffic_router/connector/src/main/java/com/comcast/cdn/traffic_control/traffic_router/secure/KeyManager.java
----------------------------------------------------------------------
diff --git a/traffic_router/connector/src/main/java/com/comcast/cdn/traffic_control/traffic_router/secure/KeyManager.java b/traffic_router/connector/src/main/java/com/comcast/cdn/traffic_control/traffic_router/secure/KeyManager.java
index b199a6d..5d3d1bf 100644
--- a/traffic_router/connector/src/main/java/com/comcast/cdn/traffic_control/traffic_router/secure/KeyManager.java
+++ b/traffic_router/connector/src/main/java/com/comcast/cdn/traffic_control/traffic_router/secure/KeyManager.java
@@ -102,8 +102,9 @@ public class KeyManager extends X509ExtendedKeyManager implements X509KeyManager
 
 	@Override
 	public X509Certificate[] getCertificateChain(final String alias) {
-		if (certificateRegistry.getAliases().contains(alias)) {
-			return certificateRegistry.getHandshakeData(alias).getCertificateChain();
+		final HandshakeData handshakeData = certificateRegistry.getHandshakeData(alias);
+		if (handshakeData != null) {
+			return handshakeData.getCertificateChain();
 		}
 
 		log.error("No certificate chain for alias " + alias);
@@ -112,8 +113,9 @@ public class KeyManager extends X509ExtendedKeyManager implements X509KeyManager
 
 	@Override
 	public PrivateKey getPrivateKey(final String alias) {
-		if (certificateRegistry.getAliases().contains(alias)) {
-			return certificateRegistry.getHandshakeData(alias).getPrivateKey();
+		final HandshakeData handshakeData = certificateRegistry.getHandshakeData(alias);
+		if (handshakeData != null) {
+			return handshakeData.getPrivateKey();
 		}
 
 		log.error("No private key for alias " + alias);