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 th...@apache.org on 2014/04/23 10:11:57 UTC
svn commit: r1589352 - in /jackrabbit/oak/branches/1.0:
oak-core/src/main/java/org/apache/jackrabbit/oak/query/ast/AstElement.java
oak-jcr/src/test/java/org/apache/jackrabbit/oak/jcr/query/QueryTest.java
Author: thomasm
Date: Wed Apr 23 08:11:57 2014
New Revision: 1589352
URL: http://svn.apache.org/r1589352
Log:
OAK-1755 Search fails if the property to be searched on is of different types in different nodes
Modified:
jackrabbit/oak/branches/1.0/oak-core/src/main/java/org/apache/jackrabbit/oak/query/ast/AstElement.java
jackrabbit/oak/branches/1.0/oak-jcr/src/test/java/org/apache/jackrabbit/oak/jcr/query/QueryTest.java
Modified: jackrabbit/oak/branches/1.0/oak-core/src/main/java/org/apache/jackrabbit/oak/query/ast/AstElement.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/branches/1.0/oak-core/src/main/java/org/apache/jackrabbit/oak/query/ast/AstElement.java?rev=1589352&r1=1589351&r2=1589352&view=diff
==============================================================================
--- jackrabbit/oak/branches/1.0/oak-core/src/main/java/org/apache/jackrabbit/oak/query/ast/AstElement.java (original)
+++ jackrabbit/oak/branches/1.0/oak-core/src/main/java/org/apache/jackrabbit/oak/query/ast/AstElement.java Wed Apr 23 08:11:57 2014
@@ -124,7 +124,12 @@ abstract class AstElement {
if (v.getType().tag() == type) {
return v;
}
- return PropertyValues.convert(v, type, query.getNamePathMapper());
+ try {
+ return PropertyValues.convert(v, type, query.getNamePathMapper());
+ } catch (IllegalArgumentException e) {
+ // not possible to convert
+ return v;
+ }
}
/**
Modified: jackrabbit/oak/branches/1.0/oak-jcr/src/test/java/org/apache/jackrabbit/oak/jcr/query/QueryTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/branches/1.0/oak-jcr/src/test/java/org/apache/jackrabbit/oak/jcr/query/QueryTest.java?rev=1589352&r1=1589351&r2=1589352&view=diff
==============================================================================
--- jackrabbit/oak/branches/1.0/oak-jcr/src/test/java/org/apache/jackrabbit/oak/jcr/query/QueryTest.java (original)
+++ jackrabbit/oak/branches/1.0/oak-jcr/src/test/java/org/apache/jackrabbit/oak/jcr/query/QueryTest.java Wed Apr 23 08:11:57 2014
@@ -34,6 +34,7 @@ import java.util.Set;
import javax.jcr.Node;
import javax.jcr.NodeIterator;
+import javax.jcr.PropertyType;
import javax.jcr.RepositoryException;
import javax.jcr.Session;
import javax.jcr.ValueFactory;
@@ -62,6 +63,23 @@ public class QueryTest extends AbstractR
}
@Test
+ public void date() throws Exception {
+ Session session = getAdminSession();
+ Node t1 = session.getRootNode().addNode("t1");
+ t1.setProperty("x", "22.06.07");
+ Node t2 = session.getRootNode().addNode("t2");
+ t2.setProperty("x", "2007-06-22T01:02:03.000Z", PropertyType.DATE);
+ session.save();
+
+ String query = "//*[x='a' or x='b']";
+ QueryResult r = session.getWorkspace().
+ getQueryManager().createQuery(
+ query, "xpath").execute();
+ NodeIterator it = r.getNodes();
+ assertFalse(it.hasNext());
+ }
+
+ @Test
public void unicode() throws Exception {
Session session = getAdminSession();
Node content = session.getRootNode().addNode("test");