Problem solved.
setProperty with the right name but the wrong type will generate the
exception.
javax.jcr.nodetype.ConstraintViolationException: no matching property
definition found for {internal}privileges
I as trying to set a {internal}privileges with a Value[] containing
String rather than Name
Ian
On 4 Dec 2009, at 18:51, Ian Boston wrote:
Hi,
I have a modified DefaultSecurityManager (and related classes) and I
am certain I have made a mistake somewhere, but on initialization I
get
04.12.2009 18:40:09.020 *ERROR* [SCR Component Actor]
org
.apache
.sling.jcr.jackrabbit.server.impl.security.standard.ACLProvider
Failed to set-up minimal access control for root node of workspace
default javax.jcr.nodetype.ConstraintViolationException: no matching
property definition found for {internal}privileges
at
org
.apache
.jackrabbit
.core
.nodetype
.EffectiveNodeType.getApplicablePropertyDef(EffectiveNodeType.java:
768)
at
org
.apache
.jackrabbit
.core.NodeImpl.getApplicablePropertyDefinition(NodeImpl.java:905)
at
org
.apache.jackrabbit.core.NodeImpl.getOrCreateProperty(NodeImpl.java:
412)
at
org
.apache.jackrabbit.core.NodeImpl.internalSetProperty(NodeImpl.java:
1444)
at
org
.apache.jackrabbit.core.NodeImpl.internalSetProperty(NodeImpl.java:
1423)
at
org
.apache
.jackrabbit
.core
.DynamicProtectedItemModifier
.setProperty(DynamicProtectedItemModifier.java:118)
at
org
.apache
.sling
.jcr
.jackrabbit
.server.impl.security.standard.ACLEditor.setPolicy(ACLEditor.java:189)
at
org
.apache
.sling
.jcr
.jackrabbit
.server
.impl.security.standard.ACLProvider.initRootACL(ACLProvider.java:356)
at
org
.apache
.sling
.jcr
.jackrabbit
.server.impl.security.standard.ACLProvider.init(ACLProvider.java:182)
at
org
.apache
.sling
.jcr
.jackrabbit
.server
.impl
.security.dynamic.DynamicACLProvider.init(DynamicACLProvider.java:42)
at
org
.apache
.sling
.jcr
.jackrabbit
.server
.impl
.security
.dynamic
.DynamicAccessControlProviderFactoryImpl
.createProvider(DynamicAccessControlProviderFactoryImpl.java:103)
at
org
.apache
.jackrabbit
.core
.DynamicSecurityManager
.getAccessControlProvider(DynamicSecurityManager.java:425)
at
org
.apache
.jackrabbit
.core
.DynamicSecurityManager.getAccessManager(DynamicSecurityManager.java:
280)
at
org
.apache
.jackrabbit.core.SessionImpl.createAccessManager(SessionImpl.java:384)
at
org.apache.jackrabbit.core.SessionImpl.<init>(SessionImpl.java:302)
at
org.apache.jackrabbit.core.SessionImpl.<init>(SessionImpl.java:271)
at
org.apache.jackrabbit.core.XASessionImpl.<init>(XASessionImpl.java:
105)
Any ideas why or where I can look to debug. ?
I think the main difference up to this point is a change in package
name for the ACLProvider other than that its standard. My extensions
only relate to the construction of permissions bitmaps.
The I believe the default node types have been registered since I
see the log line
04.12.2009 18:40:01.843 *INFO* [SCR Component Actor]
org.apache.jackrabbit.core.nodetype.NodeTypeRegistry no custom node
type definitions found
Ian