From ed46a277432b265f1d4896ad7857ab202ba078ef Mon Sep 17 00:00:00 2001 From: adyang <20383270+adyang@users.noreply.github.com> Date: Thu, 20 Aug 2020 21:19:19 +0800 Subject: [PATCH] Ensure writes to VaultConfig and SslConfig are guaranteed to be visible to other threads according to the Java Memory Model. --- .../java/com/bettercloud/vault/SslConfig.java | 20 ++++++++-------- .../com/bettercloud/vault/VaultConfig.java | 24 +++++++++---------- 2 files changed, 22 insertions(+), 22 deletions(-) diff --git a/src/main/java/com/bettercloud/vault/SslConfig.java b/src/main/java/com/bettercloud/vault/SslConfig.java index 21179b14..3b2e3a41 100644 --- a/src/main/java/com/bettercloud/vault/SslConfig.java +++ b/src/main/java/com/bettercloud/vault/SslConfig.java @@ -44,16 +44,16 @@ public class SslConfig implements Serializable { private static final String VAULT_SSL_VERIFY = "VAULT_SSL_VERIFY"; private static final String VAULT_SSL_CERT = "VAULT_SSL_CERT"; - private boolean verify; - private transient SSLContext sslContext; - private transient KeyStore trustStore; - private transient KeyStore keyStore; - private String keyStorePassword; - private String pemUTF8; // exposed to unit tests - private String clientPemUTF8; - private String clientKeyPemUTF8; - private Boolean verifyObject; - private EnvironmentLoader environmentLoader; + private volatile boolean verify; + private volatile transient SSLContext sslContext; + private volatile transient KeyStore trustStore; + private volatile transient KeyStore keyStore; + private volatile String keyStorePassword; + private volatile String pemUTF8; // exposed to unit tests + private volatile String clientPemUTF8; + private volatile String clientKeyPemUTF8; + private volatile Boolean verifyObject; + private volatile EnvironmentLoader environmentLoader; /** *

The code used to load environment variables is encapsulated here, so that a mock version of that environment diff --git a/src/main/java/com/bettercloud/vault/VaultConfig.java b/src/main/java/com/bettercloud/vault/VaultConfig.java index 7d4545fd..9fa93b4e 100644 --- a/src/main/java/com/bettercloud/vault/VaultConfig.java +++ b/src/main/java/com/bettercloud/vault/VaultConfig.java @@ -30,18 +30,18 @@ public class VaultConfig implements Serializable { private static final String VAULT_OPEN_TIMEOUT = "VAULT_OPEN_TIMEOUT"; private static final String VAULT_READ_TIMEOUT = "VAULT_READ_TIMEOUT"; - private Map secretsEnginePathMap = new ConcurrentHashMap<>(); - private String address; - private String token; - private SslConfig sslConfig; - private Integer openTimeout; - private Integer readTimeout; - private int prefixPathDepth = 1; - private int maxRetries; - private int retryIntervalMilliseconds; - private Integer globalEngineVersion; - private String nameSpace; - private EnvironmentLoader environmentLoader; + private volatile Map secretsEnginePathMap = new ConcurrentHashMap<>(); + private volatile String address; + private volatile String token; + private volatile SslConfig sslConfig; + private volatile Integer openTimeout; + private volatile Integer readTimeout; + private volatile int prefixPathDepth = 1; + private volatile int maxRetries; + private volatile int retryIntervalMilliseconds; + private volatile Integer globalEngineVersion; + private volatile String nameSpace; + private volatile EnvironmentLoader environmentLoader; /** *

The code used to load environment variables is encapsulated here, so that a mock version of that environment