This is an automated email from the ASF dual-hosted git repository.

krisden pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/knox.git


The following commit(s) were added to refs/heads/master by this push:
     new da11a65  KNOX-1917 - DefaultKeystoreService should use a shared read 
lock (#110)
da11a65 is described below

commit da11a654118347ecf208aa7eeb13f323c06990cf
Author: Kevin Risden <[email protected]>
AuthorDate: Mon Jul 8 22:35:13 2019 -0400

    KNOX-1917 - DefaultKeystoreService should use a shared read lock (#110)
    
    Signed-off-by: Kevin Risden <[email protected]>
---
 .../gateway/services/security/impl/DefaultKeystoreService.java     | 7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)

diff --git 
a/gateway-server/src/main/java/org/apache/knox/gateway/services/security/impl/DefaultKeystoreService.java
 
b/gateway-server/src/main/java/org/apache/knox/gateway/services/security/impl/DefaultKeystoreService.java
index 7867ed3..6d6445a 100644
--- 
a/gateway-server/src/main/java/org/apache/knox/gateway/services/security/impl/DefaultKeystoreService.java
+++ 
b/gateway-server/src/main/java/org/apache/knox/gateway/services/security/impl/DefaultKeystoreService.java
@@ -472,8 +472,11 @@ public class DefaultKeystoreService implements 
KeystoreService, Service {
 
       // If the file does not exist, create an empty keystore
       if (Files.exists(keyStoreFilePath)) {
-        try (InputStream input = Files.newInputStream(keyStoreFilePath)) {
-          keyStore.load(input, password);
+        try (FileChannel fileChannel = FileChannel.open(keyStoreFilePath, 
StandardOpenOption.READ)) {
+          fileChannel.lock(0L, Long.MAX_VALUE, true);
+          try (InputStream input = Channels.newInputStream(fileChannel)) {
+            keyStore.load(input, password);
+          }
         }
       } else {
         keyStore.load(null, password);

Reply via email to