You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sling.apache.org by cz...@apache.org on 2016/12/19 15:25:09 UTC
svn commit: r1775121 - in
/sling/trunk/bundles/resourceresolver/src/main/java/org/apache/sling/resourceresolver/impl:
CommonResourceResolverFactoryImpl.java
ResourceResolverFactoryActivator.java ResourceResolverFactoryConfig.java
Author: cziegeler
Date: Mon Dec 19 15:25:09 2016
New Revision: 1775121
URL: http://svn.apache.org/viewvc?rev=1775121&view=rev
Log:
SLING-6375 : Log a warning in case a resource resolver is closed by the Sling RR Finalizer thread
Modified:
sling/trunk/bundles/resourceresolver/src/main/java/org/apache/sling/resourceresolver/impl/CommonResourceResolverFactoryImpl.java
sling/trunk/bundles/resourceresolver/src/main/java/org/apache/sling/resourceresolver/impl/ResourceResolverFactoryActivator.java
sling/trunk/bundles/resourceresolver/src/main/java/org/apache/sling/resourceresolver/impl/ResourceResolverFactoryConfig.java
Modified: sling/trunk/bundles/resourceresolver/src/main/java/org/apache/sling/resourceresolver/impl/CommonResourceResolverFactoryImpl.java
URL: http://svn.apache.org/viewvc/sling/trunk/bundles/resourceresolver/src/main/java/org/apache/sling/resourceresolver/impl/CommonResourceResolverFactoryImpl.java?rev=1775121&r1=1775120&r2=1775121&view=diff
==============================================================================
--- sling/trunk/bundles/resourceresolver/src/main/java/org/apache/sling/resourceresolver/impl/CommonResourceResolverFactoryImpl.java (original)
+++ sling/trunk/bundles/resourceresolver/src/main/java/org/apache/sling/resourceresolver/impl/CommonResourceResolverFactoryImpl.java Mon Dec 19 15:25:09 2016
@@ -86,11 +86,14 @@ public class CommonResourceResolverFacto
/** Background thread handling disposing of resource resolver instances. */
private final Thread refQueueThread;
+ private boolean logUnclosedResolvers;
+
/**
* Create a new common resource resolver factory.
*/
public CommonResourceResolverFactoryImpl(final ResourceResolverFactoryActivator activator) {
this.activator = activator;
+ this.logUnclosedResolvers = activator.isLogUnclosedResourceResolvers();
this.refQueueThread = new Thread("Apache Sling Resource Resolver Finalizer Thread") {
@Override
@@ -465,12 +468,12 @@ public class CommonResourceResolverFacto
super(referent, q);
this.control = ctrl;
this.factory = factory;
- this.openingException = LOG.isInfoEnabled() ? new Exception("Opening Stacktrace") : null;
+ this.openingException = factory.logUnclosedResolvers && LOG.isInfoEnabled() ? new Exception("Opening Stacktrace") : null;
}
public void close() {
try {
- if (factory.unregisterControl(this.control)) {
+ if (factory.unregisterControl(this.control) && factory.logUnclosedResolvers) {
if (factory.isLive()) {
LOG.warn("Closed unclosed ResourceResolver. The creation stacktrace is available on info log level.");
} else {
Modified: sling/trunk/bundles/resourceresolver/src/main/java/org/apache/sling/resourceresolver/impl/ResourceResolverFactoryActivator.java
URL: http://svn.apache.org/viewvc/sling/trunk/bundles/resourceresolver/src/main/java/org/apache/sling/resourceresolver/impl/ResourceResolverFactoryActivator.java?rev=1775121&r1=1775120&r2=1775121&view=diff
==============================================================================
--- sling/trunk/bundles/resourceresolver/src/main/java/org/apache/sling/resourceresolver/impl/ResourceResolverFactoryActivator.java (original)
+++ sling/trunk/bundles/resourceresolver/src/main/java/org/apache/sling/resourceresolver/impl/ResourceResolverFactoryActivator.java Mon Dec 19 15:25:09 2016
@@ -195,6 +195,10 @@ public class ResourceResolverFactoryActi
return this.config.resource_resolver_optimize_alias_resolution();
}
+ public boolean isLogUnclosedResourceResolvers() {
+ return this.config.resource_resolver_log_unclosed();
+ }
+
public String[] getVanityPathWhiteList() {
return this.vanityPathWhiteList;
}
Modified: sling/trunk/bundles/resourceresolver/src/main/java/org/apache/sling/resourceresolver/impl/ResourceResolverFactoryConfig.java
URL: http://svn.apache.org/viewvc/sling/trunk/bundles/resourceresolver/src/main/java/org/apache/sling/resourceresolver/impl/ResourceResolverFactoryConfig.java?rev=1775121&r1=1775120&r2=1775121&view=diff
==============================================================================
--- sling/trunk/bundles/resourceresolver/src/main/java/org/apache/sling/resourceresolver/impl/ResourceResolverFactoryConfig.java (original)
+++ sling/trunk/bundles/resourceresolver/src/main/java/org/apache/sling/resourceresolver/impl/ResourceResolverFactoryConfig.java Mon Dec 19 15:25:09 2016
@@ -174,5 +174,10 @@ public @interface ResourceResolverFactor
"with the point where the used resolver was closed. It's advisable to not enable this feature on " +
"production systems.")
boolean resource_resolver_log_closing() default false;
+
+ @AttributeDefinition(name = "Log unclosed resource resolvers",
+ description = "When enabled unclosed resource resolvers will be logged. Not closing " +
+ "a resource resolver is a bug in the code using the resolver and should be fixed.")
+ boolean resource_resolver_log_unclosed() default true;
}