You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@jackrabbit.apache.org by "Stefan Guggisberg (JIRA)" <ji...@apache.org> on 2008/08/06 16:40:44 UTC

[jira] Commented: (JCR-1707) Node.setProperty(String, String, PropertyType.UNDEFINED) might fail unexpectedly for multiple prop. defs

    [ https://issues.apache.org/jira/browse/JCR-1707?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12620270#action_12620270 ] 

Stefan Guggisberg commented on JCR-1707:
----------------------------------------

i tried the following:

            Node tst = root.addNode("jcr-1707", "Test");
            Property p = tst.setProperty("foo", "bar", PropertyType.UNDEFINED);
            System.out.println(PropertyType.nameFromValue(p.getType()));

the console output was "String", as expected.

i further tried this:

            Node tst = root.addNode("jcr-1707", "Test");
            tst.addMixin("mix:referenceable");
            Property p = tst.setProperty("foo", tst);
            System.out.println(PropertyType.nameFromValue(p.getType()));

the console output was "Reference", again as expected.

could you please provide a simple test case which demonstrates the issue?

> Node.setProperty(String, String, PropertyType.UNDEFINED) might fail unexpectedly for multiple prop. defs
> --------------------------------------------------------------------------------------------------------
>
>                 Key: JCR-1707
>                 URL: https://issues.apache.org/jira/browse/JCR-1707
>             Project: Jackrabbit
>          Issue Type: Bug
>    Affects Versions: core 1.4.5
>            Reporter: Tobias Bocanegra
>
> Assume you have a node type defined with 2 property defs with the same name but different types, eg:
> [Test] > nt:base
>   - foo (string) mandatory
>   - foo (reference) mandatory
> when setting this property with: Node.setProperty("foo", "bar", PropertyType.UNDEFINED) it might throw a "javax.jcr.ValueFormatException: not a valid UUID format"  
> because 'bar' is not valid uuid. imo, a matching property def for the given value should be used.
> otoh, it could also give unexpected results the other way around, e.g. if a uuid is passed but the string-def is used first. so the string property def should be tried last.
> the workaround is of course to specify a property type or to use setProperty(String, String)

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.