@@ -280,10 +280,11 @@ private void launch(ComputeEngineComputer computer, TaskListener listener) {
280280 return ;
281281 }
282282
283- final Connection conn ;
283+ Connection conn = null ;
284284 Optional <Connection > cleanupConn ;
285285 PrintStream logger = listener .getLogger ();
286286 logInfo (computer , listener , "Launching instance: " + node .getNodeName ());
287+ Session sess = null ;
287288 try {
288289 cleanupConn = setupConnection (node , computer , listener );
289290 if (!cleanupConn .isPresent ()) {
@@ -298,16 +299,24 @@ private void launch(ComputeEngineComputer computer, TaskListener listener) {
298299 copyAgentJar (computer , conn , listener , jenkinsDir );
299300 String launchString = getJavaLaunchString (javaExecPath , jenkinsDir );
300301 logInfo (computer , listener , "Launching Jenkins agent via plugin SSH: " + launchString );
301- final Session sess = conn .openSession ();
302+ sess = conn .openSession ();
302303 sess .execCommand (launchString );
304+ Session finalSess = sess ;
305+ Connection finalConn = conn ;
303306 computer .setChannel (sess .getStdout (), sess .getStdin (), logger , new Channel .Listener () {
304307 @ Override
305308 public void onClosed (Channel channel , IOException cause ) {
306- sess .close ();
307- conn .close ();
309+ finalSess .close ();
310+ finalConn .close ();
308311 }
309312 });
310313 } catch (Exception e ) {
314+ if (sess != null ) {
315+ sess .close ();
316+ }
317+ if (conn != null ) {
318+ conn .close ();
319+ }
311320 logException (computer , listener , "Error: " , e );
312321 }
313322 }
0 commit comments