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);