KYLIN-1563 Unsafe check of initiated in HybridInstance#init

Project: http://git-wip-us.apache.org/repos/asf/kylin/repo
Commit: http://git-wip-us.apache.org/repos/asf/kylin/commit/8e10852a
Tree: http://git-wip-us.apache.org/repos/asf/kylin/tree/8e10852a
Diff: http://git-wip-us.apache.org/repos/asf/kylin/diff/8e10852a

Branch: refs/heads/master
Commit: 8e10852aa4059671d890b3bb3220887dc510c6a9
Parents: 16ff672
Author: shaofengshi <shaofeng...@apache.org>
Authored: Fri Apr 8 17:07:32 2016 +0800
Committer: shaofengshi <shaofeng...@apache.org>
Committed: Wed Apr 13 11:03:06 2016 +0800

----------------------------------------------------------------------
 .../java/org/apache/kylin/storage/hybrid/HybridInstance.java | 8 +++-----
 .../kylin/rest/security/PasswordPlaceholderConfigurer.java   | 2 ++
 2 files changed, 5 insertions(+), 5 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/kylin/blob/8e10852a/core-storage/src/main/java/org/apache/kylin/storage/hybrid/HybridInstance.java
----------------------------------------------------------------------
diff --git 
a/core-storage/src/main/java/org/apache/kylin/storage/hybrid/HybridInstance.java
 
b/core-storage/src/main/java/org/apache/kylin/storage/hybrid/HybridInstance.java
index 251f7c9..5b4682b 100644
--- 
a/core-storage/src/main/java/org/apache/kylin/storage/hybrid/HybridInstance.java
+++ 
b/core-storage/src/main/java/org/apache/kylin/storage/hybrid/HybridInstance.java
@@ -64,7 +64,7 @@ public class HybridInstance extends RootPersistentEntity 
implements IRealization
     @JsonProperty("cost")
     private int cost = 50;
 
-    private IRealization[] realizations = null;
+    private volatile IRealization[] realizations = null;
     private List<TblColRef> allDimensions = null;
     private List<TblColRef> allColumns = null;
     private List<MeasureDesc> allMeasures = null;
@@ -72,7 +72,6 @@ public class HybridInstance extends RootPersistentEntity 
implements IRealization
     private long dateRangeEnd;
     private boolean isReady = false;
 
-    private boolean initiated = false;
     private final static Logger logger = 
LoggerFactory.getLogger(HybridInstance.class);
 
     public List<RealizationEntry> getRealizationEntries() {
@@ -91,11 +90,11 @@ public class HybridInstance extends RootPersistentEntity 
implements IRealization
     }
 
     private void init() {
-        if (initiated == true)
+        if (realizations != null)
             return;
 
         synchronized (this) {
-            if (initiated == true)
+            if (realizations != null)
                 return;
 
             if (realizationEntries == null || realizationEntries.size() == 0)
@@ -163,7 +162,6 @@ public class HybridInstance extends RootPersistentEntity 
implements IRealization
             });
 
             this.realizations = realizationList.toArray(new 
IRealization[realizationList.size()]);
-            initiated = true;
         }
     }
 

http://git-wip-us.apache.org/repos/asf/kylin/blob/8e10852a/server/src/main/java/org/apache/kylin/rest/security/PasswordPlaceholderConfigurer.java
----------------------------------------------------------------------
diff --git 
a/server/src/main/java/org/apache/kylin/rest/security/PasswordPlaceholderConfigurer.java
 
b/server/src/main/java/org/apache/kylin/rest/security/PasswordPlaceholderConfigurer.java
index 0c4690f..9248ef7 100644
--- 
a/server/src/main/java/org/apache/kylin/rest/security/PasswordPlaceholderConfigurer.java
+++ 
b/server/src/main/java/org/apache/kylin/rest/security/PasswordPlaceholderConfigurer.java
@@ -89,9 +89,11 @@ public class PasswordPlaceholderConfigurer extends 
PropertyPlaceholderConfigurer
         String encryptMethod = args[0];
         String passwordTxt = args[1];
         if ("AES".equalsIgnoreCase(encryptMethod)) {
+            // for encrypt password like LDAP password
             System.out.println(encryptMethod + " encrypted password is: ");
             System.out.println(encrypt(passwordTxt));
         } else if ("BCrypt".equalsIgnoreCase(encryptMethod)) {
+            // for encrypt the predefined user password, like ADMIN, MODELER.
             BCryptPasswordEncoder bCryptPasswordEncoder = new 
BCryptPasswordEncoder();
             System.out.println(encryptMethod + " encrypted password is: ");
             System.out.println(bCryptPasswordEncoder.encode(passwordTxt));

Reply via email to