You are viewing a plain text version of this content. The canonical link for it is here.
Posted to oak-commits@jackrabbit.apache.org by ju...@apache.org on 2013/04/03 14:06:25 UTC
svn commit: r1463951 -
/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/namepath/LocalNameMapper.java
Author: jukka
Date: Wed Apr 3 12:06:25 2013
New Revision: 1463951
URL: http://svn.apache.org/r1463951
Log:
OAK-509: Item names starting with '{X}' cause RepositoryException
Make the assertion use the correct rule for expanded names. Thanks, Michi!
Modified:
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/namepath/LocalNameMapper.java
Modified: jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/namepath/LocalNameMapper.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/namepath/LocalNameMapper.java?rev=1463951&r1=1463950&r2=1463951&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/namepath/LocalNameMapper.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/namepath/LocalNameMapper.java Wed Apr 3 12:06:25 2013
@@ -28,11 +28,20 @@ import javax.annotation.CheckForNull;
*/
public abstract class LocalNameMapper extends GlobalNameMapper {
+ private static boolean isExpandedName(String name) {
+ if (name.startsWith("{")) {
+ int brace = name.indexOf('}', 1);
+ return brace != -1 && name.substring(1, brace).indexOf(':') != -1;
+ } else {
+ return false;
+ }
+ }
+
@Override @CheckForNull
public String getJcrName(String oakName) {
checkNotNull(oakName);
checkArgument(!oakName.startsWith(":")); // hidden name
- checkArgument(!oakName.startsWith("{")); // expanded name
+ checkArgument(isExpandedName(oakName)); // expanded name
if (hasSessionLocalMappings()) {
int colon = oakName.indexOf(':');