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 2015/08/25 15:11:53 UTC
svn commit: r1697669 - in /jackrabbit/oak/trunk/oak-core/src:
main/java/org/apache/jackrabbit/oak/plugins/document/DocumentNodeStore.java
test/java/org/apache/jackrabbit/oak/plugins/document/DocumentNodeStoreTest.java
Author: mreutegg
Date: Tue Aug 25 13:11:53 2015
New Revision: 1697669
URL: http://svn.apache.org/r1697669
Log:
OAK-3247: DocumentNodeStore.retrieve() should not throw IllegalArgumentException
Modified:
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/document/DocumentNodeStore.java
jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/document/DocumentNodeStoreTest.java
Modified: jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/document/DocumentNodeStore.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/document/DocumentNodeStore.java?rev=1697669&r1=1697668&r2=1697669&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/document/DocumentNodeStore.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/document/DocumentNodeStore.java Tue Aug 25 13:11:53 2015
@@ -1598,7 +1598,13 @@ public final class DocumentNodeStore
@CheckForNull
@Override
public NodeState retrieve(@Nonnull String checkpoint) {
- Revision r = Revision.fromString(checkpoint);
+ Revision r;
+ try {
+ r = Revision.fromString(checkpoint);
+ } catch (IllegalArgumentException e) {
+ LOG.warn("Malformed checkpoint reference: {}", checkpoint);
+ return null;
+ }
SortedMap<Revision, Info> checkpoints = this.checkpoints.getCheckpoints();
if (checkpoints != null && checkpoints.containsKey(r)) {
return getRoot(r);
Modified: jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/document/DocumentNodeStoreTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/document/DocumentNodeStoreTest.java?rev=1697669&r1=1697668&r2=1697669&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/document/DocumentNodeStoreTest.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/document/DocumentNodeStoreTest.java Tue Aug 25 13:11:53 2015
@@ -43,6 +43,7 @@ import java.util.Map;
import java.util.Set;
import java.util.SortedSet;
import java.util.TreeSet;
+import java.util.UUID;
import java.util.concurrent.ArrayBlockingQueue;
import java.util.concurrent.BlockingQueue;
import java.util.concurrent.ConcurrentSkipListMap;
@@ -1374,6 +1375,18 @@ public class DocumentNodeStoreTest {
}
}
+ @Test
+ public void retrieve() throws Exception {
+ DocumentNodeStore store = new DocumentMK.Builder().getNodeStore();
+ String ref = store.checkpoint(60000);
+ assertNotNull(store.retrieve(ref));
+ ref = Revision.newRevision(1).toString();
+ assertNull(store.retrieve(ref));
+ ref = UUID.randomUUID().toString();
+ assertNull(store.retrieve(ref));
+ store.dispose();
+ }
+
/**
* Utility class that eases creating single cluster id merge conflicts. The two methods:
* <ul>