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 al...@apache.org on 2013/02/07 15:17:27 UTC
svn commit: r1443498 -
/jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/index/p2/Property2IndexTest.java
Author: alexparvulescu
Date: Thu Feb 7 14:17:27 2013
New Revision: 1443498
URL: http://svn.apache.org/viewvc?rev=1443498&view=rev
Log:
OAK-613 NPE in Property2IndexDiff#getIndexes(String) when processing a removed node.
- Test for the NPE guard
Modified:
jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/index/p2/Property2IndexTest.java
Modified: jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/index/p2/Property2IndexTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/index/p2/Property2IndexTest.java?rev=1443498&r1=1443497&r2=1443498&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/index/p2/Property2IndexTest.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/index/p2/Property2IndexTest.java Thu Feb 7 14:17:27 2013
@@ -84,7 +84,7 @@ public class Property2IndexTest {
cost = lookup.getCost("foo", null);
assertTrue("cost: " + cost, cost >= MANY);
}
-
+
private static Set<String> find(Property2IndexLookup lookup, String name, String value) {
return Sets.newHashSet(lookup.query(null, name, value == null ? null : PropertyValues.newString(value)));
}
@@ -232,4 +232,34 @@ public class Property2IndexTest {
}
}
+ @Test
+ public void testUniqueByTypeDelete() throws Exception {
+
+ NodeState root = MemoryNodeState.EMPTY_NODE;
+
+ // Add index definition
+ NodeBuilder builder = root.builder();
+ builder.child("oak:index").child("fooIndex")
+ .setProperty("jcr:primaryType", "oak:queryIndexDefinition", Type.NAME)
+ .setProperty("type", "p2")
+ .setProperty("unique", "true")
+ .setProperty("propertyNames", Arrays.asList("foo"), Type.STRINGS)
+ .setProperty(Property2IndexDiff.declaringNodeTypes, Arrays.asList("typeFoo"), Type.STRINGS);
+ builder.child("a")
+ .setProperty("jcr:primaryType", "typeFoo", Type.NAME)
+ .setProperty("foo", "abc");
+ builder.child("b")
+ .setProperty("jcr:primaryType", "typeBar", Type.NAME)
+ .setProperty("foo", "abc");
+ NodeState before = builder.getNodeState();
+ builder = before.builder();
+ builder.removeNode("b");
+ NodeState after = builder.getNodeState();
+
+ IndexHook p = new Property2IndexDiff(builder);
+ after.compareAgainstBaseState(before, p);
+ p.apply();
+ p.close();
+ }
+
}