You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by re...@apache.org on 2020/06/01 13:58:24 UTC
[tomcat] branch master updated: 64485: Fix possible resource leak
This is an automated email from the ASF dual-hosted git repository.
remm pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/tomcat.git
The following commit(s) were added to refs/heads/master by this push:
new be5025d 64485: Fix possible resource leak
be5025d is described below
commit be5025de4d21cb5e0e7e4573e22c6b8a79e01443
Author: remm <re...@apache.org>
AuthorDate: Mon Jun 1 15:58:02 2020 +0200
64485: Fix possible resource leak
And actually use ConfigurationSource.Resource.getLastModified.
---
java/org/apache/catalina/users/MemoryUserDatabase.java | 2 +-
java/org/apache/tomcat/util/file/ConfigurationSource.java | 11 ++++++++++-
webapps/docs/changelog.xml | 4 ++++
3 files changed, 15 insertions(+), 2 deletions(-)
diff --git a/java/org/apache/catalina/users/MemoryUserDatabase.java b/java/org/apache/catalina/users/MemoryUserDatabase.java
index 6062c75..a9d3fc8 100644
--- a/java/org/apache/catalina/users/MemoryUserDatabase.java
+++ b/java/org/apache/catalina/users/MemoryUserDatabase.java
@@ -425,7 +425,7 @@ public class MemoryUserDatabase implements UserDatabase {
String pathName = getPathname();
try (ConfigurationSource.Resource resource = ConfigFileLoader.getSource().getResource(pathName)) {
- this.lastModified = resource.getURI().toURL().openConnection().getLastModified();
+ lastModified = resource.getLastModified();
// Construct a digester to read the XML input file
Digester digester = new Digester();
diff --git a/java/org/apache/tomcat/util/file/ConfigurationSource.java b/java/org/apache/tomcat/util/file/ConfigurationSource.java
index 2df11bc..57d5ce4 100644
--- a/java/org/apache/tomcat/util/file/ConfigurationSource.java
+++ b/java/org/apache/tomcat/util/file/ConfigurationSource.java
@@ -24,6 +24,7 @@ import java.io.InputStream;
import java.net.MalformedURLException;
import java.net.URI;
import java.net.URL;
+import java.net.URLConnection;
/**
* Abstracts configuration file storage. Allows Tomcat embedding using the regular
@@ -92,7 +93,15 @@ public interface ConfigurationSource {
}
public long getLastModified()
throws MalformedURLException, IOException {
- return uri.toURL().openConnection().getLastModified();
+ URLConnection connection = null;
+ try {
+ connection = uri.toURL().openConnection();
+ return connection.getLastModified();
+ } finally {
+ if (connection != null) {
+ connection.getInputStream().close();
+ }
+ }
}
@Override
public void close() throws IOException {
diff --git a/webapps/docs/changelog.xml b/webapps/docs/changelog.xml
index eb3c72d..056cf3b 100644
--- a/webapps/docs/changelog.xml
+++ b/webapps/docs/changelog.xml
@@ -87,6 +87,10 @@
Expose server certificate through the <code>SSLSupport</code>
interface. (remm)
</update>
+ <fix>
+ <bug>64485</bug>: Fix possible resource leak geting last modified from
+ <code>ConfigurationSource.Resource</code>. (remm)
+ </fix>
</changelog>
</subsection>
<subsection name="Jasper">
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org
For additional commands, e-mail: dev-help@tomcat.apache.org