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