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 al...@apache.org on 2014/05/26 14:05:35 UTC
svn commit: r1597571 - in /jackrabbit/oak/branches/1.0: ./
oak-core/src/main/java/org/apache/jackrabbit/oak/query/ast/LowerCaseImpl.java
oak-core/src/test/java/org/apache/jackrabbit/oak/query/index/TraversingIndexQueryTest.java
Author: alexparvulescu
Date: Mon May 26 12:05:34 2014
New Revision: 1597571
URL: http://svn.apache.org/r1597571
Log:
OAK-1829 IllegalStateException while trying retrieve rows information from QueryResult
- merged to 1.0 branch
Modified:
jackrabbit/oak/branches/1.0/ (props changed)
jackrabbit/oak/branches/1.0/oak-core/src/main/java/org/apache/jackrabbit/oak/query/ast/LowerCaseImpl.java
jackrabbit/oak/branches/1.0/oak-core/src/test/java/org/apache/jackrabbit/oak/query/index/TraversingIndexQueryTest.java
Propchange: jackrabbit/oak/branches/1.0/
------------------------------------------------------------------------------
Merged /jackrabbit/oak/trunk:r1597569
Modified: jackrabbit/oak/branches/1.0/oak-core/src/main/java/org/apache/jackrabbit/oak/query/ast/LowerCaseImpl.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/branches/1.0/oak-core/src/main/java/org/apache/jackrabbit/oak/query/ast/LowerCaseImpl.java?rev=1597571&r1=1597570&r2=1597571&view=diff
==============================================================================
--- jackrabbit/oak/branches/1.0/oak-core/src/main/java/org/apache/jackrabbit/oak/query/ast/LowerCaseImpl.java (original)
+++ jackrabbit/oak/branches/1.0/oak-core/src/main/java/org/apache/jackrabbit/oak/query/ast/LowerCaseImpl.java Mon May 26 12:05:34 2014
@@ -27,7 +27,11 @@ import org.apache.jackrabbit.oak.api.Pro
import org.apache.jackrabbit.oak.query.index.FilterImpl;
import org.apache.jackrabbit.oak.spi.query.PropertyValues;
+import com.google.common.base.Function;
+
+import static com.google.common.collect.Iterables.transform;
import static org.apache.jackrabbit.oak.api.Type.STRING;
+import static org.apache.jackrabbit.oak.api.Type.STRINGS;
/**
* The function "lower(..)".
@@ -70,11 +74,20 @@ public class LowerCaseImpl extends Dynam
if (p == null) {
return null;
}
- // TODO what is the expected result of LOWER(x) for an array property?
- // currently throws an exception
- String value = p.getValue(STRING);
// TODO toLowerCase(): document the Turkish locale problem
- return PropertyValues.newString(value.toLowerCase());
+ if (p.getType().isArray()) {
+ Iterable<String> lowerCase = transform(p.getValue(STRINGS),
+ new Function<String, String>() {
+ @Override
+ public String apply(String input) {
+ return input.toLowerCase();
+ }
+ });
+ return PropertyValues.newString(lowerCase);
+ } else {
+ String value = p.getValue(STRING);
+ return PropertyValues.newString(value.toLowerCase());
+ }
}
@Override
Modified: jackrabbit/oak/branches/1.0/oak-core/src/test/java/org/apache/jackrabbit/oak/query/index/TraversingIndexQueryTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/branches/1.0/oak-core/src/test/java/org/apache/jackrabbit/oak/query/index/TraversingIndexQueryTest.java?rev=1597571&r1=1597570&r2=1597571&view=diff
==============================================================================
--- jackrabbit/oak/branches/1.0/oak-core/src/test/java/org/apache/jackrabbit/oak/query/index/TraversingIndexQueryTest.java (original)
+++ jackrabbit/oak/branches/1.0/oak-core/src/test/java/org/apache/jackrabbit/oak/query/index/TraversingIndexQueryTest.java Mon May 26 12:05:34 2014
@@ -349,4 +349,14 @@ public class TraversingIndexQueryTest ex
assertQuery("//*[*/@d < 3]", "xpath", Arrays.asList("/content"));
}
+ @Test
+ public void testLowercaseOnArrays() throws Exception {
+ // OAK-1829
+ Tree content = root.getTree("/").addChild("content");
+ content.setProperty("array", Arrays.asList("X", "Y"), Type.STRINGS);
+ root.commit();
+ assertQuery("//*[jcr:like(fn:lower-case(@array), '%x%')]", "xpath",
+ Arrays.asList("/content"));
+ }
+
}