Fixes to replication job status handling:

- success, error and cancelled states now correctly reported
- source and target reports now correctly provided for each of above

Changes:
- deprecated TransferService interface, replaced by TransferService2
  - introduces new sync transfer methods
  - new TransferServiceImpl2 class, old TransferServiceImpl delegates to new class
- sync transfer now returns TransferEndEvent
- sync transfer now raises TransferFailureException
- success, error and cancelled events are now end events (raised after report events)
- transfer client handling refactored to support cancel and errors appropriately
  - converted to event loop with polling of server status for all states
  - cancel request may now end with success or error (depending on when cancel requested)
  - extract transfer errors from server
  - only raise exception for errors (cancelled now returns)
  - source and destination reports written for all states
- Added TransferEndEvent interface for end events - reports attached to end event
- replication service fixed to record source and dest reports in error case
- action service fixed to record cancelled state

git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@22390 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
This commit is contained in:
David Caruana
2010-09-10 14:00:05 +00:00
parent 82955f3ae2
commit 35b2b7a122
25 changed files with 2176 additions and 1492 deletions

View File

@@ -244,7 +244,7 @@ public class ActionTrackingServiceImpl implements ActionTrackingService
* Schedule the recording of the action failure to occur in another
* transaction
*/
public void recordActionFailure(Action action, Throwable exception)
public void recordActionFailure(Action action, final Throwable exception)
{
if (logger.isDebugEnabled() == true)
{
@@ -313,10 +313,18 @@ public class ActionTrackingServiceImpl implements ActionTrackingService
.createAction(actionNode);
// Update it
if (exception instanceof ActionCancelledException)
{
action.setExecutionStatus(ActionStatus.Cancelled);
action.setExecutionFailureMessage(null);
}
else
{
action.setExecutionStatus(ActionStatus.Failed);
action.setExecutionFailureMessage(exception.getMessage());
}
action.setExecutionStartDate(startedAt);
action.setExecutionEndDate(endedAt);
action.setExecutionStatus(ActionStatus.Failed);
action.setExecutionFailureMessage(message);
runtimeActionService.saveActionImpl(actionNode, action);
if (logger.isDebugEnabled() == true)