On 7.9.12 9:50, Julian Reschke wrote:
On 2012-09-07 00:35, Michael Dürig wrote:

Hi,

While working on property value constraints I stumbled on the following:

[nt:propertyDefinition]
   ...
- jcr:requiredType (STRING) protected mandatory
     < 'STRING', 'URI', 'BINARY', 'LONG', 'DOUBLE',
       'DECIMAL', 'BOOLEAN', 'DATE', 'NAME', 'PATH',
       'REFERENCE', 'WEAKREFERENCE', 'UNDEFINED'

The type names are defined in javax.jcr.PropertyType. For example

TYPENAME_STRING = "String";

Now JSR-283 says about string constraints (3.7.3.6.1): "For STRING and
URI properties, the constraint string is a regular expression pattern
according to the syntax of java.util.regex.Pattern."

So jcr:requiredType can be for example "STRING" but not "String". The
former however results in an IllegalArgumentException when passed to
PropertyType.valueFromName().
...

That looks like a spec inconsistency to me.

It appears the simplest way to fix this would be to change predefined
values in nt:propertyDefinition.

Open a JSR-333 bug?

Yes I think so. And while we are at it, there is potentially a similar problem with jcr:onParentVersion. But that needs checking.

Michael


Best regards, Julian

Reply via email to