[SM-2153]PropertiesLoginModule always leave file handler open

git-svn-id: https://svn.apache.org/repos/asf/servicemix/smx3/trunk@1338031 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/core/servicemix-core/src/main/java/org/apache/servicemix/jbi/security/login/CertificatesLoginModule.java b/core/servicemix-core/src/main/java/org/apache/servicemix/jbi/security/login/CertificatesLoginModule.java
index 8227a7e..091a7d1 100644
--- a/core/servicemix-core/src/main/java/org/apache/servicemix/jbi/security/login/CertificatesLoginModule.java
+++ b/core/servicemix-core/src/main/java/org/apache/servicemix/jbi/security/login/CertificatesLoginModule.java
@@ -18,6 +18,7 @@
 
 import java.io.File;
 import java.io.IOException;
+import java.io.InputStream;
 import java.security.Principal;
 import java.security.cert.X509Certificate;
 import java.util.Enumeration;
@@ -84,16 +85,37 @@
 
     public boolean login() throws LoginException {
         File f = new File(baseDir, usersFile);
+        InputStream fis = null;
         try {
-            users.load(new java.io.FileInputStream(f));
+            fis = new java.io.FileInputStream(f);
+            users.load(fis);
         } catch (IOException ioe) {
             throw new LoginException("Unable to load user properties file " + f);
+        } finally {
+            if (fis != null) {
+                try {
+                    fis.close();
+                    fis = null;
+                } catch (IOException e) {
+                    throw new LoginException("Unable to close user properties file " + f);
+                }
+            }
         }
         f = new File(baseDir, groupsFile);
         try {
-            groups.load(new java.io.FileInputStream(f));
+            fis = new java.io.FileInputStream(f);
+            groups.load(fis);
         } catch (IOException ioe) {
             throw new LoginException("Unable to load group properties file " + f);
+        } finally {
+            if (fis != null) {
+                try {
+                    fis.close();
+                    fis = null;
+                } catch (IOException e) {
+                    throw new LoginException("Unable to close group properties file " + f);
+                }
+            }
         }
 
         Callback[] callbacks = new Callback[1];
diff --git a/core/servicemix-core/src/main/java/org/apache/servicemix/jbi/security/login/PropertiesLoginModule.java b/core/servicemix-core/src/main/java/org/apache/servicemix/jbi/security/login/PropertiesLoginModule.java
index d5a4c68..18d4dce 100644
--- a/core/servicemix-core/src/main/java/org/apache/servicemix/jbi/security/login/PropertiesLoginModule.java
+++ b/core/servicemix-core/src/main/java/org/apache/servicemix/jbi/security/login/PropertiesLoginModule.java
@@ -18,6 +18,7 @@
 
 import java.io.File;
 import java.io.IOException;
+import java.io.InputStream;
 import java.util.Enumeration;
 import java.util.HashSet;
 import java.util.Map;
@@ -82,16 +83,37 @@
 
     public boolean login() throws LoginException {
         File f = new File(baseDir, usersFile);
+        InputStream fis = null;
         try {
-            users.load(new java.io.FileInputStream(f));
+            fis = new java.io.FileInputStream(f);
+            users.load(fis);
         } catch (IOException ioe) {
             throw new LoginException("Unable to load user properties file " + f);
+        } finally {
+            if (fis != null) {
+                try {
+                    fis.close();
+                    fis = null;
+                } catch (IOException e) {
+                    throw new LoginException("Unable to close user properties file " + f);
+                }
+            }
         }
         f = new File(baseDir, groupsFile);
         try {
-            groups.load(new java.io.FileInputStream(f));
+            fis = new java.io.FileInputStream(f);
+            groups.load(fis);
         } catch (IOException ioe) {
             throw new LoginException("Unable to load group properties file " + f);
+        } finally {
+            if (fis != null) {
+                try {
+                    fis.close();
+                    fis = null;
+                } catch (IOException e) {
+                    throw new LoginException("Unable to close group properties file " + f);
+                }
+            }
         }
 
         Callback[] callbacks = new Callback[2];