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 mr...@apache.org on 2013/09/04 15:11:21 UTC

svn commit: r1520006 - in /jackrabbit/oak/trunk/oak-jcr/src: main/java/org/apache/jackrabbit/oak/jcr/query/QueryResultImpl.java test/java/org/apache/jackrabbit/oak/jcr/version/VersionTest.java

Author: mreutegg
Date: Wed Sep  4 13:11:21 2013
New Revision: 1520006

URL: http://svn.apache.org/r1520006
Log:
OAK-996: Incorrect types for version result nodes

Modified:
    jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/query/QueryResultImpl.java
    jackrabbit/oak/trunk/oak-jcr/src/test/java/org/apache/jackrabbit/oak/jcr/version/VersionTest.java

Modified: jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/query/QueryResultImpl.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/query/QueryResultImpl.java?rev=1520006&r1=1520005&r2=1520006&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/query/QueryResultImpl.java (original)
+++ jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/query/QueryResultImpl.java Wed Sep  4 13:11:21 2013
@@ -39,12 +39,16 @@ import org.apache.jackrabbit.oak.jcr.Ses
 import org.apache.jackrabbit.oak.jcr.delegate.NodeDelegate;
 import org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate;
 import org.apache.jackrabbit.oak.plugins.value.ValueFactoryImpl;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 /**
  * The implementation of the corresponding JCR interface.
  */
 public class QueryResultImpl implements QueryResult {
-    
+
+    private static final Logger log = LoggerFactory.getLogger(QueryResultImpl.class);
+
     /**
      * The minimum number of rows / nodes to pre-fetch.
      */ 
@@ -157,12 +161,12 @@ public class QueryResultImpl implements 
     }
 
     @CheckForNull
-    NodeImpl<NodeDelegate> getNode(String path) {
+    NodeImpl<? extends NodeDelegate> getNode(String path) throws RepositoryException {
         if (path == null) {
             return null;
         }
         NodeDelegate d = sessionDelegate.getNode(path);
-        return d == null ? null : new NodeImpl<NodeDelegate>(d, sessionContext);
+        return d == null ? null : NodeImpl.createNode(d, sessionContext);
     }
 
     String getLocalPath(String path) {
@@ -184,10 +188,10 @@ public class QueryResultImpl implements 
         }
         // use the last selector
         final String selectorName = selectorNames[selectorNames.length - 1];
-        Iterator<NodeImpl<NodeDelegate>> nodeIterator = new Iterator<NodeImpl<NodeDelegate>>() {
+        Iterator<NodeImpl<? extends NodeDelegate>> nodeIterator = new Iterator<NodeImpl<? extends NodeDelegate>>() {
 
             private final Iterator<? extends ResultRow> it = result.getRows().iterator();
-            private NodeImpl<NodeDelegate> current;
+            private NodeImpl<? extends NodeDelegate> current;
 
             {
                 fetch();
@@ -199,8 +203,12 @@ public class QueryResultImpl implements 
                     ResultRow r = it.next();
                     String path = r.getPath(selectorName);
                     if (includeRow(path)) {
-                        current = getNode(getLocalPath(path));
-                        break;
+                        try {
+                            current = getNode(getLocalPath(path));
+                            break;
+                        } catch (RepositoryException e) {
+                            log.warn("Unable to fetch result node for path " + path, e);
+                        }
                     }
                 }
             }
@@ -211,11 +219,11 @@ public class QueryResultImpl implements 
             }
 
             @Override
-            public NodeImpl<NodeDelegate> next() {
+            public NodeImpl<? extends NodeDelegate> next() {
                 if (current == null) {
                     throw new NoSuchElementException();
                 }
-                NodeImpl<NodeDelegate> n = current;
+                NodeImpl<? extends NodeDelegate> n = current;
                 fetch();
                 return n;
             }
@@ -226,7 +234,7 @@ public class QueryResultImpl implements 
             }
 
         };
-        final PrefetchIterator<NodeImpl<NodeDelegate>> prefIt = new  PrefetchIterator<NodeImpl<NodeDelegate>>(
+        final PrefetchIterator<NodeImpl<? extends NodeDelegate>> prefIt = new  PrefetchIterator<NodeImpl<? extends NodeDelegate>>(
                 nodeIterator, 
                 PREFETCH_MIN, PREFETCH_TIMEOUT, PREFETCH_MAX, 
                 result.getSize());

Modified: jackrabbit/oak/trunk/oak-jcr/src/test/java/org/apache/jackrabbit/oak/jcr/version/VersionTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-jcr/src/test/java/org/apache/jackrabbit/oak/jcr/version/VersionTest.java?rev=1520006&r1=1520005&r2=1520006&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-jcr/src/test/java/org/apache/jackrabbit/oak/jcr/version/VersionTest.java (original)
+++ jackrabbit/oak/trunk/oak-jcr/src/test/java/org/apache/jackrabbit/oak/jcr/version/VersionTest.java Wed Sep  4 13:11:21 2013
@@ -56,9 +56,6 @@ public class VersionTest extends Abstrac
 
     public void testVersionFromQuery()
             throws RepositoryException, NotExecutableException {
-        if (true) {
-            throw new NotExecutableException("OAK-996");
-        }
         Node n = testRootNode.addNode(nodeName1, testNodeType);
         n.addMixin(mixVersionable);
         superuser.save();