<?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 Nodes not getting created in Alfresco Archive</title>
    <link>https://connect.hyland.com/t5/alfresco-archive/nodes-not-getting-created/m-p/258446#M211576</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Hi,&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I've been running into an issue for a while now, but it's rather difficult to explain.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;I guess it's similar to the issue described in the post below but as mine isn't CMIS related I wanted to open a new thread.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;A href="https://forums.alfresco.com/en/viewtopic.php?f=45&amp;amp;t=45367" rel="nofollow noopener noreferrer"&gt;https://forums.alfresco.com/en/viewtopic.php?f=45&amp;amp;t=45367&lt;/A&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;My problem is that I've got a webscript that creates a folder if it doesn't exist yet and then places some content in that folder.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;This works fine, but the problem starts when two, practically simultaneous, requests are sent to that webscript.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;The first request will detect that the folder doesn't exist yet and creates it without a problem, but the second request also detects that the folder doesn't exist yet (fileFolderService.searchSimple()), tries to create it (fileFolderService.create()) which fails as the first request has just created it.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;I suspected that this was caused by the index not having updated yet so I built in a random delay to make sure there's at least a few seconds between the two requests detecting if the folder exists, but oddly enough this doesn't seem to make a difference.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I then tried what would happen if I try to find the folder in the exception handler of the fileFolderService.create() call and then it suddenly does find the correct folder noderef…&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;At that stage I thought I had an acceptable workaround but although I now have the correct NodeRef for the folder, no matter what I do with it Alfresco just doesn't actually save it.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;For example, if I create a file in that folder using fileFolderService.create() it doesn't throw any exceptions and returns a new NodeRef fine, but when I then search for that NodeRef in the Node Browser in Share it doesn't actually exist, nor can i find any trace of it!&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;So basically I have this code:&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;PRE class="language-none line-numbers"&gt;&lt;CODE&gt;&lt;BR /&gt;NodeRef parentFolderRef =&amp;gt; the NodeRef to an existing folder inside which a subfolder should be created&lt;BR /&gt;String subfolderName =&amp;gt; the name of the subfolder, i.e. "myFolder"&lt;BR /&gt;&lt;BR /&gt;NodeRef subfolderRef = fileFolderService.searchSimple(parentFolderRef, subfolderName);&lt;BR /&gt;&lt;BR /&gt;if (subfolderRef == null) {&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;// Add a random delay to prevent both webscript requests from creating the same folder at the same time&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;Random randomGenerator = new Random();&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;int randomDelay = randomGenerator.nextInt(60000);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;try {&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Thread.sleep(randomDelay);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;} catch (Exception exc) {&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;exc.printStackTrace();&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;try {&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;FileInfo subfolderInfo = fileFolderService.create(parentFolderRef, subfolderName, ContentModel.TYPE_FOLDER);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;// An exception is thrown here as the folder has already been created by the first webscript request&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;} catch (FileExistsException e) {&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;// try to find the sub folder again as the filefolder service claims it does exist!&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;subfolderRef = fileFolderService.searchSimple(parentFolderRef, subfolderName);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;// Now I do actually get the correct NodeRef as subfolderRef!&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;FileInfo secondSubfolderInfo = fileFolderService.create(subfolderRef, "anotherSubFolder", ContentModel.TYPE_FOLDER);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;NodeRef secondSubfolderRef = secondSubfolderInfo.getNodeRef();&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;// secondSubfolderInfo is a normal NodeRef and all looks to work ok, but when i check later in the node browser the 'anotherSubFolder' doesn't actually exist!&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&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;/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;SPAN&gt;This is a rather big issue for me obviously as there's no way to detect errors yet the second sub folder never actually gets created!&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I'm running Alfresco community 4.0.d and am planning to update to 4.2 but can't right now for unrelated reasons.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Does anybody have any ideas?&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Wed, 12 Dec 2012 17:03:40 GMT</pubDate>
    <dc:creator>schipmolder</dc:creator>
    <dc:date>2012-12-12T17:03:40Z</dc:date>
    <item>
      <title>Nodes not getting created</title>
      <link>https://connect.hyland.com/t5/alfresco-archive/nodes-not-getting-created/m-p/258446#M211576</link>
      <description>Hi,I've been running into an issue for a while now, but it's rather difficult to explain.I guess it's similar to the issue described in the post below but as mine isn't CMIS related I wanted to open a new thread.https://forums.alfresco.com/en/viewtopic.php?f=45&amp;amp;t=45367My problem is that I've got</description>
      <pubDate>Wed, 12 Dec 2012 17:03:40 GMT</pubDate>
      <guid>https://connect.hyland.com/t5/alfresco-archive/nodes-not-getting-created/m-p/258446#M211576</guid>
      <dc:creator>schipmolder</dc:creator>
      <dc:date>2012-12-12T17:03:40Z</dc:date>
    </item>
    <item>
      <title>Re: Nodes not getting created</title>
      <link>https://connect.hyland.com/t5/alfresco-archive/nodes-not-getting-created/m-p/258447#M211577</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;You can't catch the exception and expect to carry on since your transaction is marked for rollback.&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Equally inserting "delays" is not helping.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;What you do is retry your whole transaction, if you use alfresco's retrying transaction helper (or the webscript framework) then it will do it for you.&amp;nbsp; &lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;The first create will go through no problem.&amp;nbsp;&amp;nbsp; Second create will throw an exception then succeed on the next retry.&amp;nbsp;&amp;nbsp; Subsequent iterations will also find the folder and work.&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 12 Dec 2012 18:37:03 GMT</pubDate>
      <guid>https://connect.hyland.com/t5/alfresco-archive/nodes-not-getting-created/m-p/258447#M211577</guid>
      <dc:creator>mrogers</dc:creator>
      <dc:date>2012-12-12T18:37:03Z</dc:date>
    </item>
    <item>
      <title>Re: Nodes not getting created</title>
      <link>https://connect.hyland.com/t5/alfresco-archive/nodes-not-getting-created/m-p/258448#M211578</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;You know, it never occurred to me that a transaction would roll back when you catch the exception, but thanks a lot that explains it all I guess.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;I never really had to work with RetryingTransactionHelper before so I'll do some reading up on it.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Thanks!&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 12 Dec 2012 18:59:13 GMT</pubDate>
      <guid>https://connect.hyland.com/t5/alfresco-archive/nodes-not-getting-created/m-p/258448#M211578</guid>
      <dc:creator>schipmolder</dc:creator>
      <dc:date>2012-12-12T18:59:13Z</dc:date>
    </item>
  </channel>
</rss>

