49
49
import java .util .List ;
50
50
import java .util .Map ;
51
51
import java .util .concurrent .TimeUnit ;
52
+ import java .util .concurrent .atomic .AtomicBoolean ;
52
53
import java .util .logging .Level ;
53
54
import java .util .logging .Logger ;
54
55
import java .util .stream .Collectors ;
@@ -69,7 +70,7 @@ public class KubernetesLauncher extends JNLPLauncher {
69
70
70
71
private static final Logger LOGGER = Logger .getLogger (KubernetesLauncher .class .getName ());
71
72
72
- private boolean launched ;
73
+ private final AtomicBoolean launched = new AtomicBoolean ( false ) ;
73
74
74
75
/**
75
76
* Provisioning exception if any.
@@ -87,8 +88,8 @@ public KubernetesLauncher() {
87
88
}
88
89
89
90
@ Override
90
- public synchronized boolean isLaunchSupported () {
91
- return !launched ;
91
+ public boolean isLaunchSupported () {
92
+ return !launched . get () ;
92
93
}
93
94
94
95
@ Override
@@ -105,7 +106,7 @@ public synchronized void launch(SlaveComputer computer, TaskListener listener) {
105
106
if (node == null ) {
106
107
throw new IllegalStateException ("Node has been removed, cannot launch " + computer .getName ());
107
108
}
108
- if (launched ) {
109
+ if (launched . get () ) {
109
110
LOGGER .log (INFO , "Agent has already been launched, activating: {0}" , node .getNodeName ());
110
111
computer .setAcceptingTasks (true );
111
112
return ;
@@ -241,7 +242,7 @@ else if (httpCode == 409 && e.getMessage().contains("Operation cannot be fulfill
241
242
}
242
243
243
244
computer .setAcceptingTasks (true );
244
- launched = true ;
245
+ launched . set ( true ) ;
245
246
try {
246
247
// We need to persist the "launched" setting...
247
248
node .save ();
0 commit comments