Author: thomasm
Date: Wed Dec  7 15:26:47 2016
New Revision: 1773097

URL: http://svn.apache.org/viewvc?rev=1773097&view=rev
Log:
OAK-5063 Failure in QueryTest.nodeType

Modified:
    
jackrabbit/oak/trunk/oak-jcr/src/test/java/org/apache/jackrabbit/oak/jcr/query/QueryTest.java

Modified: 
jackrabbit/oak/trunk/oak-jcr/src/test/java/org/apache/jackrabbit/oak/jcr/query/QueryTest.java
URL: 
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-jcr/src/test/java/org/apache/jackrabbit/oak/jcr/query/QueryTest.java?rev=1773097&r1=1773096&r2=1773097&view=diff
==============================================================================
--- 
jackrabbit/oak/trunk/oak-jcr/src/test/java/org/apache/jackrabbit/oak/jcr/query/QueryTest.java
 (original)
+++ 
jackrabbit/oak/trunk/oak-jcr/src/test/java/org/apache/jackrabbit/oak/jcr/query/QueryTest.java
 Wed Dec  7 15:26:47 2016
@@ -842,9 +842,24 @@ public class QueryTest extends AbstractR
 
         assertPlan(getPlan(session, xpath), "[rep:User] as [a] /* traverse ");
 
-        xpath = "/jcr:root//element(*,oak:Unstructured)[xyz/@jcr:primaryType]";
-        assertPlan(getPlan(session, xpath), "[oak:Unstructured] as [a] /* 
nodeType ");
+        xpath = "/jcr:root//element(*,oak:Unstructured)[xyz/@jcr:primaryType] 
option(traversal fail)";
+        // the plan might still use traversal, so we can't just check the plan;
+        // but using "option(traversal fail)" we have ensured that there is an 
index
+        // (the nodetype index) that can serve this query
+        getPlan(session, xpath);
 
+        // and without the node type index, it is supposed to fail
+        Node nodeTypeIndex = 
session.getRootNode().getNode("oak:index").getNode("nodetype");
+        nodeTypeIndex.setProperty("declaringNodeTypes", new String[] {
+            }, PropertyType.NAME);
+        session.save();
+        try {
+            getPlan(session, xpath);
+            fail();
+        } catch (InvalidQueryException e) {
+            // expected
+        }
+        
         session.logout();
     }
 


Reply via email to