From f31ea1c5b5588a0c41cf751ff1ebb5b4ccf27d46 Mon Sep 17 00:00:00 2001 From: jcheng422 Date: Sun, 16 Aug 2026 22:22:37 -0400 Subject: [PATCH] Fix RestartPolicy.noRestart() so it can disable restart on existing containers noRestart() returned a policy with an empty Name (""), which the Docker Engine update endpoint ignores: it only applies RestartPolicy when Name != "". As a result an existing container could not be switched from always/on-failure back to no-restart via updateContainerCmd. Return Name "no" instead - a valid "none" policy (RestartPolicy.IsNone() is true for both "" and "no") that the daemon actually applies. Update RestartPolicySerializingTest to match; this also matches what modern Docker sends for `docker run --restart no`. --- .../java/com/github/dockerjava/api/model/RestartPolicy.java | 2 +- .../dockerjava/api/model/RestartPolicySerializingTest.java | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/docker-java-api/src/main/java/com/github/dockerjava/api/model/RestartPolicy.java b/docker-java-api/src/main/java/com/github/dockerjava/api/model/RestartPolicy.java index 53453915c..c50623ba5 100644 --- a/docker-java-api/src/main/java/com/github/dockerjava/api/model/RestartPolicy.java +++ b/docker-java-api/src/main/java/com/github/dockerjava/api/model/RestartPolicy.java @@ -51,7 +51,7 @@ private RestartPolicy(int maximumRetryCount, String name) { * Do not restart the container if it dies. (default) */ public static RestartPolicy noRestart() { - return new RestartPolicy(); + return new RestartPolicy(0, "no"); } /** diff --git a/docker-java/src/test/java/com/github/dockerjava/api/model/RestartPolicySerializingTest.java b/docker-java/src/test/java/com/github/dockerjava/api/model/RestartPolicySerializingTest.java index c9c6a897d..9fa32b008 100644 --- a/docker-java/src/test/java/com/github/dockerjava/api/model/RestartPolicySerializingTest.java +++ b/docker-java/src/test/java/com/github/dockerjava/api/model/RestartPolicySerializingTest.java @@ -15,7 +15,7 @@ public class RestartPolicySerializingTest { // --restart no public void noRestart() throws Exception { String json = JSONTestHelper.getMapper().writeValueAsString(RestartPolicy.noRestart()); - assertEquals("{\"MaximumRetryCount\":0,\"Name\":\"\"}", json); + assertEquals("{\"MaximumRetryCount\":0,\"Name\":\"no\"}", json); } @Test