[ 
https://issues.apache.org/jira/browse/SLING-1633?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Felix Meschberger resolved SLING-1633.
--------------------------------------

    Fix Version/s: JCR Resource 2.0.8
       Resolution: Fixed

Thanks for reportiing.

Fixed in Rev. 983586 by resetting the array field to the empty array at 
unregistration of the last tracked ResourceDecorator.

Please, reopen the issue if it doesn't fix your issue. Thanks

> After unregistering a ResourceDecorator service any request causes a 
> NullPointerException to be thrown
> ------------------------------------------------------------------------------------------------------
>
>                 Key: SLING-1633
>                 URL: https://issues.apache.org/jira/browse/SLING-1633
>             Project: Sling
>          Issue Type: Bug
>          Components: JCR
>    Affects Versions: JCR Resource 2.0.6
>            Reporter: Davide Maestroni
>            Assignee: Felix Meschberger
>            Priority: Critical
>             Fix For: JCR Resource 2.0.8
>
>
> After registering and then unregistering a service implementing the 
> ResourceDecorator interface, any request causes a NullPointerException thus 
> making the whole repository unusable even if the HTTP response code is always 
> 200 (see trace below).
> 09.08.2010 12:23:15.109 *INFO* [127.0.0.1 [1281349395109] GET 
> /sling/content.json HTTP/1.1] logs/request.log 09/Aug/2010:12:23:15 +0200 [2] 
> <- 200 - 0ms
> 09.08.2010 12:23:15.109 *INFO* [127.0.0.1 [1281349395109] GET 
> /sling/content.json HTTP/1.1] logs/access.log 127.0.0.1 - admin 
> 09/Aug/2010:12:23:15 +0200 "GET /sling/content.json HTTP/1.1" 200 - "-" 
> "curl/7.19.5 (i586-pc-mingw32msvc) libcurl/7.19.5 zlib/1.2.3"
> 09.08.2010 12:23:15.109 *ERROR* [127.0.0.1 [1281349395109] GET 
> /sling/content.json HTTP/1.1] org.apache.sling.engine.impl.SlingMainServlet 
> service: Uncaught Problem handling the request java.lang.NullPointerException
>       at 
> org.apache.sling.engine.impl.SlingHttpServletRequestImpl.getResource(SlingHttpServletRequestImpl.java:107)
>       at 
> org.apache.sling.servlets.resolver.internal.SlingServletResolver.getErrorResource(SlingServletResolver.java:537)
>       at 
> org.apache.sling.servlets.resolver.internal.SlingServletResolver.handleError(SlingServletResolver.java:490)
>       at 
> org.apache.sling.engine.impl.SlingMainServlet.service(SlingMainServlet.java:363)
>       at 
> org.apache.sling.engine.impl.SlingMainServlet.service(SlingMainServlet.java:207)
>       at 
> org.apache.felix.http.base.internal.handler.ServletHandler.doHandle(ServletHandler.java:91)
>       at 
> org.apache.felix.http.base.internal.handler.ServletHandler.handle(ServletHandler.java:77)
>       at 
> org.apache.felix.http.base.internal.dispatch.ServletPipeline.handle(ServletPipeline.java:42)
>       at 
> org.apache.felix.http.base.internal.dispatch.InvocationFilterChain.doFilter(InvocationFilterChain.java:49)
>       at 
> org.apache.felix.http.base.internal.dispatch.HttpFilterChain.doFilter(HttpFilterChain.java:33)
>       at 
> org.apache.felix.http.base.internal.dispatch.FilterPipeline.dispatch(FilterPipeline.java:48)
>       at 
> org.apache.felix.http.base.internal.dispatch.Dispatcher.dispatch(Dispatcher.java:39)
>       at 
> org.apache.felix.http.base.internal.DispatcherServlet.service(DispatcherServlet.java:55)
>       at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
>       at 
> org.apache.felix.http.proxy.ProxyServlet.service(ProxyServlet.java:60)
>       at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
>       at 
> org.apache.sling.launchpad.base.webapp.SlingServletDelegate.service(SlingServletDelegate.java:275)
>       at 
> org.apache.sling.launchpad.webapp.SlingServlet.service(SlingServlet.java:148)
>       at 
> org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:527)
>       at 
> org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:423)
>       at 
> org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:119)
>       at 
> org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:456)
>       at 
> org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:226)
>       at 
> org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:924)
>       at 
> org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:358)
>       at 
> org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:183)
>       at 
> org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:860)
>       at 
> org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:117)
>       at 
> org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:245)
>       at 
> org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:126)
>       at 
> org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:113)
>       at org.eclipse.jetty.server.Server.handle(Server.java:335)
>       at 
> org.eclipse.jetty.server.HttpConnection.handleRequest(HttpConnection.java:588)
>       at 
> org.eclipse.jetty.server.HttpConnection$RequestHandler.headerComplete(HttpConnection.java:1029)
>       at org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:549)
>       at org.eclipse.jetty.http.HttpParser.parseAvailable(HttpParser.java:211)
>       at 
> org.eclipse.jetty.server.HttpConnection.handle(HttpConnection.java:418)
>       at 
> org.eclipse.jetty.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:489)
>       at 
> org.eclipse.jetty.util.thread.QueuedThreadPool$2.run(QueuedThreadPool.java:436)
>       at java.lang.Thread.run(Unknown Source)
> The issue seems to be solved just replacing line 110 of 
> bundles/jcr/resource/src/main/java/org/apache/sling/jcr/resource/internal/ResourceDecoratorTracker.java
>  with:
> ResourceDecorator[] decorators = EMPTY_ARRAY;

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to