You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@sling.apache.org by "Tobias Bocanegra (JIRA)" <ji...@apache.org> on 2008/02/04 23:31:07 UTC

[jira] Created: (SLING-220) NPE when requesting content with selector

NPE when requesting content with selector
-----------------------------------------

                 Key: SLING-220
                 URL: https://issues.apache.org/jira/browse/SLING-220
             Project: Sling
          Issue Type: Bug
          Components: Resource
            Reporter: Tobias Bocanegra


request to:  http://localhost:5002//content/test/contacts.navimage.jpg

java.lang.NullPointerException
   at org.apache.sling.jcr.resource.internal.JcrResourceResolver.getResourceInternal(JcrResourceResolver.java:360)
   at org.apache.sling.jcr.resource.internal.JcrResourceResolver.getResource(JcrResourceResolver.java:137)
   at org.apache.sling.servlet.resolver.SlingServletResolver.getServletAt(SlingServletResolver.java:322)
   at org.apache.sling.servlet.resolver.SlingServletResolver.resolveServlet(SlingServletResolver.java:145)
  ...


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


[jira] Closed: (SLING-220) NPE when requesting content with selector

Posted by "Tobias Bocanegra (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/SLING-220?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Tobias Bocanegra closed SLING-220.
----------------------------------


perfect. thanks

> NPE when requesting content with selector
> -----------------------------------------
>
>                 Key: SLING-220
>                 URL: https://issues.apache.org/jira/browse/SLING-220
>             Project: Sling
>          Issue Type: Bug
>          Components: Resource
>            Reporter: Tobias Bocanegra
>            Assignee: Felix Meschberger
>             Fix For: 2.0.0
>
>   Original Estimate: 0h
>  Remaining Estimate: 0h
>
> When requesting a certain resource (e.g. http://localhost:5002//content/test/contacts.navimage.jpg) a NullPointerException may be thrown by the JcrResourceResolver.getResourceInternal method when trying to go back up the ResourceProviderEntry tree.
> Stacktrace:
> java.lang.NullPointerException
>    at org.apache.sling.jcr.resource.internal.JcrResourceResolver.getResourceInternal(JcrResourceResolver.java:360)
>    at org.apache.sling.jcr.resource.internal.JcrResourceResolver.getResource(JcrResourceResolver.java:137)
>    at org.apache.sling.servlet.resolver.SlingServletResolver.getServletAt(SlingServletResolver.java:322)
>    at org.apache.sling.servlet.resolver.SlingServletResolver.resolveServlet(SlingServletResolver.java:145)
>   ...

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


[jira] Commented: (SLING-220) NPE when requesting content with selector

Posted by "Tobias Bocanegra (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/SLING-220?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12565587#action_12565587 ] 

Tobias Bocanegra commented on SLING-220:
----------------------------------------

here the complete stacktrace:

java.lang.NullPointerException
	at org.apache.sling.jcr.resource.internal.JcrResourceResolver.getResourceInternal(JcrResourceResolver.java:360)
	at org.apache.sling.jcr.resource.internal.JcrResourceResolver.getResource(JcrResourceResolver.java:137)
	at org.apache.sling.servlet.resolver.SlingServletResolver.getServletAt(SlingServletResolver.java:322)
	at org.apache.sling.servlet.resolver.SlingServletResolver.resolveServlet(SlingServletResolver.java:145)
	at org.apache.sling.core.impl.request.RequestData.init(RequestData.java:156)
	at org.apache.sling.core.impl.SlingMainServlet.service(SlingMainServlet.java:259)
	at org.apache.sling.core.impl.SlingMainServlet.service(SlingMainServlet.java:172)
	at org.eclipse.equinox.http.servlet.internal.ServletRegistration.handleRequest(ServletRegistration.java:90)
	at org.eclipse.equinox.http.servlet.internal.ProxyServlet.processAlias(ProxyServlet.java:109)
	at org.eclipse.equinox.http.servlet.internal.ProxyServlet.service(ProxyServlet.java:75)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
	at org.apache.sling.launcher.webapp.SlingServlet.service(SlingServlet.java:195)
	at com.day.j2ee.servletengine.ServletRuntimeEnvironment.service(ServletRuntimeEnvironment.java:228)
	at com.day.j2ee.servletengine.RequestDispatcherImpl.doFilter(RequestDispatcherImpl.java:293)
	at com.day.j2ee.servletengine.RequestDispatcherImpl.service(RequestDispatcherImpl.java:312)
	at com.day.j2ee.servletengine.RequestDispatcherImpl.service(RequestDispatcherImpl.java:354)
	at com.day.j2ee.servletengine.ServletRequestHandler.execute(ServletRequestHandler.java:313)
	at com.day.j2ee.servletengine.DefaultThreadPool$DequeueThread.run(DefaultThreadPool.java:134)
	at java.lang.Thread.run(Thread.java:613)


> NPE when requesting content with selector
> -----------------------------------------
>
>                 Key: SLING-220
>                 URL: https://issues.apache.org/jira/browse/SLING-220
>             Project: Sling
>          Issue Type: Bug
>          Components: Resource
>            Reporter: Tobias Bocanegra
>
> request to:  http://localhost:5002//content/test/contacts.navimage.jpg
> java.lang.NullPointerException
>    at org.apache.sling.jcr.resource.internal.JcrResourceResolver.getResourceInternal(JcrResourceResolver.java:360)
>    at org.apache.sling.jcr.resource.internal.JcrResourceResolver.getResource(JcrResourceResolver.java:137)
>    at org.apache.sling.servlet.resolver.SlingServletResolver.getServletAt(SlingServletResolver.java:322)
>    at org.apache.sling.servlet.resolver.SlingServletResolver.resolveServlet(SlingServletResolver.java:145)
>   ...

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


[jira] Assigned: (SLING-220) NPE when requesting content with selector

Posted by "Felix Meschberger (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/SLING-220?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Felix Meschberger reassigned SLING-220:
---------------------------------------

    Assignee: Felix Meschberger

> NPE when requesting content with selector
> -----------------------------------------
>
>                 Key: SLING-220
>                 URL: https://issues.apache.org/jira/browse/SLING-220
>             Project: Sling
>          Issue Type: Bug
>          Components: Resource
>            Reporter: Tobias Bocanegra
>            Assignee: Felix Meschberger
>   Original Estimate: 0h
>  Remaining Estimate: 0h
>
> request to:  http://localhost:5002//content/test/contacts.navimage.jpg
> java.lang.NullPointerException
>    at org.apache.sling.jcr.resource.internal.JcrResourceResolver.getResourceInternal(JcrResourceResolver.java:360)
>    at org.apache.sling.jcr.resource.internal.JcrResourceResolver.getResource(JcrResourceResolver.java:137)
>    at org.apache.sling.servlet.resolver.SlingServletResolver.getServletAt(SlingServletResolver.java:322)
>    at org.apache.sling.servlet.resolver.SlingServletResolver.resolveServlet(SlingServletResolver.java:145)
>   ...

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


[jira] Resolved: (SLING-220) NPE when requesting content with selector

Posted by "Felix Meschberger (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/SLING-220?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Felix Meschberger resolved SLING-220.
-------------------------------------

       Resolution: Fixed
    Fix Version/s: 2.0.0

Fixed in Rev. 618734 by refactoring resource resolution using the ResourceProviderTree. Instead of finding the longest prefix matching ResourceProvider and going back up following the parent links, I added a ResourceProviderEntry.getResource(String) method, which walks down the tree looking for the longest matching prefix and asking each resource provider going back up in turn for the resource.

This way, we do not have to manage any parent provider links and may cleanly encapsulate the inner workings of the ResourceProviderEntry tree.

Please close this bug, if it fixes your issue. Thanks.



> NPE when requesting content with selector
> -----------------------------------------
>
>                 Key: SLING-220
>                 URL: https://issues.apache.org/jira/browse/SLING-220
>             Project: Sling
>          Issue Type: Bug
>          Components: Resource
>            Reporter: Tobias Bocanegra
>            Assignee: Felix Meschberger
>             Fix For: 2.0.0
>
>   Original Estimate: 0h
>  Remaining Estimate: 0h
>
> request to:  http://localhost:5002//content/test/contacts.navimage.jpg
> java.lang.NullPointerException
>    at org.apache.sling.jcr.resource.internal.JcrResourceResolver.getResourceInternal(JcrResourceResolver.java:360)
>    at org.apache.sling.jcr.resource.internal.JcrResourceResolver.getResource(JcrResourceResolver.java:137)
>    at org.apache.sling.servlet.resolver.SlingServletResolver.getServletAt(SlingServletResolver.java:322)
>    at org.apache.sling.servlet.resolver.SlingServletResolver.resolveServlet(SlingServletResolver.java:145)
>   ...

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


[jira] Commented: (SLING-220) NPE when requesting content with selector

Posted by "Tobias Bocanegra (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/SLING-220?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12565703#action_12565703 ] 

Tobias Bocanegra commented on SLING-220:
----------------------------------------

thanks. btw: it can easily be reproduced by requesting: /classes.foo.txt
assuming /classes is nt:folder

> NPE when requesting content with selector
> -----------------------------------------
>
>                 Key: SLING-220
>                 URL: https://issues.apache.org/jira/browse/SLING-220
>             Project: Sling
>          Issue Type: Bug
>          Components: Resource
>            Reporter: Tobias Bocanegra
>   Original Estimate: 0h
>  Remaining Estimate: 0h
>
> request to:  http://localhost:5002//content/test/contacts.navimage.jpg
> java.lang.NullPointerException
>    at org.apache.sling.jcr.resource.internal.JcrResourceResolver.getResourceInternal(JcrResourceResolver.java:360)
>    at org.apache.sling.jcr.resource.internal.JcrResourceResolver.getResource(JcrResourceResolver.java:137)
>    at org.apache.sling.servlet.resolver.SlingServletResolver.getServletAt(SlingServletResolver.java:322)
>    at org.apache.sling.servlet.resolver.SlingServletResolver.resolveServlet(SlingServletResolver.java:145)
>   ...

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


[jira] Updated: (SLING-220) NPE when requesting content with selector

Posted by "Carsten Ziegeler (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/SLING-220?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Carsten Ziegeler updated SLING-220:
-----------------------------------

    Remaining Estimate: 0h
     Original Estimate: 0h

I've committed a potential fix for this NPE, although I'm not sure if this is the right solution. At least the NPE is not occuring anymore.

> NPE when requesting content with selector
> -----------------------------------------
>
>                 Key: SLING-220
>                 URL: https://issues.apache.org/jira/browse/SLING-220
>             Project: Sling
>          Issue Type: Bug
>          Components: Resource
>            Reporter: Tobias Bocanegra
>   Original Estimate: 0h
>  Remaining Estimate: 0h
>
> request to:  http://localhost:5002//content/test/contacts.navimage.jpg
> java.lang.NullPointerException
>    at org.apache.sling.jcr.resource.internal.JcrResourceResolver.getResourceInternal(JcrResourceResolver.java:360)
>    at org.apache.sling.jcr.resource.internal.JcrResourceResolver.getResource(JcrResourceResolver.java:137)
>    at org.apache.sling.servlet.resolver.SlingServletResolver.getServletAt(SlingServletResolver.java:322)
>    at org.apache.sling.servlet.resolver.SlingServletResolver.resolveServlet(SlingServletResolver.java:145)
>   ...

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


[jira] Commented: (SLING-220) NPE when requesting content with selector

Posted by "Felix Meschberger (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/SLING-220?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12565786#action_12565786 ] 

Felix Meschberger commented on SLING-220:
-----------------------------------------

The problem is as follows: When ResourceProviders are registered the are added to the JcrResourceFactoryImpl's rootProviderEntry in a tree of ResourceProviderEntry structures. Each entry has a link to its parent, hence the direct children of rootProviderEntry link to the rootProviderEntry. This rootProviderEntry is a dumy, hence has no ResourceProvider attached.

When a JcrResourceResolver instance is created a new ResourceProviderEntry is created with a JcrResourceProvider and the children of the rootProviderEntry are added to the Jcr ResourceProviderEntry. But their parent link still point to the original rootProviderEntry, which has no RespourceProvider.

If now a resource is to be looked up, a ResourceProviderEntry below root may be selected first, this may fail and finally the rootProviderEntry is asked instead of the Jcr ResourceProviderEntry, hence the NPE.

To fix this situation, I will completely redo the way how a Resource is looked up in the ResourceProviderEntry tree: A new ResourceProviderEntry.getResource() method will go down the tree looking for the resource asking the getResource method of children in turn. This way, we automatically get "longest" path match first and have backtracking up the tree through the call stack.

> NPE when requesting content with selector
> -----------------------------------------
>
>                 Key: SLING-220
>                 URL: https://issues.apache.org/jira/browse/SLING-220
>             Project: Sling
>          Issue Type: Bug
>          Components: Resource
>            Reporter: Tobias Bocanegra
>            Assignee: Felix Meschberger
>   Original Estimate: 0h
>  Remaining Estimate: 0h
>
> request to:  http://localhost:5002//content/test/contacts.navimage.jpg
> java.lang.NullPointerException
>    at org.apache.sling.jcr.resource.internal.JcrResourceResolver.getResourceInternal(JcrResourceResolver.java:360)
>    at org.apache.sling.jcr.resource.internal.JcrResourceResolver.getResource(JcrResourceResolver.java:137)
>    at org.apache.sling.servlet.resolver.SlingServletResolver.getServletAt(SlingServletResolver.java:322)
>    at org.apache.sling.servlet.resolver.SlingServletResolver.resolveServlet(SlingServletResolver.java:145)
>   ...

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


[jira] Updated: (SLING-220) NPE when requesting content with selector

Posted by "Felix Meschberger (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/SLING-220?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Felix Meschberger updated SLING-220:
------------------------------------

    Description: 
When requesting a certain resource (e.g. http://localhost:5002//content/test/contacts.navimage.jpg) a NullPointerException may be thrown by the JcrResourceResolver.getResourceInternal method when trying to go back up the ResourceProviderEntry tree.

Stacktrace:

java.lang.NullPointerException
   at org.apache.sling.jcr.resource.internal.JcrResourceResolver.getResourceInternal(JcrResourceResolver.java:360)
   at org.apache.sling.jcr.resource.internal.JcrResourceResolver.getResource(JcrResourceResolver.java:137)
   at org.apache.sling.servlet.resolver.SlingServletResolver.getServletAt(SlingServletResolver.java:322)
   at org.apache.sling.servlet.resolver.SlingServletResolver.resolveServlet(SlingServletResolver.java:145)
  ...


  was:
request to:  http://localhost:5002//content/test/contacts.navimage.jpg

java.lang.NullPointerException
   at org.apache.sling.jcr.resource.internal.JcrResourceResolver.getResourceInternal(JcrResourceResolver.java:360)
   at org.apache.sling.jcr.resource.internal.JcrResourceResolver.getResource(JcrResourceResolver.java:137)
   at org.apache.sling.servlet.resolver.SlingServletResolver.getServletAt(SlingServletResolver.java:322)
   at org.apache.sling.servlet.resolver.SlingServletResolver.resolveServlet(SlingServletResolver.java:145)
  ...



Updating issue description.

> NPE when requesting content with selector
> -----------------------------------------
>
>                 Key: SLING-220
>                 URL: https://issues.apache.org/jira/browse/SLING-220
>             Project: Sling
>          Issue Type: Bug
>          Components: Resource
>            Reporter: Tobias Bocanegra
>            Assignee: Felix Meschberger
>             Fix For: 2.0.0
>
>   Original Estimate: 0h
>  Remaining Estimate: 0h
>
> When requesting a certain resource (e.g. http://localhost:5002//content/test/contacts.navimage.jpg) a NullPointerException may be thrown by the JcrResourceResolver.getResourceInternal method when trying to go back up the ResourceProviderEntry tree.
> Stacktrace:
> java.lang.NullPointerException
>    at org.apache.sling.jcr.resource.internal.JcrResourceResolver.getResourceInternal(JcrResourceResolver.java:360)
>    at org.apache.sling.jcr.resource.internal.JcrResourceResolver.getResource(JcrResourceResolver.java:137)
>    at org.apache.sling.servlet.resolver.SlingServletResolver.getServletAt(SlingServletResolver.java:322)
>    at org.apache.sling.servlet.resolver.SlingServletResolver.resolveServlet(SlingServletResolver.java:145)
>   ...

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