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
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.