4949import java .util .List ;
5050import java .util .Map ;
5151import java .util .concurrent .TimeUnit ;
52+ import java .util .concurrent .atomic .AtomicBoolean ;
5253import java .util .logging .Level ;
5354import java .util .logging .Logger ;
5455import java .util .stream .Collectors ;
@@ -69,7 +70,7 @@ public class KubernetesLauncher extends JNLPLauncher {
6970
7071 private static final Logger LOGGER = Logger .getLogger (KubernetesLauncher .class .getName ());
7172
72- private boolean launched ;
73+ private final AtomicBoolean launched = new AtomicBoolean ( false ) ;
7374
7475 /**
7576 * Provisioning exception if any.
@@ -87,8 +88,8 @@ public KubernetesLauncher() {
8788 }
8889
8990 @ Override
90- public synchronized boolean isLaunchSupported () {
91- return !launched ;
91+ public boolean isLaunchSupported () {
92+ return !launched . get () ;
9293 }
9394
9495 @ Override
@@ -105,7 +106,7 @@ public synchronized void launch(SlaveComputer computer, TaskListener listener) {
105106 if (node == null ) {
106107 throw new IllegalStateException ("Node has been removed, cannot launch " + computer .getName ());
107108 }
108- if (launched ) {
109+ if (launched . get () ) {
109110 LOGGER .log (INFO , "Agent has already been launched, activating: {0}" , node .getNodeName ());
110111 computer .setAcceptingTasks (true );
111112 return ;
@@ -241,7 +242,7 @@ else if (httpCode == 409 && e.getMessage().contains("Operation cannot be fulfill
241242 }
242243
243244 computer .setAcceptingTasks (true );
244- launched = true ;
245+ launched . set ( true ) ;
245246 try {
246247 // We need to persist the "launched" setting...
247248 node .save ();
0 commit comments