[
https://issues.apache.org/jira/browse/OAK-250?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13485489#comment-13485489
]
Chetan Mehrotra edited comment on OAK-250 at 10/27/12 7:22 PM:
---------------------------------------------------------------
[~anchela] - Should not the checkProtected() method logic be enforced via
CommitHook?
Because after this change the content import is failing because for a new node
which is under construction checkProtected() triggers Node Definition
evaluation and that fails if the primaryType is specified after a node is
added. Below is one of the stacktraces observed
{noformat}
12417 [main] ERROR com.day.jcr.vault.packaging.impl.ZipVaultPackage - Error
during install.
javax.jcr.RepositoryException: No matching node definition found for
Node[NodeDelegate[/etc/clientlibs/granite/jquery]]
at
org.apache.jackrabbit.oak.jcr.NodeImpl.getDefinition(NodeImpl.java:999)
at
org.apache.jackrabbit.oak.jcr.ItemImpl.checkProtected(ItemImpl.java:259)
at org.apache.jackrabbit.oak.jcr.NodeImpl.addNode(NodeImpl.java:216)
at
com.day.jcr.vault.fs.impl.io.FolderArtifactHandler.accept(FolderArtifactHandler.java:83)
{noformat}
For now I am trying to workaround it by modifying the checkProtected logic to
ignore check for new nodes
{code:java}
void checkProtected() throws RepositoryException {
+ if(isNew()){
+ return;
+ }
ItemDefinition definition = (isNode()) ? ((Node) this).getDefinition()
: ((Property) this).getDefinition();
checkProtected(definition);
}
{code}
was (Author: chetanm):
[~anchela] - Should not the checkProtected() method logic be enforced via
CommitHook?
Because after this change the content import is failing because for a new node
which is under construction checkProtected() triggers Node Definition
evaluation and that fails if the primaryType is specified after a node is
added. Below is one of the stacktraces observed
{noformat}
12417 [main] ERROR com.day.jcr.vault.packaging.impl.ZipVaultPackage - Error
during install.
javax.jcr.RepositoryException: No matching node definition found for
Node[NodeDelegate[/etc/clientlibs/granite/jquery]]
at
org.apache.jackrabbit.oak.jcr.NodeImpl.getDefinition(NodeImpl.java:999)
at
org.apache.jackrabbit.oak.jcr.ItemImpl.checkProtected(ItemImpl.java:259)
at org.apache.jackrabbit.oak.jcr.NodeImpl.addNode(NodeImpl.java:216)
at
com.day.jcr.vault.fs.impl.io.FolderArtifactHandler.accept(FolderArtifactHandler.java:83)
{noformat}
> Enforce jcr constraints for 'protected' items
> ---------------------------------------------
>
> Key: OAK-250
> URL: https://issues.apache.org/jira/browse/OAK-250
> Project: Jackrabbit Oak
> Issue Type: Sub-task
> Components: jcr
> Reporter: angela
>
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira