Index: src/main/java/org/apache/jackrabbit/test/api/observation/AddEventListenerTest.java =================================================================== --- src/main/java/org/apache/jackrabbit/test/api/observation/AddEventListenerTest.java (revision 508386) +++ src/main/java/org/apache/jackrabbit/test/api/observation/AddEventListenerTest.java (working copy) @@ -191,6 +191,8 @@ Node n = testRootNode.addNode(nodeName, nodeType); if (!n.isNodeType(mixReferenceable)) { n.addMixin(mixReferenceable); + // some implementations may require a save after addMixin() + testRootNode.save(); } return n; } Index: src/main/java/org/apache/jackrabbit/test/api/SetPropertyAssumeTypeTest.java =================================================================== --- src/main/java/org/apache/jackrabbit/test/api/SetPropertyAssumeTypeTest.java (revision 508386) +++ src/main/java/org/apache/jackrabbit/test/api/SetPropertyAssumeTypeTest.java (working copy) @@ -352,6 +352,8 @@ Node referenceableNode = testRootNode.addNode(nodeName2); referenceableNode.addMixin(mixReferenceable); + // some implementations may require a save after addMixin() + testRootNode.save(); Property prop = testNode.setProperty(testPropName, referenceableNode); assertEquals("setProperty(String, Value) of a property of type undefined " + Index: src/main/java/org/apache/jackrabbit/test/api/SetValueConstraintViolationExceptionTest.java =================================================================== --- src/main/java/org/apache/jackrabbit/test/api/SetValueConstraintViolationExceptionTest.java (revision 508386) +++ src/main/java/org/apache/jackrabbit/test/api/SetValueConstraintViolationExceptionTest.java (working copy) @@ -448,6 +448,9 @@ nodeNotSatisfied = testRootNode.addNode(nodeName4, nodeTypeNotSatisfied); nodeNotSatisfied.addMixin(mixReferenceable); + // some implementations may require a save after addMixin() + testRootNode.save(); + prop = node.setProperty(propDef.getName(), nodeSatisfied); testRootNode.save(); } catch (ConstraintViolationException e) { @@ -812,12 +815,15 @@ // create a referenceable node satisfying the constraint nodeSatisfied = testRootNode.addNode(nodeName3, nodeTypeSatisfied); nodeSatisfied.addMixin(mixReferenceable); - Value valueSatisfied = superuser.getValueFactory().createValue(nodeSatisfied); // create a referenceable node not satisfying the constraint nodeNotSatisfied = testRootNode.addNode(nodeName4, nodeTypeNotSatisfied); nodeNotSatisfied.addMixin(mixReferenceable); + + // some implementations may require a save after addMixin() + testRootNode.save(); + Value valueSatisfied = superuser.getValueFactory().createValue(nodeSatisfied); prop = node.setProperty(propDef.getName(), new Value[]{valueSatisfied}); testRootNode.save(); } catch (ConstraintViolationException e) { Index: src/main/java/org/apache/jackrabbit/test/api/SetValueValueFormatExceptionTest.java =================================================================== --- src/main/java/org/apache/jackrabbit/test/api/SetValueValueFormatExceptionTest.java (revision 508386) +++ src/main/java/org/apache/jackrabbit/test/api/SetValueValueFormatExceptionTest.java (working copy) @@ -212,6 +212,8 @@ try { Node referenceableNode = testRootNode.addNode(nodeName3); referenceableNode.addMixin(mixReferenceable); + // some implementations may require a save after addMixin() + testRootNode.save(); booleanProperty.setValue(referenceableNode); fail("Property.setValue(Node) must throw a ValueFormatException " + @@ -261,6 +263,8 @@ throw new NotExecutableException(testNodeType + " does not support adding of mix:referenceable"); } else { n.addMixin(mixReferenceable); + // some implementations may require a save after addMixin() + testRootNode.save(); } } Index: src/main/java/org/apache/jackrabbit/test/api/TreeComparator.java =================================================================== --- src/main/java/org/apache/jackrabbit/test/api/TreeComparator.java (revision 508386) +++ src/main/java/org/apache/jackrabbit/test/api/TreeComparator.java (working copy) @@ -234,7 +234,10 @@ // the UUID during serialization. if (!referenceable.isNodeType(mixReferenceable)) { referenceable.addMixin(mixReferenceable); + // some implementations may require a save after addMixin() + session.save(); } + pt.setProperty(sc.referenceTestProperty, referenceable); // Create a boolean property on the root node, so I can test noRecurse and skipBinary at the same time