<?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 behaviour threading doesn't make sense in Alfresco Archive</title>
    <link>https://connect.hyland.com/t5/alfresco-archive/behaviour-threading-doesn-t-make-sense/m-p/266792#M219922</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;I am baffled as to how to synchronize methods in a behaviour class.&amp;nbsp; I have read everything I can find about ejb and spring beans.&amp;nbsp; The EJB3 annotations don't work (or aren't obeyed).&amp;nbsp; And from what I can tell, I should be able to use traditional "synchronized" blocks within the class, but they keep halting everything.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I'm using some Alfresco code I found to check if the parent folder has the "Countable" aspect.&amp;nbsp; If not, add it and set the counter to 1.&amp;nbsp; If it does, try and increment the counter using nodeService.setProperty().&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;The main problem is when you upload multiple objects at once, a second (or third) thread seems to start before the first one completes (log4j shows the thread names).&amp;nbsp; Alfresco doesn't like that, because the write/update of the parent folder (which would be the same parent for all the remaining objects being uploaded and updated at this time) causes a block/deadlock situation as subsequent threads try to read the parent's properties (and they, too, may update the folder).&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;So basically the code works great if you only upload one document at a time.&amp;nbsp; I can't find a locking (not transaction) construct to put anywhere that'll let me synchronize access to the parent, and keep things moving at all.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I'm sure this kind of thing has been addressed.&amp;nbsp; Can someone please help me figure out how to synchronize this code?&amp;nbsp; It's the only thing I can think of that Alfresco is complaining about right now…and I'm a little surprised it is at all.&amp;nbsp; It's not like I'm testing with 10 or 100 concurrent users.&amp;nbsp; I'm just testing an import of 2 documents at a time and I am not allowed to put any concurrency constructs in the code! &lt;img id="smileysad" class="emoticon emoticon-smileysad" src="https://connect.hyland.com/i/smilies/16x16_smiley-sad.png" alt="Smiley Sad" title="Smiley Sad" /&gt;&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Tue, 17 Jul 2012 01:58:36 GMT</pubDate>
    <dc:creator>aweber1nj</dc:creator>
    <dc:date>2012-07-17T01:58:36Z</dc:date>
    <item>
      <title>behaviour threading doesn't make sense</title>
      <link>https://connect.hyland.com/t5/alfresco-archive/behaviour-threading-doesn-t-make-sense/m-p/266792#M219922</link>
      <description>I am baffled as to how to synchronize methods in a behaviour class.&amp;nbsp; I have read everything I can find about ejb and spring beans.&amp;nbsp; The EJB3 annotations don't work (or aren't obeyed).&amp;nbsp; And from what I can tell, I should be able to use traditional "synchronized" blocks within the class, but they keep</description>
      <pubDate>Tue, 17 Jul 2012 01:58:36 GMT</pubDate>
      <guid>https://connect.hyland.com/t5/alfresco-archive/behaviour-threading-doesn-t-make-sense/m-p/266792#M219922</guid>
      <dc:creator>aweber1nj</dc:creator>
      <dc:date>2012-07-17T01:58:36Z</dc:date>
    </item>
    <item>
      <title>Re: behaviour threading doesn't make sense</title>
      <link>https://connect.hyland.com/t5/alfresco-archive/behaviour-threading-doesn-t-make-sense/m-p/266793#M219923</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Alfresco is not an EJB implementation so its hardly surprising that the annotations don't work.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;In general you shouldn't try to synchronize in a behaviour,&amp;nbsp; that will cause problems if not done carefully and won't work in a cluster.&amp;nbsp; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Alfresco uses "optimistic" locking so the approach is attempt to update and if there is conflict, fail fast and retry.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Attempting to put a count on a parent folder is going to be problematic, do you really need that?&amp;nbsp; And how accurate does it have to be?&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 17 Jul 2012 11:22:24 GMT</pubDate>
      <guid>https://connect.hyland.com/t5/alfresco-archive/behaviour-threading-doesn-t-make-sense/m-p/266793#M219923</guid>
      <dc:creator>mrogers</dc:creator>
      <dc:date>2012-07-17T11:22:24Z</dc:date>
    </item>
    <item>
      <title>Re: behaviour threading doesn't make sense</title>
      <link>https://connect.hyland.com/t5/alfresco-archive/behaviour-threading-doesn-t-make-sense/m-p/266794#M219924</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;The counter is being used to keep child names (all documents in this case) unique.&amp;nbsp; Unfortunately, my client has a strange need to have the documents re-named according to a strict convention…but this frequently results in duplicate names.&amp;nbsp; Thus, I was trying to use the Countable Aspect on the parent folder to keep a counter and pre-pend the integer to the name as it's reformulated.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;There are obvious, other inconveniences using that approach (such as when you delete documents, the sequence will be "broken"), but technically I'd need it to be fairly accurate (to answer your question).&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;If I cached the value temporarily, is there some way to defer the update to the parent?&amp;nbsp; Like after some timeout of inactivity for that behaviour class, it could go do some work on to flush the cached values back to the repository.&amp;nbsp; I kind of doubt this, though maybe a "timed action" that picks up the same cache and does its work?&amp;nbsp; I assume spawning a background-worker thread from the behaviour class is a bad idea?&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;The countable aspect (and counter property) is really what would "fit", but if it can't work technologically, then I guess I have to go another route.&amp;nbsp; Maybe go directly to a custom/separate db table and use JDBC?&amp;nbsp; (I noticed there wasn't a service to help get a JDBC connection/session!)&amp;nbsp; But even doing that, and the relatively quick lookup and update of the DB table should be "synchronized"…but as I said, none of the synchronization constructs seem to work as designed.&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 17 Jul 2012 12:23:49 GMT</pubDate>
      <guid>https://connect.hyland.com/t5/alfresco-archive/behaviour-threading-doesn-t-make-sense/m-p/266794#M219924</guid>
      <dc:creator>aweber1nj</dc:creator>
      <dc:date>2012-07-17T12:23:49Z</dc:date>
    </item>
    <item>
      <title>Re: behaviour threading doesn't make sense</title>
      <link>https://connect.hyland.com/t5/alfresco-archive/behaviour-threading-doesn-t-make-sense/m-p/266795#M219925</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;If you retry on conflict with the out of the box retrying transaction handler, then the following will work.&amp;nbsp;&amp;nbsp;&amp;nbsp; increment and store the "last number" on the parent node.&amp;nbsp;&amp;nbsp; And on create create the assoc&amp;nbsp; with last number.&amp;nbsp; &lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Its not suitable for larger volumes but is a simple solution.&amp;nbsp;&amp;nbsp; For larger volumes you probably need to change your approach to use the job lock service and allocate sequences.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Or another solution is to use the attribute service for your counter.&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 17 Jul 2012 13:03:20 GMT</pubDate>
      <guid>https://connect.hyland.com/t5/alfresco-archive/behaviour-threading-doesn-t-make-sense/m-p/266795#M219925</guid>
      <dc:creator>mrogers</dc:creator>
      <dc:date>2012-07-17T13:03:20Z</dc:date>
    </item>
    <item>
      <title>Re: behaviour threading doesn't make sense</title>
      <link>https://connect.hyland.com/t5/alfresco-archive/behaviour-threading-doesn-t-make-sense/m-p/266796#M219926</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Very much appreciate the advice.&amp;nbsp; I will look into both "alternate" approaches you mention.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Again, thanks for taking the time to reply.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;-AJ&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 17 Jul 2012 13:40:06 GMT</pubDate>
      <guid>https://connect.hyland.com/t5/alfresco-archive/behaviour-threading-doesn-t-make-sense/m-p/266796#M219926</guid>
      <dc:creator>aweber1nj</dc:creator>
      <dc:date>2012-07-17T13:40:06Z</dc:date>
    </item>
    <item>
      <title>Re: behaviour threading doesn't make sense</title>
      <link>https://connect.hyland.com/t5/alfresco-archive/behaviour-threading-doesn-t-make-sense/m-p/266797#M219927</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;So I switched to the AttributeService to store the "counter".&lt;/SPAN&gt;&lt;BR /&gt;&lt;PRE class="language-none line-numbers"&gt;&lt;CODE&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; String[] keys = new String[2];&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; keys[0] = clName;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; keys[1] = parentID;&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // check if the attribute exists…&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Integer curCounter = (Integer) attributeService.getAttribute(keys);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (curCounter == null) {&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; curCounter = 0;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; logger.debug("No value stored yet for attribute: " + parentID);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; else {&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; logger.debug("Got value from attribute: " + curCounter);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //increment the counter and put it back in the database/repository&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; resultValue = curCounter + 1;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; attributeService.setAttribute(new Integer(resultValue), keys);&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;/CODE&gt;&lt;/PRE&gt;&lt;SPAN&gt;I tried importing one document.&amp;nbsp; Worked fine.&amp;nbsp; (Must have created the attribute in "setAttribute" as the javadocs indicate.)&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I tried importing another (single) document.&amp;nbsp; Worked fine.&amp;nbsp; Got the existing attribute, incremented it, etc.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Then I tried dragging two docs in at once.&amp;nbsp; The exception thrown seems to indicate that Alfresco tried to create the attribute again, because it threw a DB "unique constraint" error?&amp;nbsp; It should've (obviously) just updated the existing attribute again (twice in a row).&lt;/SPAN&gt;&lt;BR /&gt;&lt;PRE class="language-none line-numbers"&gt;&lt;CODE&gt;org.springframework.dao.DuplicateKeyException: &lt;BR /&gt;### Error updating database.&amp;nbsp; Cause: org.postgresql.util.PSQLException: ERROR: duplicate key value violates unique constraint "idx_alf_propv_act"&lt;BR /&gt;&amp;nbsp; Detail: Key (actual_type_id, long_value)=(6, 3) already exists.&lt;BR /&gt;### The error may involve alfresco.propval.insert.insert_PropertyValue-Inline&lt;BR /&gt;### The error occurred while setting parameters&lt;BR /&gt;### Cause: org.postgresql.util.PSQLException: ERROR: duplicate key value violates unique constraint "idx_alf_propv_act"&lt;BR /&gt;&amp;nbsp; Detail: Key (actual_type_id, long_value)=(6, 3) already exists.&lt;BR /&gt;; SQL []; ERROR: duplicate key value violates unique constraint "idx_alf_propv_act"&lt;BR /&gt;&amp;nbsp; Detail: Key (actual_type_id, long_value)=(6, 3) already exists.; nested exception is org.postgresql.util.PSQLException: ERROR: duplicate key value violates unique constraint "idx_alf_propv_act"&lt;BR /&gt;&amp;nbsp; Detail: Key (actual_type_id, long_value)=(6, 3) already exists.&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;at org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.doTranslate(SQLErrorCodeSQLExceptionTranslator.java:241)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:72)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:71)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:346)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;at $Proxy6.insert(Unknown Source)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;at org.mybatis.spring.SqlSessionTemplate.insert(SqlSessionTemplate.java:231)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;at org.alfresco.repo.domain.propval.ibatis.PropertyValueDAOImpl.createPropertyValue(PropertyValueDAOImpl.java:440)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;at org.alfresco.repo.domain.propval.AbstractPropertyValueDAOImpl$PropertyValueCallbackDAO.createValue(AbstractPropertyValueDAOImpl.java:762)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;at org.alfresco.repo.domain.propval.AbstractPropertyValueDAOImpl$PropertyValueCallbackDAO.createValue(AbstractPropertyValueDAOImpl.java:712)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;at org.alfresco.repo.cache.lookup.EntityLookupCache.getOrCreateByValue(EntityLookupCache.java:469)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;at org.alfresco.repo.domain.propval.AbstractPropertyValueDAOImpl.getOrCreatePropertyValue(AbstractPropertyValueDAOImpl.java:705)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;at org.alfresco.repo.domain.propval.AbstractPropertyValueDAOImpl.createPropertyImpl(AbstractPropertyValueDAOImpl.java:998)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;at org.alfresco.repo.domain.propval.AbstractPropertyValueDAOImpl.access$700(AbstractPropertyValueDAOImpl.java:54)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;at org.alfresco.repo.domain.propval.AbstractPropertyValueDAOImpl$PropertyCallbackDAO.createValue(AbstractPropertyValueDAOImpl.java:846)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;at org.alfresco.repo.domain.propval.AbstractPropertyValueDAOImpl$PropertyCallbackDAO.createValue(AbstractPropertyValueDAOImpl.java:840)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;at org.alfresco.repo.cache.lookup.EntityLookupCache.getOrCreateByValue(EntityLookupCache.java:447)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;at org.alfresco.repo.domain.propval.AbstractPropertyValueDAOImpl.createProperty(AbstractPropertyValueDAOImpl.java:823)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;at org.alfresco.repo.domain.propval.AbstractPropertyValueDAOImpl.updatePropertyUniqueContext(AbstractPropertyValueDAOImpl.java:1233)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;at org.alfresco.repo.attributes.AttributeServiceImpl.setAttribute(AttributeServiceImpl.java:177)&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;SPAN&gt;Thoughts?&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 17 Jul 2012 14:45:34 GMT</pubDate>
      <guid>https://connect.hyland.com/t5/alfresco-archive/behaviour-threading-doesn-t-make-sense/m-p/266797#M219927</guid>
      <dc:creator>aweber1nj</dc:creator>
      <dc:date>2012-07-17T14:45:34Z</dc:date>
    </item>
    <item>
      <title>Re: behaviour threading doesn't make sense</title>
      <link>https://connect.hyland.com/t5/alfresco-archive/behaviour-threading-doesn-t-make-sense/m-p/266798#M219928</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Your code should be in a retrying transaction helper.&amp;nbsp; The conflicting update will retry - both docs go in.&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 17 Jul 2012 15:46:54 GMT</pubDate>
      <guid>https://connect.hyland.com/t5/alfresco-archive/behaviour-threading-doesn-t-make-sense/m-p/266798#M219928</guid>
      <dc:creator>mrogers</dc:creator>
      <dc:date>2012-07-17T15:46:54Z</dc:date>
    </item>
  </channel>
</rss>

