Merged V2.1 to HEAD

6958: Fix for WCM-823
   6959: Merged V1.4 to V2.1
      6943: Upgrade scripts for transaction commit time and indexes for QName columns on alf_child_assoc
   6960: Fixed script patch "applied on" date updates.
   6961: Retry transactions on ConstraintViolationException.
   6964: Added svn revision number to be substituted into build string if build number is not passed.
   6965: Daylight savings for FTP. Fix for AR-1776.
   6966: Added catch blocks for the AVMLockingException. WCM-877.
   6967: Interim fix for WCM-866 (large link validation report causes SQL exception)
   6968: Fixes for AWC-1309 "Broken preview image for Web Projects in MySpaces" and similar AWC-1635 "Broken/Missing images in MySpaces Web Script".
   6970: Force DB write ordering of the NodeStatus vs Node object.
   6971: More transaction demarcation fixes for special cases of non-executed script patches.
   6972: Switch off session size management for the mass archive and restore test.
   6973: Fixed AR-1801: Boolean isMultiValued() no longer returns null


git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@7370 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
This commit is contained in:
Derek Hulley
2007-11-13 00:24:19 +00:00
parent e82c2cd946
commit 0ddb624acf
18 changed files with 195 additions and 27 deletions

View File

@@ -80,4 +80,12 @@ public interface PatchDaoService
* a date
*/
public List<AppliedPatch> getAppliedPatches(Date from, Date to);
/**
* Update the patch <i>applied on</i> date.
*
* @param id the patch ID
* @param appliedOnDate the date applied
*/
public void setAppliedOnDate(String id, Date appliedOnDate);
}

View File

@@ -116,7 +116,7 @@ public class PatchServiceImpl implements PatchService
// construct a list of executed patches by ID (also check the date)
Map<String, AppliedPatch> appliedPatchesById = new HashMap<String, AppliedPatch>(23);
List<AppliedPatch> appliedPatches = patchDaoService.getAppliedPatches();
for (AppliedPatch appliedPatch : appliedPatches)
for (final AppliedPatch appliedPatch : appliedPatches)
{
appliedPatchesById.put(appliedPatch.getId(), appliedPatch);
// Update the time of execution if it is null. This is to deal with
@@ -124,7 +124,16 @@ public class PatchServiceImpl implements PatchService
// an execution time assigned
if (appliedPatch.getAppliedOnDate() == null)
{
appliedPatch.setAppliedOnDate(new Date());
RetryingTransactionCallback<Date> callback = new RetryingTransactionCallback<Date>()
{
public Date execute() throws Throwable
{
Date now = new Date();
patchDaoService.setAppliedOnDate(appliedPatch.getId(), now);
return now;
}
};
transactionService.getRetryingTransactionHelper().doInTransaction(callback, false, true);
}
}

View File

@@ -128,4 +128,10 @@ public class HibernatePatchDaoServiceImpl extends HibernateDaoSupport implements
// done
return queryResults;
}
public void setAppliedOnDate(String id, Date appliedOnDate)
{
AppliedPatch patch = (AppliedPatch) getHibernateTemplate().get(AppliedPatchImpl.class, id);
patch.setAppliedOnDate(appliedOnDate);
}
}