Author: markt
Date: Mon Nov 19 11:52:26 2018
New Revision: 1846892

URL: http://svn.apache.org/viewvc?rev=1846892&view=rev
Log:
Fix https://bz.apache.org/bugzilla/show_bug.cgi?id=62928
Fix file descriptor leak introduced in the code that monitors tomcat-users.xml 
for modifications.

Modified:
    tomcat/trunk/java/org/apache/catalina/users/LocalStrings.properties
    tomcat/trunk/java/org/apache/catalina/users/MemoryUserDatabase.java
    tomcat/trunk/webapps/docs/changelog.xml

Modified: tomcat/trunk/java/org/apache/catalina/users/LocalStrings.properties
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/users/LocalStrings.properties?rev=1846892&r1=1846891&r2=1846892&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/catalina/users/LocalStrings.properties [UTF-8] 
(original)
+++ tomcat/trunk/java/org/apache/catalina/users/LocalStrings.properties [UTF-8] 
Mon Nov 19 11:52:26 2018
@@ -13,6 +13,7 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
+memoryUserDatabase.fileClose=Failed to close [{0}]
 memoryUserDatabase.fileDelete=Failed to delete [{0}]
 memoryUserDatabase.fileNotFound=The specified user database [{0}] could not be 
found
 memoryUserDatabase.notPersistable=User database is not persistable - no write 
permissions on directory

Modified: tomcat/trunk/java/org/apache/catalina/users/MemoryUserDatabase.java
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/users/MemoryUserDatabase.java?rev=1846892&r1=1846891&r2=1846892&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/catalina/users/MemoryUserDatabase.java 
(original)
+++ tomcat/trunk/java/org/apache/catalina/users/MemoryUserDatabase.java Mon Nov 
19 11:52:26 2018
@@ -653,9 +653,10 @@ public class MemoryUserDatabase implemen
         }
 
         URI uri = ConfigFileLoader.getSource().getURI(getPathname());
+        URLConnection uConn = null;
         try {
             URL url = uri.toURL();
-            URLConnection uConn = url.openConnection();
+            uConn = url.openConnection();
 
             if (this.lastModified != uConn.getLastModified()) {
                 writeLock.lock();
@@ -675,6 +676,15 @@ public class MemoryUserDatabase implemen
             }
         } catch (Exception ioe) {
             log.error(sm.getString("memoryUserDatabase.reloadError", id, uri), 
ioe);
+        } finally {
+            if (uConn != null) {
+                try {
+                    // Can't close a uConn directly. Have to do it like this.
+                    uConn.getInputStream().close();
+                } catch (IOException ioe) {
+                    log.warn(sm.getString("memoryUserDatabase.fileClose", 
pathname), ioe);
+                }
+            }
         }
     }
 

Modified: tomcat/trunk/webapps/docs/changelog.xml
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/webapps/docs/changelog.xml?rev=1846892&r1=1846891&r2=1846892&view=diff
==============================================================================
--- tomcat/trunk/webapps/docs/changelog.xml (original)
+++ tomcat/trunk/webapps/docs/changelog.xml Mon Nov 19 11:52:26 2018
@@ -100,6 +100,10 @@
       <fix>
         Fix more storeconfig issues with duplicated SSL attributes. (remm)
       </fix>
+      <fix>
+        <bug>62924</bug>: Fix file descriptor leak introduced in the code that
+        monitors <code>tomcat-users.xml</code> for modifications. (markt)
+      </fix>
     </changelog>
   </subsection>
   <subsection name="Coyote">



---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org

Reply via email to