@@ -714,14 +714,8 @@ public void checkpointRestore() {
714714 */
715715 private class CracResourceAdapter implements org .crac .Resource {
716716
717- private CyclicBarrier stepToRestore = new CyclicBarrier (2 );
718- private CyclicBarrier finishRestore = new CyclicBarrier (2 );
719-
720- private void preventShutdown () {
721- waitBarrier (this .stepToRestore );
722- // Checkpoint happens here
723- waitBarrier (this .finishRestore );
724- }
717+ private final CyclicBarrier beforeCheckpointBarrier = new CyclicBarrier (2 );
718+ private final CyclicBarrier afterRestoreBarrier = new CyclicBarrier (2 );
725719
726720 @ Override
727721 public void beforeCheckpoint (org .crac .Context <? extends org .crac .Resource > context ) {
@@ -733,39 +727,35 @@ public void beforeCheckpoint(org.crac.Context<? extends org.crac.Resource> conte
733727 stopForRestart ();
734728 }
735729
730+ private void preventShutdown () {
731+ awaitBarrier (this .beforeCheckpointBarrier );
732+ // Checkpoint happens here
733+ awaitBarrier (this .afterRestoreBarrier );
734+ }
735+
736736 @ Override
737737 public void afterRestore (org .crac .Context <? extends org .crac .Resource > context ) {
738738 // Unlock barrier for beforeCheckpoint
739- try {
740- this .stepToRestore .await ();
741- }
742- catch (Exception ex ) {
743- logger .trace ("Exception from stepToRestore barrier" , ex );
744- }
739+ awaitBarrier (this .beforeCheckpointBarrier );
745740
746741 logger .info ("Restarting Spring-managed lifecycle beans after JVM restore" );
747742 restartAfterStop ();
748743
749744 // Unlock barrier for afterRestore to shutdown "prevent-shutdown" thread
750- try {
751- this .finishRestore .await ();
752- }
753- catch (Exception ex ) {
754- logger .trace ("Exception from stepToRestore barrier" , ex );
755- }
745+ awaitBarrier (this .afterRestoreBarrier );
756746
757747 if (!checkpointOnRefresh ) {
758748 logger .info ("Spring-managed lifecycle restart completed (restored JVM running for " +
759749 CRaCMXBean .getCRaCMXBean ().getUptimeSinceRestore () + " ms)" );
760750 }
761751 }
762752
763- private void waitBarrier (CyclicBarrier barrier ) {
753+ private void awaitBarrier (CyclicBarrier barrier ) {
764754 try {
765755 barrier .await ();
766756 }
767757 catch (Exception ex ) {
768- logger .trace ("Exception from prevent-shutdown barrier" , ex );
758+ logger .trace ("Exception from barrier" , ex );
769759 }
770760 }
771761 }
0 commit comments