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 2015/09/28 17:38:39 UTC
svn commit: r1705708 -
/sling/trunk/bundles/servlets/resolver/src/main/java/org/apache/sling/servlets/resolver/internal/SlingServletResolver.java
Author: cziegeler
Date: Mon Sep 28 15:38:39 2015
New Revision: 1705708
URL: http://svn.apache.org/viewvc?rev=1705708&view=rev
Log:
SLING-5070 : ServletResolverCacheMBeanImpl throws NPE when cache is diabled. Apply patch from Dirk Rudolph
Modified:
sling/trunk/bundles/servlets/resolver/src/main/java/org/apache/sling/servlets/resolver/internal/SlingServletResolver.java
Modified: sling/trunk/bundles/servlets/resolver/src/main/java/org/apache/sling/servlets/resolver/internal/SlingServletResolver.java
URL: http://svn.apache.org/viewvc/sling/trunk/bundles/servlets/resolver/src/main/java/org/apache/sling/servlets/resolver/internal/SlingServletResolver.java?rev=1705708&r1=1705707&r2=1705708&view=diff
==============================================================================
--- sling/trunk/bundles/servlets/resolver/src/main/java/org/apache/sling/servlets/resolver/internal/SlingServletResolver.java (original)
+++ sling/trunk/bundles/servlets/resolver/src/main/java/org/apache/sling/servlets/resolver/internal/SlingServletResolver.java Mon Sep 28 15:38:39 2015
@@ -222,6 +222,7 @@ public class SlingServletResolver
/**
* @see org.apache.sling.api.servlets.ServletResolver#resolveServlet(org.apache.sling.api.SlingHttpServletRequest)
*/
+ @Override
public Servlet resolveServlet(final SlingHttpServletRequest request) {
final Resource resource = request.getResource();
@@ -272,6 +273,7 @@ public class SlingServletResolver
/**
* @see org.apache.sling.api.servlets.ServletResolver#resolveServlet(org.apache.sling.api.resource.Resource, java.lang.String)
*/
+ @Override
public Servlet resolveServlet(final Resource resource, final String scriptName) {
if ( resource == null ) {
throw new IllegalArgumentException("Resource must not be null");
@@ -298,6 +300,7 @@ public class SlingServletResolver
/**
* @see org.apache.sling.api.servlets.ServletResolver#resolveServlet(org.apache.sling.api.resource.ResourceResolver, java.lang.String)
*/
+ @Override
public Servlet resolveServlet(final ResourceResolver resolver, final String scriptName) {
if ( resolver == null ) {
throw new IllegalArgumentException("Resource resolver must not be null");
@@ -346,6 +349,7 @@ public class SlingServletResolver
/**
* @see org.apache.sling.api.scripting.SlingScriptResolver#findScript(org.apache.sling.api.resource.ResourceResolver, java.lang.String)
*/
+ @Override
public SlingScript findScript(final ResourceResolver resourceResolver, final String name)
throws SlingException {
@@ -393,6 +397,7 @@ public class SlingServletResolver
* @see org.apache.sling.engine.servlets.ErrorHandler#handleError(int,
* String, SlingHttpServletRequest, SlingHttpServletResponse)
*/
+ @Override
public void handleError(final int status,
final String message,
final SlingHttpServletRequest request,
@@ -449,6 +454,7 @@ public class SlingServletResolver
/**
* @see org.apache.sling.engine.servlets.ErrorHandler#handleError(java.lang.Throwable, org.apache.sling.api.SlingHttpServletRequest, org.apache.sling.api.SlingHttpServletResponse)
*/
+ @Override
public void handleError(final Throwable throwable, final SlingHttpServletRequest request, final SlingHttpServletResponse response)
throws IOException {
// do not handle, if already handling ....
@@ -519,6 +525,7 @@ public class SlingServletResolver
/**
* @see org.apache.sling.api.request.SlingRequestListener#onEvent(org.apache.sling.api.request.SlingRequestEvent)
*/
+ @Override
public void onEvent(final SlingRequestEvent event) {
if ( event.getType() == SlingRequestEvent.EventType.EVENT_INIT ) {
try {
@@ -855,14 +862,16 @@ public class SlingServletResolver
this.plugin = new ServletResolverWebConsolePlugin(context.getBundleContext());
- try {
- Dictionary<String, String> mbeanProps = new Hashtable<String, String>();
- mbeanProps.put("jmx.objectname", "org.apache.sling:type=servletResolver,service=SlingServletResolverCache");
+ if (this.cacheSize > 0) {
+ try {
+ Dictionary<String, String> mbeanProps = new Hashtable<String, String>();
+ mbeanProps.put("jmx.objectname", "org.apache.sling:type=servletResolver,service=SlingServletResolverCache");
- ServletResolverCacheMBeanImpl mbean = new ServletResolverCacheMBeanImpl();
- mbeanRegistration = context.getBundleContext().registerService(SlingServletResolverCacheMBean.class.getName(), mbean, mbeanProps);
- } catch (Throwable t) {
- LOGGER.debug("Unable to register mbean");
+ ServletResolverCacheMBeanImpl mbean = new ServletResolverCacheMBeanImpl();
+ mbeanRegistration = context.getBundleContext().registerService(SlingServletResolverCacheMBean.class.getName(), mbean, mbeanProps);
+ } catch (Throwable t) {
+ LOGGER.debug("Unable to register mbean");
+ }
}
}
@@ -1053,6 +1062,7 @@ public class SlingServletResolver
/**
* @see org.osgi.service.event.EventHandler#handleEvent(org.osgi.service.event.Event)
*/
+ @Override
public void handleEvent(final Event event) {
if (this.cache != null) {
boolean flushCache = false;
@@ -1386,14 +1396,17 @@ public class SlingServletResolver
super(SlingServletResolverCacheMBean.class);
}
+ @Override
public int getCacheSize() {
- return cache.size();
+ return cache != null ? cache.size() : 0;
}
+ @Override
public void flushCache() {
SlingServletResolver.this.flushCache();
}
+ @Override
public int getMaximumCacheSize() {
return cacheSize;
}