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



Reply via email to