@@ -78,6 +78,9 @@ public class WorkflowServiceBean {
7878 @ EJB
7979 EjbDataverseEngine engine ;
8080
81+ @ EJB
82+ WorkflowServiceBean self ;
83+
8184 @ Inject
8285 DataverseRequestServiceBean dvRequestService ;
8386
@@ -269,7 +272,7 @@ private void rollback(Workflow wf, WorkflowContext ctxt, Failure failure, int la
269272
270273 logger .log ( Level .INFO , "Removing workflow lock" );
271274 try {
272- unlockDataset (ctxt );
275+ self . unlockDataset (ctxt );
273276 } catch (CommandException ex ) {
274277 logger .log (Level .SEVERE , "Error restoring dataset locks state after rollback: " + ex .getMessage (), ex );
275278 }
@@ -354,7 +357,7 @@ void lockDataset(WorkflowContext ctxt, DatasetLock datasetLock) throws CommandEx
354357 }
355358
356359 @ TransactionAttribute (TransactionAttributeType .REQUIRES_NEW )
357- void unlockDataset (WorkflowContext ctxt ) throws CommandException {
360+ public void unlockDataset (WorkflowContext ctxt ) throws CommandException {
358361 /*
359362 * Since the lockDataset command above directly persists a lock to the database,
360363 * the ctxt.getDataset() is not updated and its list of locks can't be used.
@@ -407,7 +410,7 @@ private void workflowCompleted(Workflow wf, WorkflowContext ctxt) {
407410 lockDataset (ctxt , lock );
408411 ctxt .getDataset ().addLock (lock );
409412
410- unlockDataset (ctxt );
413+ self . unlockDataset (ctxt );
411414 ctxt .setLockId (null ); //the workflow lock
412415 //Refreshing merges the dataset
413416 ctxt = refresh (ctxt );
0 commit comments