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 re...@apache.org on 2014/02/19 13:16:00 UTC

svn commit: r1569704 - /jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/delegate/VersionHistoryDelegate.java

Author: reschke
Date: Wed Feb 19 12:15:59 2014
New Revision: 1569704

URL: http://svn.apache.org/r1569704
Log:
OAK-1335 - fix getting the version history (code assumed that creation time can be used as key in a map)

Modified:
    jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/delegate/VersionHistoryDelegate.java

Modified: jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/delegate/VersionHistoryDelegate.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/delegate/VersionHistoryDelegate.java?rev=1569704&r1=1569703&r2=1569704&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/delegate/VersionHistoryDelegate.java (original)
+++ jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/delegate/VersionHistoryDelegate.java Wed Feb 19 12:15:59 2014
@@ -22,10 +22,10 @@ import static org.apache.jackrabbit.JcrC
 import java.util.ArrayDeque;
 import java.util.ArrayList;
 import java.util.Deque;
+import java.util.HashSet;
 import java.util.Iterator;
 import java.util.List;
-import java.util.SortedMap;
-import java.util.TreeMap;
+import java.util.Set;
 
 import javax.annotation.Nonnull;
 import javax.jcr.InvalidItemStateException;
@@ -33,15 +33,14 @@ import javax.jcr.RepositoryException;
 import javax.jcr.version.LabelExistsVersionException;
 import javax.jcr.version.VersionException;
 
-import com.google.common.base.Function;
-import com.google.common.collect.Iterators;
-
 import org.apache.jackrabbit.JcrConstants;
 import org.apache.jackrabbit.oak.api.PropertyState;
 import org.apache.jackrabbit.oak.api.Tree;
 import org.apache.jackrabbit.oak.api.Type;
 import org.apache.jackrabbit.oak.plugins.version.VersionConstants;
-import org.apache.jackrabbit.util.ISO8601;
+
+import com.google.common.base.Function;
+import com.google.common.collect.Iterators;
 
 /**
  * {@code VersionHistoryDelegate}...
@@ -131,22 +130,17 @@ public class VersionHistoryDelegate exte
     }
 
     @Nonnull
-    public Iterator<VersionDelegate> getAllVersions()
-            throws RepositoryException {
-        SortedMap<Long, String> versions = new TreeMap<Long, String>();
-        for (Iterator<NodeDelegate> it = getChildren(); it.hasNext(); ) {
+    public Iterator<VersionDelegate> getAllVersions() throws RepositoryException {
+        Set<String> versions = new HashSet<String>();
+        for (Iterator<NodeDelegate> it = getChildren(); it.hasNext();) {
             NodeDelegate n = it.next();
             String primaryType = n.getProperty(JcrConstants.JCR_PRIMARYTYPE).getString();
             if (primaryType.equals(VersionConstants.NT_VERSION)) {
-                PropertyDelegate created = n.getPropertyOrNull(JcrConstants.JCR_CREATED);
-                if (created != null) {
-                    Long cal = ISO8601.parse(created.getDate()).getTimeInMillis();
-                    versions.put(cal, n.getName());
-                }
+                versions.add(n.getName());
             }
         }
         final Tree thisTree = getTree();
-        return Iterators.transform(versions.values().iterator(), new Function<String, VersionDelegate>() {
+        return Iterators.transform(versions.iterator(), new Function<String, VersionDelegate>() {
             @Override
             public VersionDelegate apply(String name) {
                 return VersionDelegate.create(sessionDelegate, thisTree.getChild(name));