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.


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

View raw message