From 473a2e2a4762c6f840af54bbeb264cc27d8a1a9e Mon Sep 17 00:00:00 2001 From: Fritz Elfert Date: Tue, 27 Jan 2026 21:29:16 +0100 Subject: [PATCH] Fix NPE when deleting a JClouds node. When deleting a JClouds node that was restored from disk after a jenkins restart, hudson.model.Slave.drainLabelsToTrim() failed with an NPE, because previouslyAssignedLabels was NULL. Reason for that was: JCLoudsSlave provided a readResolve() which did not override. Therefore, hudson.model.Slave.readResolve() was never called when reloading from disk. --- .../java/jenkins/plugins/jclouds/compute/JCloudsSlave.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/main/java/jenkins/plugins/jclouds/compute/JCloudsSlave.java b/src/main/java/jenkins/plugins/jclouds/compute/JCloudsSlave.java index 63f0f149..1e67573f 100644 --- a/src/main/java/jenkins/plugins/jclouds/compute/JCloudsSlave.java +++ b/src/main/java/jenkins/plugins/jclouds/compute/JCloudsSlave.java @@ -135,11 +135,12 @@ public JCloudsSlave( phm = new PhoneHomeMonitor(waitPhoneHome, waitPhoneHomeTimeout); } + @Override protected Object readResolve() { if (null == phm) { phm = new PhoneHomeMonitor(waitPhoneHome, waitPhoneHomeTimeout); } - return this; + return super.readResolve(); } /**