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 ju...@apache.org on 2013/05/22 08:20:53 UTC
svn commit: r1485078 - in /jackrabbit/oak/trunk/oak-jcr/src:
main/java/org/apache/jackrabbit/oak/jcr/ItemImpl.java
test/java/org/apache/jackrabbit/oak/jcr/RepositoryTest.java
Author: jukka
Date: Wed May 22 06:20:53 2013
New Revision: 1485078
URL: http://svn.apache.org/r1485078
Log:
OAK-510: Multivalued properties with array size 0 forget their type
Fix handling of empty multivalued properties in oak-jcr
Modified:
jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/ItemImpl.java
jackrabbit/oak/trunk/oak-jcr/src/test/java/org/apache/jackrabbit/oak/jcr/RepositoryTest.java
Modified: jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/ItemImpl.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/ItemImpl.java?rev=1485078&r1=1485077&r2=1485078&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/ItemImpl.java (original)
+++ jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/ItemImpl.java Wed May 22 06:20:53 2013
@@ -38,11 +38,13 @@ import javax.jcr.nodetype.PropertyDefini
import javax.jcr.version.VersionManager;
import org.apache.jackrabbit.oak.api.PropertyState;
+import org.apache.jackrabbit.oak.api.Type;
import org.apache.jackrabbit.oak.commons.PathUtils;
import org.apache.jackrabbit.oak.jcr.delegate.ItemDelegate;
import org.apache.jackrabbit.oak.jcr.delegate.NodeDelegate;
import org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate;
import org.apache.jackrabbit.oak.jcr.delegate.SessionOperation;
+import org.apache.jackrabbit.oak.plugins.memory.MemoryPropertyBuilder;
import org.apache.jackrabbit.oak.plugins.memory.PropertyStates;
import org.apache.jackrabbit.oak.plugins.nodetype.DefinitionProvider;
import org.apache.jackrabbit.oak.plugins.nodetype.EffectiveNodeTypeProvider;
@@ -427,10 +429,13 @@ abstract class ItemImpl<T extends ItemDe
Value[] nonNullValues = compact(values);
int targetType = getType(definition, type);
- if (targetType == type) {
+ if (nonNullValues.length == 0) {
+ return MemoryPropertyBuilder
+ .array(Type.fromTag(type, false), name)
+ .getPropertyState();
+ } else if (targetType == type) {
return PropertyStates.createProperty(name, Arrays.asList(nonNullValues));
- }
- else {
+ } else {
return PropertyStates.createProperty(name, Arrays.asList(ValueHelper.convert(
values, targetType, getValueFactory())));
}
Modified: jackrabbit/oak/trunk/oak-jcr/src/test/java/org/apache/jackrabbit/oak/jcr/RepositoryTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-jcr/src/test/java/org/apache/jackrabbit/oak/jcr/RepositoryTest.java?rev=1485078&r1=1485077&r2=1485078&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-jcr/src/test/java/org/apache/jackrabbit/oak/jcr/RepositoryTest.java (original)
+++ jackrabbit/oak/trunk/oak-jcr/src/test/java/org/apache/jackrabbit/oak/jcr/RepositoryTest.java Wed May 22 06:20:53 2013
@@ -786,7 +786,6 @@ public class RepositoryTest extends Abst
}
}
- @Ignore("OAK-510") // FIXME: OAK-510
@Test
public void addEmptyMultiValueName() throws RepositoryException {
Node parentNode = getNode(TEST_PATH);