jackrabbit-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Stefan Guggisberg <stefan.guggisb...@gmail.com>
Subject Re: Node property type constraints violated when setting strings
Date Fri, 02 Nov 2012 14:42:01 GMT
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