<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Deleting nodes in BeforeDeleteNode Behaviour in Alfresco Archive</title>
    <link>https://connect.hyland.com/t5/alfresco-archive/deleting-nodes-in-beforedeletenode-behaviour/m-p/311037#M264167</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;I created following code:&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;PRE class="language-none line-numbers"&gt;&lt;CODE&gt;&lt;BR /&gt;public class DocumentBehavior implements NodeServicePolicies.BeforeDeleteNodePolicy {&lt;BR /&gt;&lt;BR /&gt;private Behaviour beforeDeleteNode;&lt;BR /&gt;&lt;BR /&gt;@Override&lt;BR /&gt;public void beforeDeleteNode(NodeRef nodeRef) {&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;//In this function I'm searching others nodes and then I'm trying delete them.&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;String type = (String)nodeService.getProperty(nodeRef, QName.createQName("kn", "docType"););&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;StoreRef storeRef = new StoreRef(StoreRef.PROTOCOL_WORKSPACE, "SpacesStore");&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;SearchParameters sp = new SearchParameters();&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;sp.addStore(storeRef);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;sp.setLanguage(SearchService.LANGUAGE_CMIS_ALFRESCO);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;sp.setQuery("SELECT d.* FROM kn:document AS d WHERE d.cmis:objectId &amp;lt;&amp;gt; '" + nodeRef.toString() + "' AND d.kn:docType= '" + type + "'");&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;ResultSet resultSet = searchService.query(sp);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;List&amp;lt;NodeRef&amp;gt; nodes = resultSet.getNodeRefs();&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;for (NodeRef node : nodes) {&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if (nodeService.exists(node)) {&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;nodeService.deleteNode(node);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;BR /&gt;}&lt;BR /&gt;&lt;BR /&gt;public void init() {&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;this.beforeDeleteNode = new JavaBehaviour(this, "beforeDeleteNode", NotificationFrequency.EVERY_EVENT);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;this.policyComponent.bindClassBehaviour(QName.createQName(&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;NamespaceService.ALFRESCO_URI, "beforeDeleteNode"), QName.createQName("kn", "document"),&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;this.beforeDeleteNode);&lt;BR /&gt;}&lt;BR /&gt;&lt;BR /&gt;}&lt;BR /&gt;&lt;SPAN class="line-numbers-rows"&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/CODE&gt;&lt;/PRE&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;When I'm trying delete node in Alfresco Share I have a error: "Could not delete node". There is no exceptions in Alfresco Log.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;When I'm trying detele node in Alfresco Explorer, the code executes 40 times (why?) and finally there is an exception (please find attached)&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;When I'm change NotificationFrequency to TRANSACTION_COMMIT or FIRST_EVENT the main node is deleted, but the nodes that I am searching are not deleted.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Is this a bug in Alfresco or do I implemented it the wrong way?&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Wed, 04 Dec 2013 09:25:18 GMT</pubDate>
    <dc:creator>krzysztof_nowac</dc:creator>
    <dc:date>2013-12-04T09:25:18Z</dc:date>
    <item>
      <title>Deleting nodes in BeforeDeleteNode Behaviour</title>
      <link>https://connect.hyland.com/t5/alfresco-archive/deleting-nodes-in-beforedeletenode-behaviour/m-p/311037#M264167</link>
      <description>I created following code&lt;IMG id="smileytongue" class="emoticon emoticon-smileytongue" src="https://migration33.stage.lithium.com/i/smilies/16x16_smiley-tongue.png" alt="Smiley Tongue" title="Smiley Tongue" /&gt;ublic class DocumentBehavior implements NodeServicePolicies.BeforeDeleteNodePolicy {private Behaviour beforeDeleteNode;@Overridepublic void beforeDeleteNode(NodeRef nodeRef) {&amp;nbsp;&amp;nbsp;&amp;nbsp;//In this function I'm searching others nodes and then I'm trying delete them.&amp;nbsp;&amp;nbsp;&amp;nbsp;String type = (</description>
      <pubDate>Wed, 04 Dec 2013 09:25:18 GMT</pubDate>
      <guid>https://connect.hyland.com/t5/alfresco-archive/deleting-nodes-in-beforedeletenode-behaviour/m-p/311037#M264167</guid>
      <dc:creator>krzysztof_nowac</dc:creator>
      <dc:date>2013-12-04T09:25:18Z</dc:date>
    </item>
    <item>
      <title>Re: Deleting nodes in BeforeDeleteNode Behaviour</title>
      <link>https://connect.hyland.com/t5/alfresco-archive/deleting-nodes-in-beforedeletenode-behaviour/m-p/311038#M264168</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Just make sure that you have appropriate rights to delete the content and it is obvious that the function that you have implemented will call multiple time as you are again deleting content in that.&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 04 Dec 2013 09:49:25 GMT</pubDate>
      <guid>https://connect.hyland.com/t5/alfresco-archive/deleting-nodes-in-beforedeletenode-behaviour/m-p/311038#M264168</guid>
      <dc:creator>yogeshpj</dc:creator>
      <dc:date>2013-12-04T09:49:25Z</dc:date>
    </item>
    <item>
      <title>Re: Deleting nodes in BeforeDeleteNode Behaviour</title>
      <link>https://connect.hyland.com/t5/alfresco-archive/deleting-nodes-in-beforedeletenode-behaviour/m-p/311039#M264169</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Your code have logic error:&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; Your behaviour&amp;nbsp; is bound to type "kn:document" and before you delete a node of type "kn:document" ,you search node with type "kn:document" and delete it.This will cause beforeDeleteNode is called again.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;This may cause an infinite loop.&lt;/SPAN&gt;&lt;BR /&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 04 Dec 2013 10:03:00 GMT</pubDate>
      <guid>https://connect.hyland.com/t5/alfresco-archive/deleting-nodes-in-beforedeletenode-behaviour/m-p/311039#M264169</guid>
      <dc:creator>kaynezhang</dc:creator>
      <dc:date>2013-12-04T10:03:00Z</dc:date>
    </item>
    <item>
      <title>Re: Deleting nodes in BeforeDeleteNode Behaviour</title>
      <link>https://connect.hyland.com/t5/alfresco-archive/deleting-nodes-in-beforedeletenode-behaviour/m-p/311040#M264170</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;I run it as administrator.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I think there is no logic error, because I searching nodes that are other than deleting node: d.cmis&lt;img id="smileysurprised" class="emoticon emoticon-smileysurprised" src="https://connect.hyland.com/i/smilies/16x16_smiley-surprised.png" alt="Smiley Surprised" title="Smiley Surprised" /&gt;bjectId &amp;lt;&amp;gt; '" + nodeRef.toString() + "'&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Moreover, this query is simplified. The original search query also excludes the "parent" node when beforeDeleteNode is called again on "child" node.&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 04 Dec 2013 13:07:00 GMT</pubDate>
      <guid>https://connect.hyland.com/t5/alfresco-archive/deleting-nodes-in-beforedeletenode-behaviour/m-p/311040#M264170</guid>
      <dc:creator>krzysztof_nowac</dc:creator>
      <dc:date>2013-12-04T13:07:00Z</dc:date>
    </item>
    <item>
      <title>Re: Deleting nodes in BeforeDeleteNode Behaviour</title>
      <link>https://connect.hyland.com/t5/alfresco-archive/deleting-nodes-in-beforedeletenode-behaviour/m-p/311041#M264171</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;By &lt;/SPAN&gt;&lt;PRE class="language-none line-numbers"&gt;&lt;CODE&gt;&lt;BR /&gt;sp.setQuery("SELECT d.* FROM kn:document AS d WHERE d.cmis:objectId &amp;lt;&amp;gt; '" + nodeRef.toString() + "' AND d.kn:docType= '" + type + "'");&lt;BR /&gt;&lt;SPAN class="line-numbers-rows"&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/CODE&gt;&lt;/PRE&gt;&lt;BR /&gt;&lt;SPAN&gt;You are searching nodes with type of kn:document.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;By &lt;/SPAN&gt;&lt;PRE class="language-none line-numbers"&gt;&lt;CODE&gt;&lt;BR /&gt;NamespaceService.ALFRESCO_URI, "beforeDeleteNode"), QName.createQName("kn", "document"),&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;this.beforeDeleteNode);&lt;BR /&gt;&lt;SPAN class="line-numbers-rows"&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/CODE&gt;&lt;/PRE&gt;&lt;SPAN&gt; Your behaviour is bound to type "kn:document.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;When you delete node returned by previous (which return node type&amp;nbsp; "kn:document") ,it will tigger your beforeDeleteNode Behaviour again,and so search and delete will be called again and again.It is a cross recurrence call and maybe called many times&amp;nbsp; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;I'm sorry I&amp;nbsp; used the word inaccurate(infinite loop)&amp;nbsp; in my last post.&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 04 Dec 2013 14:37:00 GMT</pubDate>
      <guid>https://connect.hyland.com/t5/alfresco-archive/deleting-nodes-in-beforedeletenode-behaviour/m-p/311041#M264171</guid>
      <dc:creator>kaynezhang</dc:creator>
      <dc:date>2013-12-04T14:37:00Z</dc:date>
    </item>
    <item>
      <title>Re: Deleting nodes in BeforeDeleteNode Behaviour</title>
      <link>https://connect.hyland.com/t5/alfresco-archive/deleting-nodes-in-beforedeletenode-behaviour/m-p/311042#M264172</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;What happens if you are trying to delete two documents of type kn:document?&amp;nbsp;&amp;nbsp; Document A will try to delete B and B will try to delete A ad-infinitum.&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Your &amp;lt;&amp;gt; test probably needs to be expanded to a list of nodes that you have deleted.&amp;nbsp;&amp;nbsp; You can store your list in the current transaction to stop these sorts of infinite chains.&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 04 Dec 2013 15:30:00 GMT</pubDate>
      <guid>https://connect.hyland.com/t5/alfresco-archive/deleting-nodes-in-beforedeletenode-behaviour/m-p/311042#M264172</guid>
      <dc:creator>mrogers</dc:creator>
      <dc:date>2013-12-04T15:30:00Z</dc:date>
    </item>
    <item>
      <title>Re: Deleting nodes in BeforeDeleteNode Behaviour</title>
      <link>https://connect.hyland.com/t5/alfresco-archive/deleting-nodes-in-beforedeletenode-behaviour/m-p/311043#M264173</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;You have to filter out the node in beforeDeleteNode method.This behavior will call for every node which is going to be delete.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Add logic to filter other nodes.&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 04 Dec 2013 15:48:12 GMT</pubDate>
      <guid>https://connect.hyland.com/t5/alfresco-archive/deleting-nodes-in-beforedeletenode-behaviour/m-p/311043#M264173</guid>
      <dc:creator>yogeshpj</dc:creator>
      <dc:date>2013-12-04T15:48:12Z</dc:date>
    </item>
    <item>
      <title>Re: Deleting nodes in BeforeDeleteNode Behaviour</title>
      <link>https://connect.hyland.com/t5/alfresco-archive/deleting-nodes-in-beforedeletenode-behaviour/m-p/311044#M264174</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Following up on Mike last comment. You need to leverage transaction listeners for your policy. Look to the ContentHitsAspect example in the Alfresco SDK. &lt;/SPAN&gt;&lt;A href="https://svn.alfresco.com/repos/alfresco-open-mirror/alfresco/HEAD/root/projects/sdk/samples/CustomAspect/source/org/alfresco/sample/ContentHitsAspect.java" rel="nofollow noopener noreferrer"&gt;https://svn.alfresco.com/repos/alfresco-open-mirror/alfresco/HEAD/root/projects/sdk/samples/CustomAspect/source/org/alfresco/sample/ContentHitsAspect.java&lt;/A&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 04 Dec 2013 16:54:27 GMT</pubDate>
      <guid>https://connect.hyland.com/t5/alfresco-archive/deleting-nodes-in-beforedeletenode-behaviour/m-p/311044#M264174</guid>
      <dc:creator>rfernandes</dc:creator>
      <dc:date>2013-12-04T16:54:27Z</dc:date>
    </item>
    <item>
      <title>Re: Deleting nodes in BeforeDeleteNode Behaviour</title>
      <link>https://connect.hyland.com/t5/alfresco-archive/deleting-nodes-in-beforedeletenode-behaviour/m-p/311045#M264175</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Rui, &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;I did as you wrote. It works! Thank you very much for your help.&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 05 Dec 2013 08:46:37 GMT</pubDate>
      <guid>https://connect.hyland.com/t5/alfresco-archive/deleting-nodes-in-beforedeletenode-behaviour/m-p/311045#M264175</guid>
      <dc:creator>krzysztof_nowac</dc:creator>
      <dc:date>2013-12-05T08:46:37Z</dc:date>
    </item>
  </channel>
</rss>

