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
<[email protected]> 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






Reply via email to