You are viewing a plain text version of this content. The canonical link for it is here.
Posted to oak-issues@jackrabbit.apache.org by "Michael Dürig (JIRA)" <ji...@apache.org> on 2013/05/21 18:41:16 UTC
[jira] [Reopened] (OAK-510) Multivalued properties with array size
0 forget their type
[ https://issues.apache.org/jira/browse/OAK-510?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Michael Dürig reopened OAK-510:
-------------------------------
Reopening since {{org.apache.jackrabbit.oak.jcr.RepositoryTest#addEmptyMultiValueName}} still fails.
> Multivalued properties with array size 0 forget their type
> ----------------------------------------------------------
>
> Key: OAK-510
> URL: https://issues.apache.org/jira/browse/OAK-510
> Project: Jackrabbit Oak
> Issue Type: Bug
> Components: core, jcr
> Reporter: angela
> Assignee: Jukka Zitting
> Fix For: 0.8
>
>
> thought i remember that i have seen a related TODO or issue before, i
> couldn't find it any more... sorry for that.
> while cleaning up the node type code i found that one FIXME in the
> ReadOnlyNodeTypeManager related to definition generation was only needed
> because the TypeValidator failed upon validation of an empty jcr:supertypes
> definition. not storing the super types if none has be declared solved the
> problem for the time being.
> however, it seems to me that the underlying problem is in a completely
> different area: namely that mv properties with an empty value array
> forget their type.
> this can be verified with the following test:
> {code}
> @Test
> public void addEmptyMultiValueName() throws RepositoryException {
> Node parentNode = getNode(TEST_PATH);
> Value[] values = new Value[0];
> parentNode.setProperty("multi name", values);
> parentNode.getSession().save();
> Session session2 = createAnonymousSession();
> try {
> Property property = session2.getProperty(TEST_PATH + "/multi name");
> assertTrue(property.isMultiple());
> assertEquals(PropertyType.NAME, property.getType());
> Value[] values2 = property.getValues();
> assertEquals(values.length, values2.length);
> assertEquals(values[0], values2[0]);
> assertEquals(values[1], values2[1]);
> } finally {
> session2.logout();
> }
> }
> {code}
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira