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 md...@apache.org on 2014/10/22 17:48:59 UTC
svn commit: r1633641 - in /jackrabbit/oak/trunk:
oak-core/src/main/java/org/apache/jackrabbit/oak/query/ast/SelectorImpl.java
oak-jcr/pom.xml
oak-jcr/src/test/java/org/apache/jackrabbit/oak/jcr/ReferencesTest.java
Author: mduerig
Date: Wed Oct 22 15:48:59 2014
New Revision: 1633641
URL: http://svn.apache.org/r1633641
Log:
OAK-2197: Node.getReferences throw IllegalArgumentException
Properly deal with multi valued properties
Modified:
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/query/ast/SelectorImpl.java
jackrabbit/oak/trunk/oak-jcr/pom.xml
jackrabbit/oak/trunk/oak-jcr/src/test/java/org/apache/jackrabbit/oak/jcr/ReferencesTest.java
Modified: jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/query/ast/SelectorImpl.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/query/ast/SelectorImpl.java?rev=1633641&r1=1633640&r2=1633641&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/query/ast/SelectorImpl.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/query/ast/SelectorImpl.java Wed Oct 22 15:48:59 2014
@@ -581,11 +581,18 @@ public class SelectorImpl extends Source
}
return PropertyValues.newString(strings);
}
+ Type<?> baseType = type.isArray() ? type.getBaseType() : type;
@SuppressWarnings("unchecked")
- PropertyBuilder<Object> builder = (PropertyBuilder<Object>) PropertyBuilder.array(type);
+ PropertyBuilder<Object> builder = (PropertyBuilder<Object>) PropertyBuilder.array(baseType);
builder.setName("");
for (PropertyValue v : list) {
- builder.addValue(v.getValue(type));
+ if (type.isArray()) {
+ for (Object value : (Iterable<?>) v.getValue(type)) {
+ builder.addValue(value);
+ }
+ } else {
+ builder.addValue(v.getValue(type));
+ }
}
PropertyState s = builder.getPropertyState();
return PropertyValues.create(s);
Modified: jackrabbit/oak/trunk/oak-jcr/pom.xml
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-jcr/pom.xml?rev=1633641&r1=1633640&r2=1633641&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-jcr/pom.xml (original)
+++ jackrabbit/oak/trunk/oak-jcr/pom.xml Wed Oct 22 15:48:59 2014
@@ -145,8 +145,6 @@
org.apache.jackrabbit.core.query.ShareableNodeTest#testName <!-- OAK-118 -->
org.apache.jackrabbit.core.query.ShareableNodeTest#testPathConstraint <!-- OAK-118 -->
org.apache.jackrabbit.oak.jcr.query.QueryTest#fnNameEncoding <!-- OAK-1000 -->
-
- org.apache.jackrabbit.oak.jcr.ReferencesTest#testMultipleMultiReferences <!-- OAK-2197 -->
</known.issues>
</properties>
Modified: jackrabbit/oak/trunk/oak-jcr/src/test/java/org/apache/jackrabbit/oak/jcr/ReferencesTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-jcr/src/test/java/org/apache/jackrabbit/oak/jcr/ReferencesTest.java?rev=1633641&r1=1633640&r2=1633641&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-jcr/src/test/java/org/apache/jackrabbit/oak/jcr/ReferencesTest.java (original)
+++ jackrabbit/oak/trunk/oak-jcr/src/test/java/org/apache/jackrabbit/oak/jcr/ReferencesTest.java Wed Oct 22 15:48:59 2014
@@ -71,7 +71,6 @@ public class ReferencesTest extends Abst
checkReferences("refs", ref.getWeakReferences(), n.getPath() + "/myref");
}
- // FIXME OAK-2197
public void testMultipleMultiReferences() throws RepositoryException {
Node ref = testRootNode.addNode(nodeName2, testNodeType);
ref.addMixin(mixReferenceable);