[
https://issues.apache.org/jira/browse/JCR-819?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Serge Slipchenko updated JCR-819:
---------------------------------
Description:
Jackrabbit throws MalformedPathException for all node names containing
non-ascii letters.
I think thas happens because regular expression [^ /:\\[\\]*'\"|] has a little
misleading behavior.
It works like "all ascii symbols except ...", but not like "all symbols except
..."
Following patches resolve this issue
--- NameFormat.java 2007-02-05 15:39:09.888750000 +0200
+++ NameFormat.java 2006-08-07 17:22:40.000000000 +0300 (working copy)
@@ -40,7 +40,7 @@
*/
private static final Pattern NAME_PATTERN = Pattern.compile(
"(([^ /:\\[\\]*'\"|](?:[^/:\\[\\]*'\"|]*[^ /:\\[\\]*'\"|])?):)?"
- + "([^ /:\\[\\]*'\"|](?:[^/:\\[\\]*'\"|]*[^ /:\\[\\]*'\"|])?)");
+ + "((?:[^
/:\\[\\]*'\"|]|\\p{L})(?:(?:[^/:\\[\\]*'\"|]|\\p{L})*(?:[^
/:\\[\\]*'\"|]|\\p{L}))?)");
/**
* Matcher instance as thread-local.
--- PathFormat.java 2007-02-05 14:41:24.451250000 +0200
+++ PathFormat.java 2006-07-21 11:50:16.000000000 +0300 (working copy)
@@ -45,7 +45,7 @@
Pattern.compile("(\\.)|"
+ "(\\.\\.)|"
+ "(([^ /:\\[\\]*'\"|](?:[^/:\\[\\]*'\"|]*[^ /:\\[\\]*'\"|])?):)?"
- + "([^ /:\\[\\]*'\"|](?:[^/:\\[\\]*'\"|]*[^ /:\\[\\]*'\"|])?)"
+ + "((?:[^
/:\\[\\]*'\"|]|\\p{L})(?:(?:[^/:\\[\\]*'\"|]|\\p{L})*(?:[^
/:\\[\\]*'\"|]|\\p{L}))?)"
+ "(\\[([1-9]\\d*)\\])?");
/**
was:
Jackrabbit throws MalformedPathException for all node names containing
non-ascii letters.
I think thas happens because regular expression [^ /:\\[\\]*'\"|] has a little
misleading behavior.
It works like "all ascii symbols except ...", but not like "all symbols except
..."
> NameFormat and PathFormat doesn't support Unicode names
> -------------------------------------------------------
>
> Key: JCR-819
> URL: https://issues.apache.org/jira/browse/JCR-819
> Project: Jackrabbit
> Issue Type: Bug
> Components: core
> Affects Versions: 1.1, 1.1.1, 1.2.1, 1.2.2, 1.2.3
> Environment: Windows 2000
> j2dk-1.4.2-03
> Reporter: Serge Slipchenko
> Priority: Minor
> Attachments: pathformat.patch
>
>
> Jackrabbit throws MalformedPathException for all node names containing
> non-ascii letters.
> I think thas happens because regular expression [^ /:\\[\\]*'\"|] has a
> little misleading behavior.
> It works like "all ascii symbols except ...", but not like "all symbols
> except ..."
> Following patches resolve this issue
> --- NameFormat.java 2007-02-05 15:39:09.888750000 +0200
> +++ NameFormat.java 2006-08-07 17:22:40.000000000 +0300 (working copy)
> @@ -40,7 +40,7 @@
> */
> private static final Pattern NAME_PATTERN = Pattern.compile(
> "(([^ /:\\[\\]*'\"|](?:[^/:\\[\\]*'\"|]*[^ /:\\[\\]*'\"|])?):)?"
> - + "([^ /:\\[\\]*'\"|](?:[^/:\\[\\]*'\"|]*[^ /:\\[\\]*'\"|])?)");
> + + "((?:[^
> /:\\[\\]*'\"|]|\\p{L})(?:(?:[^/:\\[\\]*'\"|]|\\p{L})*(?:[^
> /:\\[\\]*'\"|]|\\p{L}))?)");
>
> /**
> * Matcher instance as thread-local.
> --- PathFormat.java 2007-02-05 14:41:24.451250000 +0200
> +++ PathFormat.java 2006-07-21 11:50:16.000000000 +0300 (working copy)
> @@ -45,7 +45,7 @@
> Pattern.compile("(\\.)|"
> + "(\\.\\.)|"
> + "(([^ /:\\[\\]*'\"|](?:[^/:\\[\\]*'\"|]*[^
> /:\\[\\]*'\"|])?):)?"
> - + "([^ /:\\[\\]*'\"|](?:[^/:\\[\\]*'\"|]*[^ /:\\[\\]*'\"|])?)"
> + + "((?:[^
> /:\\[\\]*'\"|]|\\p{L})(?:(?:[^/:\\[\\]*'\"|]|\\p{L})*(?:[^
> /:\\[\\]*'\"|]|\\p{L}))?)"
> + "(\\[([1-9]\\d*)\\])?");
>
> /**
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.