@@ -386,6 +386,8 @@ public ManualOperationResult resetConnection(final UUID connectionId, final List
386386 Optional .empty ());
387387 }
388388
389+ Optional <Long > newJobId ;
390+
389391 do {
390392 try {
391393 Thread .sleep (DELAY_BETWEEN_QUERY_MS );
@@ -394,23 +396,22 @@ public ManualOperationResult resetConnection(final UUID connectionId, final List
394396 Optional .of ("Didn't manage to reset a sync for: " + connectionId ),
395397 Optional .empty ());
396398 }
397- } while (!newJobStarted (connectionId , oldJobId ));
399+ newJobId = getNewJobId (connectionId , oldJobId );
400+ } while (newJobId .isEmpty ());
398401
399402 log .info ("end of reset submission" );
400403
401- final long jobId = ConnectionManagerUtils .getCurrentJobId (client , connectionId );
402-
403404 return new ManualOperationResult (
404405 Optional .empty (),
405- Optional . of ( jobId ) );
406+ newJobId );
406407 }
407408
408- private boolean newJobStarted (final UUID connectionId , final long oldJobId ) {
409+ private Optional < Long > getNewJobId (final UUID connectionId , final long oldJobId ) {
409410 final long currentJobId = ConnectionManagerUtils .getCurrentJobId (client , connectionId );
410411 if (currentJobId == NON_RUNNING_JOB_ID || currentJobId == oldJobId ) {
411- return false ;
412+ return Optional . empty () ;
412413 } else {
413- return true ;
414+ return Optional . of ( currentJobId ) ;
414415 }
415416 }
416417
@@ -426,16 +427,7 @@ public ManualOperationResult synchronousResetConnection(final UUID connectionId,
426427 return resetResult ;
427428 }
428429
429- try {
430- ConnectionManagerUtils .getConnectionManagerWorkflow (client , connectionId );
431- } catch (final Exception e ) {
432- log .error ("Encountered exception retrieving workflow after reset." , e );
433- return new ManualOperationResult (
434- Optional .of (e .getMessage ()),
435- Optional .empty ());
436- }
437-
438- final long oldJobId = ConnectionManagerUtils .getCurrentJobId (client , connectionId );
430+ final long resetJobId = resetResult .getJobId ().get ();
439431
440432 do {
441433 try {
@@ -445,15 +437,13 @@ public ManualOperationResult synchronousResetConnection(final UUID connectionId,
445437 Optional .of ("Didn't manage to reset a sync for: " + connectionId ),
446438 Optional .empty ());
447439 }
448- } while (ConnectionManagerUtils .getCurrentJobId (client , connectionId ) == oldJobId );
440+ } while (ConnectionManagerUtils .getCurrentJobId (client , connectionId ) == resetJobId );
449441
450442 log .info ("End of reset" );
451443
452- final long jobId = ConnectionManagerUtils .getCurrentJobId (client , connectionId );
453-
454444 return new ManualOperationResult (
455445 Optional .empty (),
456- Optional .of (jobId ));
446+ Optional .of (resetJobId ));
457447 }
458448
459449 private <T > T getWorkflowStub (final Class <T > workflowClass , final TemporalJobType jobType ) {
0 commit comments