jackrabbit-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Jessi Abrahams <jessi.abrah...@oracle.com>
Subject Re: Node property type constraints violated when setting strings
Date Tue, 06 Nov 2012 20:08:52 GMT
Hi Stefan,

It looks like you were right that I was extending a node type with 
residual property definitions - I oversimplified the example I gave so 
it was not apparent. I've fixed the problematic inheritance and the 
repository is validating as expected. Thanks for your help.

Jessi

On 11/02/2012 10:42 AM, Stefan Guggisberg wrote:
> On Fri, Nov 2, 2012 at 2:57 PM, Jessi Abrahams
> <jessi.abrahams@oracle.com> wrote:
>> Hi Michael,
>>
>> Thanks for your response. Based on that spec I would expect that if I tried
>> to assign a value of "abc" then the property would end up being set to false
>> (based on how Java converts strings to booleans). However what I am seeing
>> is the property being assigned a string value of "abc".
> that would be a major bug. however, i suppose that your custom node type
> extends a node type containing residual property definitions (such as e.g.
> nt;unstructured).
>
> you can verify the declaring node type by running something like
>
> Property prop = node.setProperty("someBooleanProperty", "abc");
> System.out.println(PropertyType.nameFromValue(prop.getType()));
> PropertyDefinition def = prop.getDefinition();
> System.out.println(def.getDeclaringNodeType().getName());
> System.out.println(PropertyType.nameFromValue(def.getRequiredType()));
>
> cheers
> stefan
>
>> Thanks
>> Jessi
>>
>>
>> On 11/02/2012 04:55 AM, Michael Dürig wrote:
>>>
>>> Jessi,
>>>
>>> The repository will try to convert the string to a boolean. See 3.6.4
>>> Property Type Conversion in JSR 283.
>>>
>>> Michael
>>>
>>> On 1.11.12 21:53, Jessi Abrahams wrote:
>>>> Hi,
>>>> I'm new to this list so I apologize if this question has been asked (I
>>>> tried searching the archives) or if this is not the right place to ask.
>>>>
>>>> I have a custom node type with a definition like this:
>>>>
>>>> [foo:bar] > mix:lastModified, mix:created, nt:base
>>>>     - someBooleanProperty (BOOLEAN)
>>>>
>>>> When I create a node of this type and use any of the setProperty methods
>>>> on Node, the repository allows me to set string values (such as "abc")
>>>> for someBooleanProperty even though as far as I understand from the type
>>>> definition, only booleans should be allowed. The repository throws a
>>>> ConstraintViolationException (as I would expect) if I try to to set
>>>> someBooleanProperty to any other incorrect (non-boolean) type - but not
>>>> strings. It seems like properties can always be set to a string, whether
>>>> or not it's allowed by the node type definition. Is this expected? It
>>>> doesn't seem in line with the spec.
>>>>
>>>> Thanks
>>>> Jessi
>>>>
>>>>
>>>>
>>



Mime
View raw message