RANGER-1124:Good coding practices in Ranger recommended by static code 
analysis-High Impact

(cherry picked from commit 3caa698f3c6957ec5fe65b6e5bb0b59dc757dc34)


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

Branch: refs/heads/ranger-0.6
Commit: e8bc76f4d0d74d86ad512be5e2a72383d2c7f6eb
Parents: d691288
Author: rmani <[email protected]>
Authored: Thu Jul 28 23:00:05 2016 -0700
Committer: Velmurugan Periasamy <[email protected]>
Committed: Thu Aug 11 09:33:31 2016 +0530

----------------------------------------------------------------------
 .../ranger/audit/provider/AuditProviderFactory.java  | 14 ++++++++------
 .../audit/provider/solr/SolrAuditProvider.java       | 10 ++++++----
 .../audit/utils/InMemoryJAASConfiguration.java       | 15 ++++++++-------
 .../java/org/apache/ranger/common/db/BaseDao.java    |  6 ++++++
 4 files changed, 28 insertions(+), 17 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/e8bc76f4/agents-audit/src/main/java/org/apache/ranger/audit/provider/AuditProviderFactory.java
----------------------------------------------------------------------
diff --git 
a/agents-audit/src/main/java/org/apache/ranger/audit/provider/AuditProviderFactory.java
 
b/agents-audit/src/main/java/org/apache/ranger/audit/provider/AuditProviderFactory.java
index e3e818c..e3c3508 100644
--- 
a/agents-audit/src/main/java/org/apache/ranger/audit/provider/AuditProviderFactory.java
+++ 
b/agents-audit/src/main/java/org/apache/ranger/audit/provider/AuditProviderFactory.java
@@ -67,7 +67,7 @@ public class AuditProviderFactory {
 
        private static final int RANGER_AUDIT_SHUTDOWN_HOOK_PRIORITY = 30;
 
-       private static AuditProviderFactory sFactory;
+       private volatile static AuditProviderFactory sFactory = null;
 
        private AuditHandler mProvider = null;
        private String componentAppType = "";
@@ -80,15 +80,17 @@ public class AuditProviderFactory {
        }
 
        public static AuditProviderFactory getInstance() {
-               if (sFactory == null) {
-                       synchronized (AuditProviderFactory.class) {
-                               if (sFactory == null) {
-                                       sFactory = new AuditProviderFactory();
+               AuditProviderFactory ret = sFactory;
+               if(ret == null) {
+                       synchronized(AuditProviderFactory.class) {
+                               ret = sFactory;
+                               if(ret == null) {
+                                       ret = sFactory = new 
AuditProviderFactory();
                                }
                        }
                }
 
-               return sFactory;
+               return ret;
        }
 
        public static AuditHandler getAuditProvider() {

http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/e8bc76f4/agents-audit/src/main/java/org/apache/ranger/audit/provider/solr/SolrAuditProvider.java
----------------------------------------------------------------------
diff --git 
a/agents-audit/src/main/java/org/apache/ranger/audit/provider/solr/SolrAuditProvider.java
 
b/agents-audit/src/main/java/org/apache/ranger/audit/provider/solr/SolrAuditProvider.java
index 9388914..8b42be0 100644
--- 
a/agents-audit/src/main/java/org/apache/ranger/audit/provider/solr/SolrAuditProvider.java
+++ 
b/agents-audit/src/main/java/org/apache/ranger/audit/provider/solr/SolrAuditProvider.java
@@ -42,7 +42,7 @@ public class SolrAuditProvider extends AuditDestination {
        public static final String AUDIT_RETRY_WAIT_PROP = 
"xasecure.audit.solr.retry.ms";
 
        static final Object lock = new Object();
-       SolrClient solrClient = null;
+       volatile SolrClient solrClient = null;
        Date lastConnectTime = null;
        long lastFailTime = 0;
 
@@ -61,9 +61,11 @@ public class SolrAuditProvider extends AuditDestination {
        }
 
        void connect() {
-               if (solrClient == null) {
+               SolrClient  me  = solrClient;
+               if (me == null) {
                        synchronized (lock) {
-                               if (solrClient == null) {
+                               me = solrClient;
+                               if (me == null) {
                                        String solrURL = 
MiscUtil.getStringProperty(props,
                                                        
"xasecure.audit.solr.solr_url");
 
@@ -89,7 +91,7 @@ public class SolrAuditProvider extends AuditDestination {
 
                                        try {
                                                // TODO: Need to support 
SolrCloud also
-                                               solrClient = new 
HttpSolrClient(solrURL);
+                                               me = solrClient = new 
HttpSolrClient(solrURL);
                                                if (solrClient instanceof 
HttpSolrClient) {
                                                        HttpSolrClient 
httpSolrClient = (HttpSolrClient) solrClient;
                                                        
httpSolrClient.setAllowCompression(true);

http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/e8bc76f4/agents-audit/src/main/java/org/apache/ranger/audit/utils/InMemoryJAASConfiguration.java
----------------------------------------------------------------------
diff --git 
a/agents-audit/src/main/java/org/apache/ranger/audit/utils/InMemoryJAASConfiguration.java
 
b/agents-audit/src/main/java/org/apache/ranger/audit/utils/InMemoryJAASConfiguration.java
index be9cdd3..2e8b768 100644
--- 
a/agents-audit/src/main/java/org/apache/ranger/audit/utils/InMemoryJAASConfiguration.java
+++ 
b/agents-audit/src/main/java/org/apache/ranger/audit/utils/InMemoryJAASConfiguration.java
@@ -148,14 +148,15 @@ public final class InMemoryJAASConfiguration extends 
Configuration {
             properties.load(in);
             init(properties);
         } catch (IOException e) {
-            if (in != null) {
-                try {
-                    in.close();
-                } catch (Exception exception) {
-                    // Ignore
-                }
-            }
             throw new Exception("Failed to load JAAS application properties", 
e);
+        } finally {
+               if ( in != null) {
+                  try {
+                      in.close();
+                   } catch ( Exception e) {
+                      //Ignore
+                   }
+               }
         }
         LOG.debug("<== InMemoryJAASConfiguration.init( {} ) ", propFile);
     }

http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/e8bc76f4/security-admin/src/main/java/org/apache/ranger/common/db/BaseDao.java
----------------------------------------------------------------------
diff --git 
a/security-admin/src/main/java/org/apache/ranger/common/db/BaseDao.java 
b/security-admin/src/main/java/org/apache/ranger/common/db/BaseDao.java
index 13607d3..e3ba5a6 100644
--- a/security-admin/src/main/java/org/apache/ranger/common/db/BaseDao.java
+++ b/security-admin/src/main/java/org/apache/ranger/common/db/BaseDao.java
@@ -233,6 +233,12 @@ public abstract class BaseDao<T> {
                        conn.createStatement().execute("SET IDENTITY_INSERT " + 
tableName + " " + identityInsertStr);
                } catch (SQLException e) {
                        logger.error("Error while settion identity_insert " + 
identityInsertStr, e);
+               } finally {
+                       try {
+                               conn.close();
+                       } catch ( SQLException sqe ) {
+                               logger.error("Error while settion 
identity_insert " + identityInsertStr, sqe);
+                       }
                }
        }
 

Reply via email to