You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@chemistry.apache.org by Muhammed Olgun <mh...@gmail.com> on 2014/09/19 16:08:49 UTC

Implementing applyAcl method

Hi,

I'm implementing an OpenCMIS server. I have a problem with applyAcl method.
I implemented applyAcl methods (both for AtomPub and others) in my
CmisServer  interface but when I try to apply an ACL from the Chemistry
Workbench I got this exception;

17:01:15 ERROR hemistry.opencmis.workbench.ClientHelper:
CmisNotSupportedException: Operation not supported by the repository for
this object!
org.apache.chemistry.opencmis.commons.exceptions.CmisNotSupportedException:
Operation not supported by the repository for this object!
    at
org.apache.chemistry.opencmis.client.bindings.spi.atompub.AbstractAtomPubService.throwLinkException(AbstractAtomPubService.java:271)
    at
org.apache.chemistry.opencmis.client.bindings.spi.atompub.AbstractAtomPubService.getAclInternal(AbstractAtomPubService.java:926)
    at
org.apache.chemistry.opencmis.client.bindings.spi.atompub.AclServiceImpl.getAcl(AclServiceImpl.java:63)
    at
org.apache.chemistry.opencmis.client.bindings.spi.atompub.AclServiceImpl.applyAcl(AclServiceImpl.java:45)
    at
org.apache.chemistry.opencmis.client.runtime.SessionImpl.applyAcl(SessionImpl.java:1352)
    at
org.apache.chemistry.opencmis.client.runtime.AbstractCmisObject.applyAcl(AbstractCmisObject.java:567)
    at
org.apache.chemistry.opencmis.workbench.AclEditorFrame.doApply(AclEditorFrame.java:287)
    at
org.apache.chemistry.opencmis.workbench.AclEditorFrame.access$000(AclEditorFrame.java:66)
    at
org.apache.chemistry.opencmis.workbench.AclEditorFrame$1.actionPerformed(AclEditorFrame.java:218)
    at
javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2022)
    at
javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2346)
    at
javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:402)
    at
javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259)
    at
javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:252)
    at java.awt.Component.processMouseEvent(Component.java:6527)
    at javax.swing.JComponent.processMouseEvent(JComponent.java:3321)
    at java.awt.Component.processEvent(Component.java:6292)
    at java.awt.Container.processEvent(Container.java:2234)
    at java.awt.Component.dispatchEventImpl(Component.java:4883)
    at java.awt.Container.dispatchEventImpl(Container.java:2292)
    at java.awt.Component.dispatchEvent(Component.java:4705)
    at
java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4898)
    at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4533)
    at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4462)
    at java.awt.Container.dispatchEventImpl(Container.java:2278)
    at java.awt.Window.dispatchEventImpl(Window.java:2739)
    at java.awt.Component.dispatchEvent(Component.java:4705)
    at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:746)
    at java.awt.EventQueue.access$400(EventQueue.java:97)
    at java.awt.EventQueue$3.run(EventQueue.java:697)
    at java.awt.EventQueue$3.run(EventQueue.java:691)
    at java.security.AccessController.doPrivileged(Native Method)
    at
java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:75)
    at
java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:86)
    at java.awt.EventQueue$4.run(EventQueue.java:719)
    at java.awt.EventQueue$4.run(EventQueue.java:717)
    at java.security.AccessController.doPrivileged(Native Method)
    at
java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:75)
    at java.awt.EventQueue.dispatchEvent(EventQueue.java:716)
    at
java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201)
    at
java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
    at
java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
    at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)

My first thought was that I have a problem with my getObject method but I
set object's ACL to the ObjectData correctly. I also set
CapabilityAcl.MANAGE to the RepositoryInfo.

Now, I have no idea how to debug this issue. Any help would be would be
appreciated.

Muhammed

Re: Implementing applyAcl method

Posted by Florian Müller <fm...@apache.org>.
Hi Muhammed,

You are probably assembling an ObjectInfo object when you compile an 
ObjectData object on the server side.
The ObjectInfo.hasAcl() method must return true, if the object has an 
ACL. If it returns false, then the server framework doesn't generate the 
appropriate link. And if the client cannot find this link, it throws a 
CmisNotSupportedException.

Check if you set hasAcl flag in your server implementation.


- Florian



> Hi,
> 
> I'm implementing an OpenCMIS server. I have a problem with applyAcl 
> method.
> I implemented applyAcl methods (both for AtomPub and others) in my
> CmisServer  interface but when I try to apply an ACL from the Chemistry
> Workbench I got this exception;
> 
> 17:01:15 ERROR hemistry.opencmis.workbench.ClientHelper:
> CmisNotSupportedException: Operation not supported by the repository 
> for
> this object!
> org.apache.chemistry.opencmis.commons.exceptions.CmisNotSupportedException:
> Operation not supported by the repository for this object!
>     at
> org.apache.chemistry.opencmis.client.bindings.spi.atompub.AbstractAtomPubService.throwLinkException(AbstractAtomPubService.java:271)
>     at
> org.apache.chemistry.opencmis.client.bindings.spi.atompub.AbstractAtomPubService.getAclInternal(AbstractAtomPubService.java:926)
>     at
> org.apache.chemistry.opencmis.client.bindings.spi.atompub.AclServiceImpl.getAcl(AclServiceImpl.java:63)
>     at
> org.apache.chemistry.opencmis.client.bindings.spi.atompub.AclServiceImpl.applyAcl(AclServiceImpl.java:45)
>     at
> org.apache.chemistry.opencmis.client.runtime.SessionImpl.applyAcl(SessionImpl.java:1352)
>     at
> org.apache.chemistry.opencmis.client.runtime.AbstractCmisObject.applyAcl(AbstractCmisObject.java:567)
>     at
> org.apache.chemistry.opencmis.workbench.AclEditorFrame.doApply(AclEditorFrame.java:287)
>     at
> org.apache.chemistry.opencmis.workbench.AclEditorFrame.access$000(AclEditorFrame.java:66)
>     at
> org.apache.chemistry.opencmis.workbench.AclEditorFrame$1.actionPerformed(AclEditorFrame.java:218)
>     at
> javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2022)
>     at
> javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2346)
>     at
> javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:402)
>     at
> javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259)
>     at
> javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:252)
>     at java.awt.Component.processMouseEvent(Component.java:6527)
>     at javax.swing.JComponent.processMouseEvent(JComponent.java:3321)
>     at java.awt.Component.processEvent(Component.java:6292)
>     at java.awt.Container.processEvent(Container.java:2234)
>     at java.awt.Component.dispatchEventImpl(Component.java:4883)
>     at java.awt.Container.dispatchEventImpl(Container.java:2292)
>     at java.awt.Component.dispatchEvent(Component.java:4705)
>     at
> java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4898)
>     at 
> java.awt.LightweightDispatcher.processMouseEvent(Container.java:4533)
>     at 
> java.awt.LightweightDispatcher.dispatchEvent(Container.java:4462)
>     at java.awt.Container.dispatchEventImpl(Container.java:2278)
>     at java.awt.Window.dispatchEventImpl(Window.java:2739)
>     at java.awt.Component.dispatchEvent(Component.java:4705)
>     at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:746)
>     at java.awt.EventQueue.access$400(EventQueue.java:97)
>     at java.awt.EventQueue$3.run(EventQueue.java:697)
>     at java.awt.EventQueue$3.run(EventQueue.java:691)
>     at java.security.AccessController.doPrivileged(Native Method)
>     at
> java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:75)
>     at
> java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:86)
>     at java.awt.EventQueue$4.run(EventQueue.java:719)
>     at java.awt.EventQueue$4.run(EventQueue.java:717)
>     at java.security.AccessController.doPrivileged(Native Method)
>     at
> java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:75)
>     at java.awt.EventQueue.dispatchEvent(EventQueue.java:716)
>     at
> java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201)
>     at
> java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
>     at
> java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
>     at 
> java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
>     at 
> java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
>     at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)
> 
> My first thought was that I have a problem with my getObject method but 
> I
> set object's ACL to the ObjectData correctly. I also set
> CapabilityAcl.MANAGE to the RepositoryInfo.
> 
> Now, I have no idea how to debug this issue. Any help would be would be
> appreciated.
> 
> Muhammed