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 Barth (JIRA)" <ji...@apache.org> on 2018/12/04 09:36:00 UTC

[jira] [Resolved] (SLING-7483) Performance: JackrabbitSession#getItemOrNull still leads to Exception

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

Tobias Barth resolved SLING-7483.
---------------------------------
    Resolution: Not A Bug

> Performance: JackrabbitSession#getItemOrNull still leads to Exception
> ---------------------------------------------------------------------
>
>                 Key: SLING-7483
>                 URL: https://issues.apache.org/jira/browse/SLING-7483
>             Project: Sling
>          Issue Type: Improvement
>          Components: JCR, ResourceResolver
>    Affects Versions: Resource Resolver 1.4.16
>         Environment: Windows 7 64 bit, Java 1.8.131
>            Reporter: Tobias Barth
>            Priority: Major
>
> In SLING-4585, it was planned to make use of the method "JackrabbitSession#getItemOrNull", so that no Exception is thrown when a non existing Resource is looked up. Now, With Sling Resource Resolver 1.4.16 and Jackrabbit OAK 1.4.13, I get the following stacktrace:
> {noformat}
> at java.lang.Throwable.fillInStackTrace(Native Method)
> at java.lang.Throwable.fillInStackTrace(Throwable.java:783)
> - locked <0x7ce7422f> (a javax.jcr.RepositoryException)
> at java.lang.Throwable.<init>(Throwable.java:265)
> at java.lang.Exception.<init>(Exception.java:66)
> at javax.jcr.RepositoryException.<init>(RepositoryException.java:28)
> at org.apache.jackrabbit.oak.jcr.session.SessionContext.getOakPathOrThrow(SessionContext.java:359)
> at org.apache.jackrabbit.oak.jcr.session.SessionImpl.getOakPathOrThrow(SessionImpl.java:149)
> at org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$100(SessionImpl.java:81)
> at org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:228)
> at org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:225)
> at org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:243)
> at org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:225)
> at sun.reflect.GeneratedMethodAccessor35.invoke(Unknown Source)
> at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
> at java.lang.reflect.Method.invoke(Method.java:498)
> at org.apache.sling.jcr.base.SessionProxyHandler$SessionProxyInvocationHandler.invoke(SessionProxyHandler.java:116)
> at com.sun.proxy.$Proxy7.getItemOrNull(Unknown Source)
> at org.apache.sling.jcr.resource.internal.helper.jcr.JcrItemResourceFactory.getItemOrNull(JcrItemResourceFactory.java:184)
> at org.apache.sling.jcr.resource.internal.helper.jcr.JcrItemResourceFactory.createResource(JcrItemResourceFactory.java:96)
> at org.apache.sling.jcr.resource.internal.helper.jcr.JcrResourceProvider.getResource(JcrResourceProvider.java:283)
> at org.apache.sling.resourceresolver.impl.providers.stateful.AuthenticatedResourceProvider.getResource(AuthenticatedResourceProvider.java:135)
> at org.apache.sling.resourceresolver.impl.helper.ResourceResolverControl.getResource(ResourceResolverControl.java:218)
> at org.apache.sling.resourceresolver.impl.ResourceResolverImpl.getAbsoluteResourceInternal(ResourceResolverImpl.java:1067)
> at org.apache.sling.resourceresolver.impl.ResourceResolverImpl.resolveInternal(ResourceResolverImpl.java:899)
> at org.apache.sling.resourceresolver.impl.ResourceResolverImpl.resolveInternal(ResourceResolverImpl.java:371)
> at org.apache.sling.resourceresolver.impl.ResourceResolverImpl.resolve(ResourceResolverImpl.java:267){noformat}
> Seems like the JCR implementation still throws Exceptions on non existing paths. What is going wrong there?



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)