[ 
https://issues.apache.org/jira/browse/JCR-2267?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12841240#action_12841240
 ] 

angela commented on JCR-2267:
-----------------------------

> the proposed patch supresses the exception and just logs a warning

it might be that it works in you test. but as far as i know it violates the 
specification: autocreated items must
be present in the transient layer but their value may change upon save... from 
my point of view returning
a null value isn't a valid option.

for the AbstractQValueFactory i find the exception appropriate. subclasses and 
custom qvalue factories
may provide a more sophisticated approach. e.g. by asking the backend for the 
correct value.

> AbstractQValueFactory throws exception for unknown auto-create properties
> -------------------------------------------------------------------------
>
>                 Key: JCR-2267
>                 URL: https://issues.apache.org/jira/browse/JCR-2267
>             Project: Jackrabbit Content Repository
>          Issue Type: Bug
>          Components: jackrabbit-spi-commons
>            Reporter: Stefan Guggisberg
>             Fix For: 2.1.0
>
>         Attachments: r806112.patch
>
>
> the following properties were introduced in JCR 2.0:
> jcr:createdBy
> jcr:lastModifiedBy
> they're declared as autocreated and don't specify a default.
> the following code throws on save():
>     parentFolderNode.addNode("foo", "nt:folder");
>     session.save();
> ==>
> Caused by: javax.jcr.RepositoryException: createFromDefinition not 
> implemented for: {http://www.jcp.org/jcr/1.0}createdBy
>       at 
> org.apache.jackrabbit.spi2davex.QValueFactoryImpl.computeAutoValues(QValueFactoryImpl.java:257)
>       at 
> org.apache.jackrabbit.jcr2spi.state.SessionItemStateManager.computeSystemGeneratedPropertyValues(SessionItemStateManager.java:687)
>       at 
> org.apache.jackrabbit.jcr2spi.state.SessionItemStateManager.addNodeState(SessionItemStateManager.java:601)
>       at 
> org.apache.jackrabbit.jcr2spi.state.SessionItemStateManager.visit(SessionItemStateManager.java:262)
>       at 
> org.apache.jackrabbit.jcr2spi.operation.AddNode.accept(AddNode.java:69)
>       at 
> org.apache.jackrabbit.jcr2spi.state.SessionItemStateManager.execute(SessionItemStateManager.java:228)
>       at org.apache.jackrabbit.jcr2spi.NodeImpl.createNode(NodeImpl.java:1294)
>       at org.apache.jackrabbit.jcr2spi.NodeImpl.addNode(NodeImpl.java:183)
>        ...

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to