Wrap part of the setup in a retrying transaction, to avoid intermittent build issues

git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@30139 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
This commit is contained in:
Nick Burch
2011-08-31 10:02:45 +00:00
parent a3ff59fa09
commit ec600def09

View File

@@ -120,19 +120,26 @@ public class DiscussionRestApiTest extends BaseWebScriptTest
siteInfo = this.siteService.createSite("DiscussionSitePreset", SITE_SHORT_NAME_DISCUSSION, siteInfo = this.siteService.createSite("DiscussionSitePreset", SITE_SHORT_NAME_DISCUSSION,
"DiscussionSiteTitle", "DiscussionSiteDescription", SiteVisibility.PUBLIC); "DiscussionSiteTitle", "DiscussionSiteDescription", SiteVisibility.PUBLIC);
} }
final NodeRef siteNodeRef = siteInfo.getNodeRef();
// Create the forum // Create the forum
String forumNodeName = "TestForum"; final String forumNodeName = "TestForum";
FORUM_NODE = nodeService.getChildByName(siteInfo.getNodeRef(), ContentModel.ASSOC_CONTAINS, forumNodeName); FORUM_NODE = nodeService.getChildByName(siteInfo.getNodeRef(), ContentModel.ASSOC_CONTAINS, forumNodeName);
if (FORUM_NODE == null) if (FORUM_NODE == null)
{ {
Map<QName, Serializable> props = new HashMap<QName, Serializable>(5); FORUM_NODE = transactionService.getRetryingTransactionHelper().doInTransaction(new RetryingTransactionCallback<NodeRef>() {
props.put(ContentModel.PROP_NAME, forumNodeName); @Override
props.put(ContentModel.PROP_TITLE, forumNodeName); public NodeRef execute() throws Throwable {
FORUM_NODE = nodeService.createNode( Map<QName, Serializable> props = new HashMap<QName, Serializable>(5);
siteInfo.getNodeRef(), ContentModel.ASSOC_CONTAINS, props.put(ContentModel.PROP_NAME, forumNodeName);
QName.createQName(forumNodeName), ForumModel.TYPE_FORUM props.put(ContentModel.PROP_TITLE, forumNodeName);
).getChildRef();
return nodeService.createNode(
siteNodeRef, ContentModel.ASSOC_CONTAINS,
QName.createQName(forumNodeName), ForumModel.TYPE_FORUM, props
).getChildRef();
}
});
} }
// Create users // Create users