You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jackrabbit.apache.org by un...@apache.org on 2012/06/29 16:17:00 UTC
svn commit: r1355402 -
/jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/persistence/mem/InMemBundlePersistenceManager.java
Author: unico
Date: Fri Jun 29 14:16:59 2012
New Revision: 1355402
URL: http://svn.apache.org/viewvc?rev=1355402&view=rev
Log:
JCR-3367 implement InMemBundlePM#getAllNodeIds correctly
Modified:
jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/persistence/mem/InMemBundlePersistenceManager.java
Modified: jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/persistence/mem/InMemBundlePersistenceManager.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/persistence/mem/InMemBundlePersistenceManager.java?rev=1355402&r1=1355401&r2=1355402&view=diff
==============================================================================
--- jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/persistence/mem/InMemBundlePersistenceManager.java (original)
+++ jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/persistence/mem/InMemBundlePersistenceManager.java Fri Jun 29 14:16:59 2012
@@ -384,7 +384,7 @@ public class InMemBundlePersistenceManag
}
super.init(context);
// initialize mem stores
- bundleStore = new HashMap<NodeId, byte[]>(initialCapacity, loadFactor);
+ bundleStore = new LinkedHashMap<NodeId, byte[]>(initialCapacity, loadFactor);
refsStore = new HashMap<NodeId, byte[]>(initialCapacity, loadFactor);
// Choose a FileSystem for the BlobStore based on whether data is persistent or not
@@ -494,9 +494,19 @@ public class InMemBundlePersistenceManag
* {@inheritDoc}
*/
public List<NodeId> getAllNodeIds(NodeId after, int maxCount) throws ItemStateException, RepositoryException {
- // ignore after and count parameters.
- List<NodeId> result = new ArrayList<NodeId>();
- result.addAll(bundleStore.keySet());
+ final List<NodeId> result = new ArrayList<NodeId>();
+ boolean add = after == null;
+ int count = 0;
+ for (NodeId nodeId : bundleStore.keySet()) {
+ if (add) {
+ result.add(nodeId);
+ if (++count == maxCount) {
+ break;
+ }
+ } else {
+ add = nodeId.equals(after);
+ }
+ }
return result;
}