Index: jackrabbit-core/src/main/java/org/apache/jackrabbit/core/NodeImpl.java =================================================================== --- jackrabbit-core/src/main/java/org/apache/jackrabbit/core/NodeImpl.java (revision 597100) +++ jackrabbit-core/src/main/java/org/apache/jackrabbit/core/NodeImpl.java (working copy) @@ -3912,7 +3912,7 @@ PropertyState prop = props[i]; propNames.add(prop.getName()); if (prop.isMultiValued()) { - internalSetProperty(props[i].getName(), prop.getValues()); + internalSetProperty(props[i].getName(), prop.getValues(), prop.getType()); } else { internalSetProperty(props[i].getName(), prop.getValues()[0]); } Index: jackrabbit-core/src/test/resources/org/apache/jackrabbit/core/integration/test-nodetypes.xml =================================================================== --- jackrabbit-core/src/test/resources/org/apache/jackrabbit/core/integration/test-nodetypes.xml (revision 597100) +++ jackrabbit-core/src/test/resources/org/apache/jackrabbit/core/integration/test-nodetypes.xml (working copy) @@ -28,6 +28,7 @@ + nt:base Index: jackrabbit-jcr-tests/src/main/java/org/apache/jackrabbit/test/api/version/RestoreTest.java =================================================================== --- jackrabbit-jcr-tests/src/main/java/org/apache/jackrabbit/test/api/version/RestoreTest.java (revision 597100) +++ jackrabbit-jcr-tests/src/main/java/org/apache/jackrabbit/test/api/version/RestoreTest.java (working copy) @@ -16,20 +16,23 @@ */ package org.apache.jackrabbit.test.api.version; -import org.apache.jackrabbit.test.NotExecutableException; - +import javax.jcr.InvalidItemStateException; +import javax.jcr.ItemExistsException; +import javax.jcr.Node; +import javax.jcr.NodeIterator; +import javax.jcr.Property; +import javax.jcr.PropertyType; +import javax.jcr.RepositoryException; +import javax.jcr.UnsupportedRepositoryOperationException; +import javax.jcr.Value; import javax.jcr.nodetype.NodeDefinition; +import javax.jcr.version.OnParentVersionAction; import javax.jcr.version.Version; import javax.jcr.version.VersionException; -import javax.jcr.version.OnParentVersionAction; import javax.jcr.version.VersionIterator; -import javax.jcr.Node; -import javax.jcr.RepositoryException; -import javax.jcr.InvalidItemStateException; -import javax.jcr.UnsupportedRepositoryOperationException; -import javax.jcr.ItemExistsException; -import javax.jcr.NodeIterator; +import org.apache.jackrabbit.test.NotExecutableException; + /** * RestoreTest covers tests related to the restore methods available * on {@link javax.jcr.Node}: @@ -451,4 +454,25 @@ assertEquals("Invalid child node ordering", orderOk, order); } + /** + * Test the child ordering of restored nodes. + * @throws RepositoryException + */ + public void testRestoreMultivalueProperty() throws RepositoryException { + // test:restoreMultivalueProp - node is multivalue reference + + // Create 'foo' node with empty multivalue property + Node foo = versionableNode.addNode("foo", "test:versionable"); + foo.setProperty("test:restoreMultivalueProp", new Value[] {}); + versionableNode.save(); + foo.checkin(); + versionableNode.checkin(); + + // restore 'foo' node to base version + foo.restore(foo.getBaseVersion(), true); + + Property property = foo.getProperty("test:restoreMultivalueProp"); + assertEquals("Property should by type of REFERENCE", PropertyType.REFERENCE, property.getType()); + } + } \ No newline at end of file Index: jackrabbit-jcr2spi/src/test/resources/custom_nodetypes.xml =================================================================== --- jackrabbit-jcr2spi/src/test/resources/custom_nodetypes.xml (revision 597100) +++ jackrabbit-jcr2spi/src/test/resources/custom_nodetypes.xml (working copy) @@ -28,6 +28,7 @@ + nt:base