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));