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