[
https://issues.apache.org/jira/browse/SLING-159?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Felix Meschberger closed SLING-159.
-----------------------------------
Resolution: Fixed
Fix Version/s: 2.0.0
Assignee: Felix Meschberger
Closing this issue for now, as it seems that JCR-1328 will not be fixed in the
expected direction in the short time frame. It even seems, that throwing the
exception for illegal names is going to be standardized.
> JcrResourceResolverFactoryImpl fails if suffix contains illegal jcr character
> -----------------------------------------------------------------------------
>
> Key: SLING-159
> URL: https://issues.apache.org/jira/browse/SLING-159
> Project: Sling
> Issue Type: Bug
> Components: Resource
> Reporter: Tobias Bocanegra
> Assignee: Felix Meschberger
> Fix For: 2.0.0
>
>
> eg request to /content/test.html/* throws RepositoryException because the *
> is not
> a valid jcr name character:
> javax.jcr.RepositoryException: invalid path:/content/test.html/*:
> '/content/test.html/*' is not a valid path. '*' not a valid name character.:
> '/content/test.html/*' is not a valid path. '*' not a valid name character.
> at com.day.crx.core.SessionImpl.itemExists(SessionImpl.java:808)
> at
> org.apache.sling.jcr.api.internal.PooledSession.itemExists(PooledSession.java:235)
> at
> org.apache.sling.jcr.resource.internal.JcrResourceResolverFactoryImpl.itemReallyExists(JcrResourceResolverFactoryImpl.java:316)
> ...
> Suggest to catch the exception and return false in this case:
> Index:
> src/main/java/org/apache/sling/jcr/resource/internal/JcrResourceResolverFactoryImpl.java
> ===================================================================
> ---
> src/main/java/org/apache/sling/jcr/resource/internal/JcrResourceResolverFactoryImpl.java
> (revision 612138)
> +++
> src/main/java/org/apache/sling/jcr/resource/internal/JcrResourceResolverFactoryImpl.java
> (working copy)
> @@ -313,7 +313,11 @@
> // assume this session has more access rights than the client Session
> String workSpace = clientSession.getWorkspace().getName();
> Session adminSession = getAdminSession(workSpace);
> - return adminSession.itemExists(path);
> + try {
> + return adminSession.itemExists(path);
> + } catch (RepositoryException e) {
> + return false;
> + }
> }
> (another solution would be to explicitly check the path for illegal
> characters prior to call itemExists. this way it can be distinguished from
> other repository exceptions.)
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.