Skip to content

Commit 5532f1c

Browse files
committed
try detach in workflow
1 parent a9a2228 commit 5532f1c

1 file changed

Lines changed: 11 additions & 1 deletion

File tree

src/main/java/edu/harvard/iq/dataverse/workflow/WorkflowServiceBean.java

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -401,13 +401,23 @@ private void workflowCompleted(Workflow wf, WorkflowContext ctxt) {
401401
// Read fresh timestamps from DB - parallel index/exports may have occurred while the workflow ran
402402
// (Nominally the workflow lock should have stopped other changes).
403403
Dataset dataset = ctxt.getDataset();
404-
Dataset dbDataset = em.find(Dataset.class, ctxt.getDataset().getId());
404+
// Get a FRESH copy from database (detach first to force new query)
405+
em.detach(dataset);
406+
Dataset dbDataset = em.find(Dataset.class, dataset.getId());
405407
logger.info("Changing index time from " +dataset.getIndexTime() + " to " + dbDataset.getIndexTime());
406408
dataset.setIndexTime(dbDataset.getIndexTime());
407409
logger.info("Changing permission index time from " + dataset.getPermissionIndexTime() + " to " + dbDataset.getPermissionIndexTime());
408410
dataset.setPermissionIndexTime(dbDataset.getPermissionIndexTime());
409411
logger.info("Changing last export time from " + dataset.getLastExportTime() + " to " + dbDataset.getLastExportTime());
410412
dataset.setLastExportTime(dbDataset.getLastExportTime());
413+
414+
// Copy ONLY the fields you want to update
415+
dataset.setIndexTime(dbDataset.getIndexTime());
416+
dataset.setModificationTime(dbDataset.getModificationTime());
417+
// Don't copy versionState, publicationDate - keep your changes!
418+
419+
// Re-merge the updated dataset
420+
dataset = em.merge(dataset);
411421

412422
try {
413423
if (ctxt.getType() == TriggerType.PrePublishDataset) {

0 commit comments

Comments
 (0)