Author: jukka
Date: Thu Mar 27 19:40:52 2014
New Revision: 1582450
URL: http://svn.apache.org/r1582450
Log:
OAK-1624: Item names with trailing spaces should not be allowed
Prevent names with leading or trailing whitespace
Modified:
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/name/Namespaces.java
jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/name/NameValidatorTest.java
Modified:
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/name/Namespaces.java
URL:
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/name/Namespaces.java?rev=1582450&r1=1582449&r2=1582450&view=diff
==============================================================================
---
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/name/Namespaces.java
(original)
+++
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/name/Namespaces.java
Thu Mar 27 19:40:52 2014
@@ -244,8 +244,12 @@ public class Namespaces implements Names
for (int i = 0; i < local.length(); i++) {
char ch = local.charAt(i);
- if ("/:[]|*".indexOf(ch) != -1) { // TODO: XMLChar check
- return false;
+ if (i == 0 && Character.isWhitespace(ch)) {
+ return false; // leading whitespace
+ } else if (i == local.length() - 1 && Character.isWhitespace(ch)) {
+ return false; // trailing whitespace
+ } else if ("/:[]|*".indexOf(ch) != -1) { // TODO: XMLChar check
+ return false; // invalid name character
}
}
Modified:
jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/name/NameValidatorTest.java
URL:
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/name/NameValidatorTest.java?rev=1582450&r1=1582449&r2=1582450&view=diff
==============================================================================
---
jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/name/NameValidatorTest.java
(original)
+++
jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/name/NameValidatorTest.java
Thu Mar 27 19:40:52 2014
@@ -49,6 +49,21 @@ public class NameValidatorTest {
validator.childNodeAdded("invalid:name", EMPTY_NODE);
}
+ @Test(expected = CommitFailedException.class)
+ public void testTrailingWhitespace() throws CommitFailedException {
+ validator.childNodeAdded("name ", EMPTY_NODE);
+ }
+
+ @Test(expected = CommitFailedException.class)
+ public void testLeadingWhitespace() throws CommitFailedException {
+ validator.childNodeAdded(" name", EMPTY_NODE);
+ }
+
+ @Test(expected = CommitFailedException.class)
+ public void testOnlyWhitespace() throws CommitFailedException {
+ validator.childNodeAdded(" ", EMPTY_NODE);
+ }
+
@Test
public void testValidPrefix() throws CommitFailedException {
validator.childNodeAdded("valid:name", EMPTY_NODE);