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