Repository: incubator-ranger
Updated Branches:
  refs/heads/master 0ab48758f -> ce139e013


RANGER-331: inputstream is closed in the finally clause


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

Branch: refs/heads/master
Commit: ce139e013aa4f0e6472ac910b9c62073ed902f35
Parents: 0ab4875
Author: sneethiraj <[email protected]>
Authored: Tue Mar 24 10:30:21 2015 -0400
Committer: sneethiraj <[email protected]>
Committed: Tue Mar 24 10:30:21 2015 -0400

----------------------------------------------------------------------
 .../plugin/client/HadoopConfigHolder.java       | 24 ++++++++++-----
 .../ranger/utils/install/XmlConfigChanger.java  | 12 ++++++++
 .../ranger/server/tomcat/EmbeddedServer.java    | 10 ++++++
 .../ranger/services/hdfs/HdfsClientTester.java  | 18 ++++++++++-
 .../services/hive/client/HiveClientTester.java  | 18 ++++++++++-
 .../main/java/org/apache/util/sql/Jisql.java    | 32 ++++++++++++++++++--
 .../java/org/apache/util/sql/MySQLPLRunner.java | 17 +++++++++--
 .../ranger/services/knox/client/KnoxClient.java |  2 +-
 .../ranger/hadoop/client/HadoopFSTester.java    | 17 ++++++++++-
 .../ranger/hbase/client/HBaseClientTester.java  | 18 +++++++++--
 .../config/UserGroupSyncConfig.java             | 13 +++++++-
 .../unix/jaas/RemoteUnixLoginModule.java        | 14 +++++++--
 .../UnixAuthenticationService.java              | 18 +++++++++--
 13 files changed, 191 insertions(+), 22 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/ce139e01/agents-common/src/main/java/org/apache/ranger/plugin/client/HadoopConfigHolder.java
----------------------------------------------------------------------
diff --git 
a/agents-common/src/main/java/org/apache/ranger/plugin/client/HadoopConfigHolder.java
 
b/agents-common/src/main/java/org/apache/ranger/plugin/client/HadoopConfigHolder.java
index a341a44..f95e10e 100644
--- 
a/agents-common/src/main/java/org/apache/ranger/plugin/client/HadoopConfigHolder.java
+++ 
b/agents-common/src/main/java/org/apache/ranger/plugin/client/HadoopConfigHolder.java
@@ -157,16 +157,26 @@ public class HadoopConfigHolder  {
                        if (in != null) {
                                try {
                                        resourcemapProperties.load(in);
-          for (Map.Entry<Object, Object> entry : 
resourcemapProperties.entrySet() ) {
-            String key = (String)entry.getKey();
-            String value = (String)entry.getValue();
-            if (RANGER_SECTION_NAME.equals(value))  {
-              rangerInternalPropertyKeys.add(key);
-            }
-          }
+                         for (Map.Entry<Object, Object> entry : 
resourcemapProperties.entrySet() ) {
+                           String key = (String)entry.getKey();
+                           String value = (String)entry.getValue();
+                           if (RANGER_SECTION_NAME.equals(value))  {
+                             rangerInternalPropertyKeys.add(key);
+                           }
+                         }
                                } catch (IOException e) {
                                        throw new HadoopException("Unable to 
load resource map properties from [" + RESOURCEMAP_PROP_FILE + "]", e);
                                }
+                               finally {
+                                       if (in != null) {
+                                               try {
+                                                       in.close() ;
+                                               }
+                                               catch(IOException ioe) {
+                                                       // Ignore IOException 
during close of stream
+                                               }
+                                       }
+                               }
                        }
                        else {
                                throw new HadoopException("Unable to locate 
resource map properties from [" + RESOURCEMAP_PROP_FILE + "] in the class 
path.");

http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/ce139e01/agents-installer/src/main/java/org/apache/ranger/utils/install/XmlConfigChanger.java
----------------------------------------------------------------------
diff --git 
a/agents-installer/src/main/java/org/apache/ranger/utils/install/XmlConfigChanger.java
 
b/agents-installer/src/main/java/org/apache/ranger/utils/install/XmlConfigChanger.java
index f2665ae..05fbb23 100644
--- 
a/agents-installer/src/main/java/org/apache/ranger/utils/install/XmlConfigChanger.java
+++ 
b/agents-installer/src/main/java/org/apache/ranger/utils/install/XmlConfigChanger.java
@@ -425,7 +425,19 @@ public class XmlConfigChanger {
        private void loadInstallProperties() throws IOException {
                if (propFile != null) {
                        FileInputStream in = new FileInputStream(propFile) ;
+                       try {
                        installProperties.load(in);
+                       }
+                       finally {
+                               if (in != null) {
+                                       try {
+                                               in.close();
+                                       }
+                                       catch(IOException ioe) {
+                                               // Ignore IOException during 
close of stream
+                                       }
+                               }
+                       }
                }
                // To support environment variable, we will add all environment 
variables to the Properties
                installProperties.putAll(System.getenv());

http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/ce139e01/embeddedwebserver/src/main/java/org/apache/ranger/server/tomcat/EmbeddedServer.java
----------------------------------------------------------------------
diff --git 
a/embeddedwebserver/src/main/java/org/apache/ranger/server/tomcat/EmbeddedServer.java
 
b/embeddedwebserver/src/main/java/org/apache/ranger/server/tomcat/EmbeddedServer.java
index 75c80d5..4460aa8 100644
--- 
a/embeddedwebserver/src/main/java/org/apache/ranger/server/tomcat/EmbeddedServer.java
+++ 
b/embeddedwebserver/src/main/java/org/apache/ranger/server/tomcat/EmbeddedServer.java
@@ -82,6 +82,16 @@ public class EmbeddedServer {
                        LOG.severe("Unable to load config  file [" + cfgFile + 
"]");
                        ioe.printStackTrace(); 
                }
+               finally {
+                       if (in != null) {
+                               try {
+                                       in.close() ;
+                               }
+                               catch(IOException ioe) {
+                                       // Ignore IOE when the stream is closed.
+                               }
+                       }
+               }
                serverConfigProperties.list(System.out);
        }
        

http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/ce139e01/hdfs-agent/src/test/java/org/apache/ranger/services/hdfs/HdfsClientTester.java
----------------------------------------------------------------------
diff --git 
a/hdfs-agent/src/test/java/org/apache/ranger/services/hdfs/HdfsClientTester.java
 
b/hdfs-agent/src/test/java/org/apache/ranger/services/hdfs/HdfsClientTester.java
index 3947ac2..2e8290c 100644
--- 
a/hdfs-agent/src/test/java/org/apache/ranger/services/hdfs/HdfsClientTester.java
+++ 
b/hdfs-agent/src/test/java/org/apache/ranger/services/hdfs/HdfsClientTester.java
@@ -19,6 +19,8 @@
 
  package org.apache.ranger.services.hdfs;
 
+import java.io.IOException;
+import java.io.InputStream;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Properties;
@@ -39,7 +41,21 @@ public class HdfsClientTester {
                String fileNameToMatch = (args.length == 3 ? null : args[3]) ;
 
                Properties conf = new Properties() ;
-               
conf.load(HdfsClientTester.class.getClassLoader().getResourceAsStream(propFile));
+               
+               InputStream in = 
HdfsClientTester.class.getClassLoader().getResourceAsStream(propFile) ;
+               try {
+                       conf.load(in);
+               }
+               finally {
+                       if (in != null) {
+                               try {
+                               in.close() ;
+                               }
+                               catch(IOException ioe) {
+                                       // Ignore IOException created during 
close
+                               }
+                       }
+               }
                
                HashMap<String,String> prop = new HashMap<String,String>() ;
                for(Object key : conf.keySet()) {

http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/ce139e01/hive-agent/src/test/java/org/apache/ranger/services/hive/client/HiveClientTester.java
----------------------------------------------------------------------
diff --git 
a/hive-agent/src/test/java/org/apache/ranger/services/hive/client/HiveClientTester.java
 
b/hive-agent/src/test/java/org/apache/ranger/services/hive/client/HiveClientTester.java
index 9cd1cd0..1ff0f35 100644
--- 
a/hive-agent/src/test/java/org/apache/ranger/services/hive/client/HiveClientTester.java
+++ 
b/hive-agent/src/test/java/org/apache/ranger/services/hive/client/HiveClientTester.java
@@ -20,6 +20,8 @@
 package org.apache.ranger.services.hive.client;
  
 
+import java.io.IOException;
+import java.io.InputStream;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Properties;
@@ -40,7 +42,21 @@ public class HiveClientTester  {
                try {
                        
                        Properties conf = new Properties() ;
-                       
conf.load(HiveClientTester.class.getClassLoader().getResourceAsStream(args[1]));
+                       
+                       InputStream in = 
HiveClientTester.class.getClassLoader().getResourceAsStream(args[1]) ;
+                       try {
+                               conf.load(in);
+                       }
+                       finally {
+                               if (in != null) {
+                                       try {
+                                               in.close();
+                                       }
+                                       catch(IOException ioe) {
+                                               // Ignore IOException when 
closing the stream
+                                       }
+                               }
+                       }
                        
                        HashMap<String,String> prop = new 
HashMap<String,String>() ;
                        for(Object key : conf.keySet()) {

http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/ce139e01/jisql/src/main/java/org/apache/util/sql/Jisql.java
----------------------------------------------------------------------
diff --git a/jisql/src/main/java/org/apache/util/sql/Jisql.java 
b/jisql/src/main/java/org/apache/util/sql/Jisql.java
index c3ba5a6..e5dac9b 100644
--- a/jisql/src/main/java/org/apache/util/sql/Jisql.java
+++ b/jisql/src/main/java/org/apache/util/sql/Jisql.java
@@ -31,8 +31,10 @@ import java.sql.ResultSetMetaData;
 import java.sql.SQLException;
 import java.sql.Statement;
 import java.util.Properties;
+
 import joptsimple.OptionParser;
 import joptsimple.OptionSet;
+
 import org.apache.util.outputformatter.JisqlFormatter;
 
 /**
@@ -291,8 +293,20 @@ public class Jisql {
             else {
                if(connectString.toLowerCase().startsWith("jdbc:mysql") && 
inputFileName!=null){
                        MySQLPLRunner scriptRunner = new 
MySQLPLRunner(connection, false, true,printDebug);
-                       scriptRunner.setDelimiter(commandTerminator,false);     
                
-                       scriptRunner.runScript(new FileReader(inputFileName));
+                       scriptRunner.setDelimiter(commandTerminator,false);
+                       FileReader reader = new FileReader(inputFileName) ;
+                       try {
+                       scriptRunner.runScript(reader);
+                       }
+                       finally {
+                               if (reader != null) {
+                                       try {
+                                                               reader.close();
+                                                       } catch (IOException 
ioe) {
+                                                               // Ignore error 
during closing of the reader stream
+                                                       }
+                               }
+                       }
                }else{
                        doIsql();
                }
@@ -358,6 +372,9 @@ public class Jisql {
         statement = connection.createStatement();
         connection.clearWarnings();
         String trimmedLine=null;
+        
+        try {
+        
         while (true) {
             int linecount = 1;
             query = new StringBuffer();
@@ -480,6 +497,17 @@ public class Jisql {
             if (inputQuery != null)
                 return;
         }
+        }
+        finally {
+               if (reader != null) {
+                       try {
+                               reader.close();
+                       }
+                       catch(IOException ioe) {
+                               // Ignore IOE when closing streams
+                       }
+               }
+        }
     }
 
     /**

http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/ce139e01/jisql/src/main/java/org/apache/util/sql/MySQLPLRunner.java
----------------------------------------------------------------------
diff --git a/jisql/src/main/java/org/apache/util/sql/MySQLPLRunner.java 
b/jisql/src/main/java/org/apache/util/sql/MySQLPLRunner.java
index dc5de79..c41c95e 100644
--- a/jisql/src/main/java/org/apache/util/sql/MySQLPLRunner.java
+++ b/jisql/src/main/java/org/apache/util/sql/MySQLPLRunner.java
@@ -31,7 +31,6 @@ import java.sql.ResultSet;
 import java.sql.ResultSetMetaData;
 import java.sql.SQLException;
 import java.sql.Statement;
-import java.util.List;
 import java.util.Properties;
 import java.util.regex.Matcher;
 import java.util.regex.Pattern;
@@ -311,7 +310,21 @@ public class MySQLPLRunner {
        
        
        // Executing SQL Script
-       scriptRunner.runScript(new FileReader(aSQLScriptFilePath));
+       FileReader reader = new FileReader(aSQLScriptFilePath) ;
+       
+       try {
+               scriptRunner.runScript(reader);
+       }
+       finally {
+               if (reader != null) {
+                       try {
+                       reader.close();
+                       }
+                       catch(IOException ioe) {
+                               // Ignore IOException when reader is getting 
closed
+                       }
+               }
+       }
 
        
          }

http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/ce139e01/knox-agent/src/main/java/org/apache/ranger/services/knox/client/KnoxClient.java
----------------------------------------------------------------------
diff --git 
a/knox-agent/src/main/java/org/apache/ranger/services/knox/client/KnoxClient.java
 
b/knox-agent/src/main/java/org/apache/ranger/services/knox/client/KnoxClient.java
index 0a23f57..9f7a955 100644
--- 
a/knox-agent/src/main/java/org/apache/ranger/services/knox/client/KnoxClient.java
+++ 
b/knox-agent/src/main/java/org/apache/ranger/services/knox/client/KnoxClient.java
@@ -304,7 +304,7 @@ public class KnoxClient {
                                                                                
   Map<String, String> configs) {
                KnoxClient knoxClient = null;
                LOG.debug("Getting knoxClient for ServiceName: " + serviceName
-                               + "configMap: " + configs.toString());
+                               + "configMap: " + configs);
                String errMsg = " You can still save the repository and start 
creating "
                                + "policies, but you would not be able to use 
autocomplete for "
                                + "resource names. Check xa_portal.log for more 
info.";

http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/ce139e01/lookup-client/src/main/java/org/apache/ranger/hadoop/client/HadoopFSTester.java
----------------------------------------------------------------------
diff --git 
a/lookup-client/src/main/java/org/apache/ranger/hadoop/client/HadoopFSTester.java
 
b/lookup-client/src/main/java/org/apache/ranger/hadoop/client/HadoopFSTester.java
index 8199971..dc73801 100644
--- 
a/lookup-client/src/main/java/org/apache/ranger/hadoop/client/HadoopFSTester.java
+++ 
b/lookup-client/src/main/java/org/apache/ranger/hadoop/client/HadoopFSTester.java
@@ -19,6 +19,8 @@
 
  package org.apache.ranger.hadoop.client;
 
+import java.io.IOException;
+import java.io.InputStream;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Properties;
@@ -37,7 +39,20 @@ public class HadoopFSTester {
                String fileNameToMatch = (args.length == 3 ? null : args[3]) ;
 
                Properties conf = new Properties() ;
-               
conf.load(HadoopFSTester.class.getClassLoader().getResourceAsStream(propFile));
+               InputStream in = 
HadoopFSTester.class.getClassLoader().getResourceAsStream(propFile) ;
+               try {
+                       conf.load(in);
+               }
+               finally {
+                       if (in != null) {
+                               try {
+                                       in.close() ;
+                               }
+                               catch(IOException ioe) {
+                                       // Ignore IOE when closing stream
+                               }
+                       }
+               }
                
                HashMap<String,String> prop = new HashMap<String,String>() ;
                for(Object key : conf.keySet()) {

http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/ce139e01/lookup-client/src/main/java/org/apache/ranger/hbase/client/HBaseClientTester.java
----------------------------------------------------------------------
diff --git 
a/lookup-client/src/main/java/org/apache/ranger/hbase/client/HBaseClientTester.java
 
b/lookup-client/src/main/java/org/apache/ranger/hbase/client/HBaseClientTester.java
index dc177e6..617d2e1 100644
--- 
a/lookup-client/src/main/java/org/apache/ranger/hbase/client/HBaseClientTester.java
+++ 
b/lookup-client/src/main/java/org/apache/ranger/hbase/client/HBaseClientTester.java
@@ -19,6 +19,8 @@
 
  package org.apache.ranger.hbase.client;
 
+import java.io.IOException;
+import java.io.InputStream;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Properties;
@@ -42,8 +44,20 @@ public class HBaseClientTester {
                LOG.info("Starting ...");
 
                Properties conf = new Properties();
-               
-               
conf.load(HBaseClientTester.class.getClassLoader().getResourceAsStream(args[1]));
+               InputStream in = 
HBaseClientTester.class.getClassLoader().getResourceAsStream(args[1]) ;
+               try {
+               conf.load(in);
+               }
+               finally {
+                       if (in != null) {
+                               try {
+                               in.close();
+                               }
+                               catch(IOException ioe) {
+                                       // Ignore IOE when closing stream
+                               }
+                       }
+               }
 
                HashMap<String, String> prop = new HashMap<String, String>();
                for (Object key : conf.keySet()) {

http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/ce139e01/ugsync/src/main/java/org/apache/ranger/unixusersync/config/UserGroupSyncConfig.java
----------------------------------------------------------------------
diff --git 
a/ugsync/src/main/java/org/apache/ranger/unixusersync/config/UserGroupSyncConfig.java
 
b/ugsync/src/main/java/org/apache/ranger/unixusersync/config/UserGroupSyncConfig.java
index 6ef27fe..b2c2eb5 100644
--- 
a/ugsync/src/main/java/org/apache/ranger/unixusersync/config/UserGroupSyncConfig.java
+++ 
b/ugsync/src/main/java/org/apache/ranger/unixusersync/config/UserGroupSyncConfig.java
@@ -22,6 +22,7 @@
 import java.io.File;
 import java.io.FileInputStream;
 import java.io.FileNotFoundException;
+import java.io.IOException;
 import java.io.InputStream;
 import java.util.HashSet;
 import java.util.Properties;
@@ -169,7 +170,17 @@ public class UserGroupSyncConfig  {
                try {
                        InputStream in = getFileInputStream(CONFIG_FILE) ;
                        if (in != null) {
-                               prop.load(in) ;
+                               try {
+                                       prop.load(in) ;
+                               }
+                               finally {
+                                       try {
+                                               in.close() ;
+                                       }
+                                       catch(IOException ioe) {
+                                               // Ignore IOE when closing 
stream
+                                       }
+                               }
                        }
                } catch (Throwable e) {
                        throw new RuntimeException("Unable to load 
configuration file [" + CONFIG_FILE + "]", e) ;

http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/ce139e01/unixauthclient/src/main/java/org/apache/ranger/authentication/unix/jaas/RemoteUnixLoginModule.java
----------------------------------------------------------------------
diff --git 
a/unixauthclient/src/main/java/org/apache/ranger/authentication/unix/jaas/RemoteUnixLoginModule.java
 
b/unixauthclient/src/main/java/org/apache/ranger/authentication/unix/jaas/RemoteUnixLoginModule.java
index f6564be..0280464 100644
--- 
a/unixauthclient/src/main/java/org/apache/ranger/authentication/unix/jaas/RemoteUnixLoginModule.java
+++ 
b/unixauthclient/src/main/java/org/apache/ranger/authentication/unix/jaas/RemoteUnixLoginModule.java
@@ -145,8 +145,18 @@ public class RemoteUnixLoginModule implements LoginModule {
                        try {
                                in = getFileInputStream(val) ;
                                if (in != null) {
-                                       config = new Properties() ;
-                                       config.load(in);
+                                       try {
+                                               config = new Properties() ;
+                                               config.load(in);
+                                       }
+                                       finally {
+                                               try {
+                                                       in.close();
+                                               }
+                                               catch(IOException ioe) {
+                                                       // Ignore IOException 
when closing streams
+                                               }
+                                       }
                                }
                                
                        }

http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/ce139e01/unixauthservice/src/main/java/org/apache/ranger/authentication/UnixAuthenticationService.java
----------------------------------------------------------------------
diff --git 
a/unixauthservice/src/main/java/org/apache/ranger/authentication/UnixAuthenticationService.java
 
b/unixauthservice/src/main/java/org/apache/ranger/authentication/UnixAuthenticationService.java
index 1629e13..01ad7f4 100644
--- 
a/unixauthservice/src/main/java/org/apache/ranger/authentication/UnixAuthenticationService.java
+++ 
b/unixauthservice/src/main/java/org/apache/ranger/authentication/UnixAuthenticationService.java
@@ -22,6 +22,7 @@
 import java.io.File;
 import java.io.FileInputStream;
 import java.io.FileNotFoundException;
+import java.io.IOException;
 import java.io.InputStream;
 import java.net.ServerSocket;
 import java.net.Socket;
@@ -125,9 +126,22 @@ public class UnixAuthenticationService {
 
        //TODO: add more validation code
        private void init() throws Throwable {
-               InputStream in = 
getFileInputStream("unixauthservice.properties") ;
                Properties prop = new Properties() ;
-               prop.load(in);
+               InputStream in = 
getFileInputStream("unixauthservice.properties") ;
+
+               if (in != null) {
+                       try {
+                               prop.load(in);
+                       }
+                       finally {
+                               try {
+                                       in.close();
+                               }
+                               catch(IOException ioe) {
+                                       // Ignore IOE when closing streams
+                               }
+                       }
+               }
                keyStorePath = prop.getProperty(SSL_KEYSTORE_PATH_PARAM) ;
                keyStorePathPassword = 
prop.getProperty(SSL_KEYSTORE_PATH_PASSWORD_PARAM) ;
                trustStorePath  = prop.getProperty(SSL_TRUSTSTORE_PATH_PARAM) ;

Reply via email to