Index: oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/nodetype/NodeTypeDefDiff.java
===================================================================
--- oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/nodetype/NodeTypeDefDiff.java (revision 1801565)
+++ oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/nodetype/NodeTypeDefDiff.java (working copy)
@@ -35,6 +35,8 @@
import java.util.Set;
import java.util.concurrent.atomic.AtomicInteger;
+import org.apache.jackrabbit.JcrConstants;
+
/**
* A NodeTypeDefDiff represents the result of the comparison of
* two node type definitions.
@@ -226,12 +228,25 @@
* @return true if supertypes diff
*/
public int supertypesDiff() {
- Set set1 = new HashSet(Arrays.asList(oldDef.getDeclaredSupertypeNames()));
- Set set2 = new HashSet(Arrays.asList(newDef.getDeclaredSupertypeNames()));
+ Set set1 = getDeclaredSuperTypeNames(oldDef);
+ Set set2 = getDeclaredSuperTypeNames(newDef);
return !set1.equals(set2) ? MAJOR : NONE;
}
/**
+ * Returns the set of declared supertype names without 'nt:base', which is
+ * irrelevant for a diff of supertypes.
+ *
+ * @param def a NodeTypeDefinition.
+ * @return the set of declared supertype names.
+ */
+ private Set getDeclaredSuperTypeNames(NodeTypeDefinition def) {
+ Set names = new HashSet(Arrays.asList(def.getDeclaredSupertypeNames()));
+ names.remove(JcrConstants.NT_BASE);
+ return names;
+ }
+
+ /**
* @return diff type
*/
private int buildPropDefDiffs() {
Index: oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/nodetype/write/NodeTypeRegistryTest.java
===================================================================
--- oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/nodetype/write/NodeTypeRegistryTest.java (revision 1801565)
+++ oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/nodetype/write/NodeTypeRegistryTest.java (working copy)
@@ -75,7 +75,6 @@
import org.apache.jackrabbit.oak.plugins.tree.TreeUtil;
import org.junit.After;
import org.junit.Before;
-import org.junit.Ignore;
import org.junit.Test;
import static org.junit.Assert.assertFalse;
@@ -172,7 +171,6 @@
}
- @Ignore("OAK-6440")
@Test
public void registerNodeType() throws Exception {
registerNodeType(root, "oak6440-1.cnd");