A co-worker reviewed my code and suggested I add one additional line and it fixed the problem. He suggested a small change in my Action class:
submissionDao.transaction(sessionInfo.getClerkReviewSubmission(),
new TransactionBlock<ClerkReviewSubmission>() {
public void merge(ClerkReviewSubmission detached,
ClerkReviewSubmission managed) {
ClerkReviewTask task = mergeTask(new ClerkReviewTask(),
myForm);
for (ClerkReviewCase crCase : sessionInfo
.getClerkReviewSubmission().getCases()) {
ClerkReviewCase crCase2 = managed.findCase(crCase
.getIcisCaseId());
createCaseTask(crCase2, task);
}
}
});
}