<?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 Webscript transaction, InvalidNodeRefException in Alfresco Archive</title>
    <link>https://connect.hyland.com/t5/alfresco-archive/webscript-transaction-invalidnoderefexception/m-p/250898#M204028</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;I have this error org.alfresco.service.cmr.repository.InvalidNodeRefException - Node does not exist: workspace://SpacesStore/7ad81e86-3a70-4cde-9c21-4d615616b6ad throw by my webscript.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;This error is not throw everytime, only when other webscript delete node is use by the first webscript.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Webscript are in javascript.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Exemple :&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;1- Run a webscript then make an directory with two empty document.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;2- Start a second&amp;nbsp; webscript that read the directorty node and save his children in a variable and after wait for 10 secondes, durring this time start a third webscript that delete one document of the directory. After the 10 seconde when the second webscript loop in the directory children an the exeption is throw (InvalidNodeRefException - Node does not exist: )&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;This issue il easy to reproduce and can be fix with try catch in the javascript controler but if children node is use in the view (ftl) is not catchabled.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Question&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Is this a desired behavior? Why all webscript are not in a transaction. Why other webscript can make fail other webscript? Can y put somme config to solve this issue.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;If y make the webscript in java can i use the transaction api to solve this issue ?&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;PRE class="language-none line-numbers"&gt;&lt;CODE&gt;&lt;BR /&gt;// Webscript 1&lt;BR /&gt;var node = companyhome;&lt;BR /&gt;var testTxNode = companyhome.childByNamePath("txNodeTest");&lt;BR /&gt;if (testTxNode != null)&lt;BR /&gt;{&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;testTxNode.remove();&lt;BR /&gt;}&lt;BR /&gt;testTxNode = node.createFolder("txNodeTest");&lt;BR /&gt;var f1 = testTxNode.createFile('file1.txt');&lt;BR /&gt;f1.properties.content.guessMimetype('file1.txt'); &lt;BR /&gt;var f2 = testTxNode.createFile('file2.txt');&lt;BR /&gt;f2.properties.content.guessMimetype('file2.txt'); &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;/CODE&gt;&lt;/PRE&gt;&lt;BR /&gt;&lt;PRE class="language-none line-numbers"&gt;&lt;CODE&gt;&lt;BR /&gt;// Webscript 2&lt;BR /&gt;function wait(msecs)&lt;BR /&gt;{&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;var start = new Date().getTime();&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;var cur = start&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;while(cur - start &amp;lt; msecs)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;cur = new Date().getTime();&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;BR /&gt;}&lt;BR /&gt;var error = "";&lt;BR /&gt;var childrens = "";&lt;BR /&gt;var testTxNode = companyhome.childByNamePath("txNodeTest");&lt;BR /&gt;if (testTxNode == null)&lt;BR /&gt;{&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;error = "Step 1 not passed correctly, Step 2 failed"&lt;BR /&gt;}&lt;BR /&gt;else&lt;BR /&gt;{&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;var childs = testTxNode.children;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;wait(10000);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;for each (child in childs)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;childrens += " - " + child.name;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;error = "Step 3 not passed correctly, Step 2 Work " + childrens&lt;BR /&gt;}&lt;BR /&gt;model.error = error;&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;/CODE&gt;&lt;/PRE&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;PRE class="language-none line-numbers"&gt;&lt;CODE&gt;&lt;BR /&gt;// Webscript 3&lt;BR /&gt;var result = "";&lt;BR /&gt;var testTxNode = companyhome.childByNamePath("txNodeTest/file2.txt");&lt;BR /&gt;if (testTxNode == null)&lt;BR /&gt;{&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;result = "Step 1 not passed correctly, Step 3 failed";&lt;BR /&gt;}&lt;BR /&gt;else&lt;BR /&gt;{&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;testTxNode.remove();&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;result = "passed";&lt;BR /&gt;}&lt;BR /&gt;model.resultat = result;&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;/CODE&gt;&lt;/PRE&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Fri, 21 Jan 2011 19:44:11 GMT</pubDate>
    <dc:creator>pmartin</dc:creator>
    <dc:date>2011-01-21T19:44:11Z</dc:date>
    <item>
      <title>Webscript transaction, InvalidNodeRefException</title>
      <link>https://connect.hyland.com/t5/alfresco-archive/webscript-transaction-invalidnoderefexception/m-p/250898#M204028</link>
      <description>I have this error org.alfresco.service.cmr.repository.InvalidNodeRefException - Node does not exist: workspace://SpacesStore/7ad81e86-3a70-4cde-9c21-4d615616b6ad throw by my webscript.This error is not throw everytime, only when other webscript delete node is use by the first webscript.Webscript are</description>
      <pubDate>Fri, 21 Jan 2011 19:44:11 GMT</pubDate>
      <guid>https://connect.hyland.com/t5/alfresco-archive/webscript-transaction-invalidnoderefexception/m-p/250898#M204028</guid>
      <dc:creator>pmartin</dc:creator>
      <dc:date>2011-01-21T19:44:11Z</dc:date>
    </item>
    <item>
      <title>Re: Webscript transaction, InvalidNodeRefException</title>
      <link>https://connect.hyland.com/t5/alfresco-archive/webscript-transaction-invalidnoderefexception/m-p/250899#M204029</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;By default for each WebScript in Alfresco there is a unique transaction.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;You can try to change the transaction element in the webscript descriptor using the requiresnew value:&lt;/SPAN&gt;&lt;BR /&gt;&lt;PRE class="language-none line-numbers"&gt;&lt;CODE&gt;&lt;BR /&gt;&amp;lt;transaction&amp;gt;requiresnew&amp;lt;/transaction&amp;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;/CODE&gt;&lt;/PRE&gt;&lt;SPAN&gt;Maybe you could solve in this way.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;But if you need to implement a more complex procedure you have to implement your own WebScript using a Java-Backed WebScript and using RetryingTransactionHelper.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Java-Backed WebScript:&lt;/SPAN&gt;&lt;BR /&gt;&lt;A href="http://wiki.alfresco.com/wiki/Java-backed_Web_Scripts_Samples" rel="nofollow noopener noreferrer"&gt;http://wiki.alfresco.com/wiki/Java-backed_Web_Scripts_Samples&lt;/A&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Transactions:&lt;/SPAN&gt;&lt;BR /&gt;&lt;A href="http://wiki.alfresco.com/wiki/Java_Foundation_API#Handling_UserTransaction_Directly" rel="nofollow noopener noreferrer"&gt;http://wiki.alfresco.com/wiki/Java_Foundation_API#Handling_UserTransaction_Directly&lt;/A&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Hope this helps.&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 26 Jan 2011 10:28:34 GMT</pubDate>
      <guid>https://connect.hyland.com/t5/alfresco-archive/webscript-transaction-invalidnoderefexception/m-p/250899#M204029</guid>
      <dc:creator>openpj</dc:creator>
      <dc:date>2011-01-26T10:28:34Z</dc:date>
    </item>
    <item>
      <title>Re: Webscript transaction, InvalidNodeRefException</title>
      <link>https://connect.hyland.com/t5/alfresco-archive/webscript-transaction-invalidnoderefexception/m-p/250900#M204030</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;BLOCKQUOTE class="jive-quote"&gt;By default for each WebScript in Alfresco there is a unique transaction.&lt;/BLOCKQUOTE&gt;&lt;SPAN&gt;My problem proves that is not true, one webscript change data in other webscript ? &lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I try&amp;nbsp; &amp;lt;transaction&amp;gt;requiresnew&amp;lt;/transaction&amp;gt; and this config change absolutly nothing.&amp;nbsp; :x &lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Can exist a solution for webscript with javascript controler ? or only in java ?&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 01 Feb 2011 19:49:24 GMT</pubDate>
      <guid>https://connect.hyland.com/t5/alfresco-archive/webscript-transaction-invalidnoderefexception/m-p/250900#M204030</guid>
      <dc:creator>pmartin</dc:creator>
      <dc:date>2011-02-01T19:49:24Z</dc:date>
    </item>
    <item>
      <title>Re: Webscript transaction, InvalidNodeRefException</title>
      <link>https://connect.hyland.com/t5/alfresco-archive/webscript-transaction-invalidnoderefexception/m-p/250901#M204031</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;I think that you have to use the Java language, Alfresco doesn't provide any way to manage transactions using the Javascript API.&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 02 Feb 2011 09:36:32 GMT</pubDate>
      <guid>https://connect.hyland.com/t5/alfresco-archive/webscript-transaction-invalidnoderefexception/m-p/250901#M204031</guid>
      <dc:creator>openpj</dc:creator>
      <dc:date>2011-02-02T09:36:32Z</dc:date>
    </item>
  </channel>
</rss>

