jackrabbit-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Ashley Martens" <marte...@asconline.com>
Subject JCR-RMI NodeType/Property problem
Date Fri, 24 Feb 2006 12:59:58 GMT
I have an issue with JCR-RMI.

I have a custom nodetype:
<pl = 'http://powerlender.com/ns'>
[pl:contact] > nt:base

/* Properties */
- pl:contactDate  (string) = ''  mandatory
- pl:contactBy    (string) = ''  mandatory
- pl:contactType  (long)   = '0' mandatory
- pl:ref          (reference)

When I create a node of this type and assign values to the properties under an embedded Jackrabbit
instance it works fine. However, when I run the same code through JCR-RMI I get an error.

Code:
		Node contact = contacts.addNode("test-attachment", JCRContact.NT_CONTACT);
		contact.setProperty(JCRContact.PROP_CONTACT_BY, "PL");
		contact.setProperty(JCRContact.PROP_CONTACT_DATE, "2005-12-26");
		contact.setProperty(JCRContact.PROP_CONTACT_TYPE, 1);
		contact.setProperty(JCRContact.PROP_REFERENCE, node.getUUID());  <-- Error occurs here

Error from JCR-RMI client.
javax.jcr.nodetype.ConstraintViolationException: no matching property definition found for
{http://powerlender.com/ns}ref
        at org.apache.jackrabbit.rmi.server.ServerObject.getRepositoryException(ServerObject.java:103)
        at org.apache.jackrabbit.rmi.server.ServerNode.setProperty(ServerNode.java:249)

Error from JCR-RMI server:
javax.jcr.nodetype.ConstraintViolationException: no matching property definition found for
{http://powerlender.com/ns}ref
        at org.apache.jackrabbit.core.nodetype.EffectiveNodeType.getApplicablePropertyDef(EffectiveNodeType.java:797)
        at org.apache.jackrabbit.core.NodeImpl.getApplicablePropertyDefinition(NodeImpl.java:887)
        at org.apache.jackrabbit.core.NodeImpl.getOrCreateProperty(NodeImpl.java:433)
        at org.apache.jackrabbit.core.NodeImpl.getOrCreateProperty(NodeImpl.java:403)
        at org.apache.jackrabbit.core.NodeImpl.setProperty(NodeImpl.java:2014)
        at org.apache.jackrabbit.core.NodeImpl.setProperty(NodeImpl.java:2042)
        at org.apache.jackrabbit.rmi.server.ServerNode.setProperty(ServerNode.java:247)

When I looked in the EffectiveNodeType class I noticed that the error occurs when the class
cannot find the property definition, but when I look in the custom_nodetypes.xml file in my
repository the nodetype and the property definition look good.

- <nodeType hasOrderableChildNodes="false" isMixin="false" name="pl:contact" primaryItemName="">
- <supertypes>
  <supertype>nt:base</supertype> 
  </supertypes>
- <propertyDefinition autoCreated="false" mandatory="true" multiple="false" name="pl:contactDate"
onParentVersion="COPY" protected="false" requiredType="String">
- <defaultValues>
  <defaultValue /> 
  </defaultValues>
  </propertyDefinition>
- <propertyDefinition autoCreated="false" mandatory="true" multiple="false" name="pl:contactBy"
onParentVersion="COPY" protected="false" requiredType="String">
- <defaultValues>
  <defaultValue /> 
  </defaultValues>
  </propertyDefinition>
- <propertyDefinition autoCreated="false" mandatory="true" multiple="false" name="pl:contactType"
onParentVersion="COPY" protected="false" requiredType="Long">
- <defaultValues>
  <defaultValue>0</defaultValue> 
  </defaultValues>
  </propertyDefinition>
  <propertyDefinition autoCreated="false" mandatory="false" multiple="false" name="pl:ref"
onParentVersion="COPY" protected="false" requiredType="Reference" /> 
  </nodeType>

Mime
View raw message