diff --git a/src/main/java/com/amazonaws/services/simpleworkflow/flow/worker/DecisionTaskPoller.java b/src/main/java/com/amazonaws/services/simpleworkflow/flow/worker/DecisionTaskPoller.java index 39c9251..ac1926d 100644 --- a/src/main/java/com/amazonaws/services/simpleworkflow/flow/worker/DecisionTaskPoller.java +++ b/src/main/java/com/amazonaws/services/simpleworkflow/flow/worker/DecisionTaskPoller.java @@ -21,6 +21,7 @@ import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; +import com.amazonaws.AmazonServiceException; import com.amazonaws.services.simpleworkflow.AmazonSimpleWorkflow; import com.amazonaws.services.simpleworkflow.flow.common.WorkflowExecutionUtils; import com.amazonaws.services.simpleworkflow.model.DecisionTask; @@ -168,7 +169,16 @@ private DecisionTask poll(String nextResultToken) { if (log.isDebugEnabled()) { log.debug("poll request begin: " + pollRequest); } - DecisionTask result = service.pollForDecisionTask(pollRequest); + DecisionTask result; + try { + result = service.pollForDecisionTask(pollRequest); + } catch (AmazonServiceException e) { + if (log.isDebugEnabled()) { + log.debug("poll request failed due to " + e.getMessage() + " retrying without a next page token"); + } + pollRequest.setNextPageToken(null); + result = service.pollForDecisionTask(pollRequest); + } if (log.isDebugEnabled()) { log.debug("poll request returned decision task: workflowType=" + result.getWorkflowType() + ", workflowExecution=" + result.getWorkflowExecution() + ", startedEventId=" + result.getStartedEventId() + ", previousStartedEventId=" + result.getPreviousStartedEventId());