ASF Bugzilla – Attachment 31953 Details for
Bug 56900
Resource Leaks found by CID 45266 and 45249
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Help
|
New Account
|
Log In
Remember
[x]
|
Forgot Password
Login:
[x]
[patch]
Close InputStream after use. Factor out common code into a private method.
0002-Close-InputStream-after-loading-Properties.-Factor-o.patch (text/plain), 5.77 KB, created by
Felix Schumacher
on 2014-08-30 13:38:41 UTC
(
hide
)
Description:
Close InputStream after use. Factor out common code into a private method.
Filename:
MIME Type:
Creator:
Felix Schumacher
Created:
2014-08-30 13:38:41 UTC
Size:
5.77 KB
patch
obsolete
>From 11e70e248da3bcbfdaf4b6095dc2e796ec315ac0 Mon Sep 17 00:00:00 2001 >From: Felix Schumacher <felix.schumacher@internetallee.de> >Date: Sat, 30 Aug 2014 15:34:30 +0200 >Subject: [PATCH 2/3] Close InputStream after loading Properties. Factor out > functionality into a private method. > >--- > .../catalina/core/DefaultInstanceManager.java | 83 ++++++++++------------ > 1 file changed, 37 insertions(+), 46 deletions(-) > >diff --git a/java/org/apache/catalina/core/DefaultInstanceManager.java b/java/org/apache/catalina/core/DefaultInstanceManager.java >index bb6f82a..57d84a4 100644 >--- a/java/org/apache/catalina/core/DefaultInstanceManager.java >+++ b/java/org/apache/catalina/core/DefaultInstanceManager.java >@@ -49,6 +49,7 @@ import org.apache.catalina.ContainerServlet; > import org.apache.catalina.Globals; > import org.apache.catalina.security.SecurityUtil; > import org.apache.catalina.util.Introspection; >+import org.apache.juli.logging.Log; > import org.apache.tomcat.InstanceManager; > import org.apache.tomcat.util.ExceptionUtils; > import org.apache.tomcat.util.res.StringManager; >@@ -71,13 +72,34 @@ public class DefaultInstanceManager implements InstanceManager { > protected final ClassLoader containerClassLoader; > protected final boolean privileged; > protected final boolean ignoreAnnotations; >- private final Properties restrictedFilters = new Properties(); >- private final Properties restrictedListeners = new Properties(); >- private final Properties restrictedServlets = new Properties(); >+ private final Properties restrictedFilters; >+ private final Properties restrictedListeners; >+ private final Properties restrictedServlets; > private final Map<Class<?>, AnnotationCacheEntry[]> annotationCache = > new WeakHashMap<>(); > private final Map<String, String> postConstructMethods; > private final Map<String, String> preDestroyMethods; >+ >+ private Properties loadProperties(String propertiesName, String errorString, Log logger) { >+ Properties result = new Properties(); >+ InputStream is = this.getClass().getClassLoader().getResourceAsStream(propertiesName); >+ if (is != null) { >+ try { >+ result.load(is); >+ } catch (IOException e) { >+ logger.error(errorString, e); >+ } finally { >+ try { >+ is.close(); >+ } catch (IOException e) { >+ // do nothing, since we either already read it, or got an exception already >+ } >+ } >+ } else { >+ logger.error(errorString); >+ } >+ return result; >+ } > > public DefaultInstanceManager(Context context, > Map<String, Map<String, String>> injectionMap, >@@ -88,49 +110,18 @@ public class DefaultInstanceManager implements InstanceManager { > this.containerClassLoader = containerClassLoader; > ignoreAnnotations = catalinaContext.getIgnoreAnnotations(); > StringManager sm = StringManager.getManager(Constants.Package); >- try { >- InputStream is = >- this.getClass().getClassLoader().getResourceAsStream >- ("org/apache/catalina/core/RestrictedServlets.properties"); >- if (is != null) { >- restrictedServlets.load(is); >- } else { >- catalinaContext.getLogger().error(sm.getString( >- "defaultInstanceManager.restrictedServletsResource")); >- } >- } catch (IOException e) { >- catalinaContext.getLogger().error(sm.getString( >- "defaultInstanceManager.restrictedServletsResource"), e); >- } >- >- try { >- InputStream is = >- this.getClass().getClassLoader().getResourceAsStream >- ("org/apache/catalina/core/RestrictedListeners.properties"); >- if (is != null) { >- restrictedListeners.load(is); >- } else { >- catalinaContext.getLogger().error(sm.getString( >- "defaultInstanceManager.restrictedListenersResources")); >- } >- } catch (IOException e) { >- catalinaContext.getLogger().error(sm.getString( >- "defaultInstanceManager.restrictedListenersResources"), e); >- } >- try { >- InputStream is = >- this.getClass().getClassLoader().getResourceAsStream >- ("org/apache/catalina/core/RestrictedFilters.properties"); >- if (is != null) { >- restrictedFilters.load(is); >- } else { >- catalinaContext.getLogger().error(sm.getString( >- "defaultInstanceManager.restrictedFiltersResource")); >- } >- } catch (IOException e) { >- catalinaContext.getLogger().error(sm.getString( >- "defaultInstanceManager.restrictedServletsResources"), e); >- } >+ restrictedServlets = loadProperties( >+ "org/apache/catalina/core/RestrictedServlets.properties", >+ sm.getString("defaultInstanceManager.restrictedServletsResource"), >+ catalinaContext.getLogger()); >+ restrictedListeners = loadProperties( >+ "org/apache/catalina/core/RestrictedListeners.properties", >+ "defaultInstanceManager.restrictedListenersResources", >+ catalinaContext.getLogger()); >+ restrictedFilters = loadProperties( >+ "org/apache/catalina/core/RestrictedFilters.properties", >+ "defaultInstanceManager.restrictedFiltersResource", >+ catalinaContext.getLogger()); > this.context = context; > this.injectionMap = injectionMap; > this.postConstructMethods = catalinaContext.findPostConstructMethods(); >-- >1.9.1 >
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
Attachments on
bug 56900
: 31953 |
31954