diff --git a/CHANGELOG.md b/CHANGELOG.md index 548df52f29d..f831bd10f43 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -10,6 +10,7 @@ * Fix #4534: Java Generator CLI default handling of skipGeneratedAnnotations * Fix #4535: The shell command string will now have single quotes sanitized * Fix #4543: (Java Generator) additionalProperties JsonAny setter method generated as setAdditionalProperty +* Fix #4641: fixed regression with missing initial watch event * Fix #4547: preventing timing issues with leader election cancel * Fix #4540: treating GenericKubernetesResource and RawExtension as buildable * Fix #4569: fixing jdk httpclient regression with 0 timeouts diff --git a/junit/kubernetes-junit-jupiter/src/main/java/io/fabric8/junit/jupiter/KubernetesNamespacedTestExtension.java b/junit/kubernetes-junit-jupiter/src/main/java/io/fabric8/junit/jupiter/KubernetesNamespacedTestExtension.java index ddf5da43c80..07b06d6efe8 100644 --- a/junit/kubernetes-junit-jupiter/src/main/java/io/fabric8/junit/jupiter/KubernetesNamespacedTestExtension.java +++ b/junit/kubernetes-junit-jupiter/src/main/java/io/fabric8/junit/jupiter/KubernetesNamespacedTestExtension.java @@ -39,9 +39,6 @@ public class KubernetesNamespacedTestExtension implements BeforeAllCallback, BeforeEachCallback, AfterAllCallback { - private static final ExtensionContext.Namespace EXT_NAMESPACE = ExtensionContext.Namespace - .create(KubernetesNamespacedTestExtension.class); - @Override public void beforeAll(ExtensionContext context) throws Exception { final KubernetesClient client = new KubernetesClientBuilder().build(); @@ -82,7 +79,9 @@ static KubernetesClient getClient(ExtensionContext context) { } private static ExtensionContext.Store getStore(ExtensionContext context) { - return context.getRoot().getStore(EXT_NAMESPACE); + ExtensionContext.Namespace namespace = ExtensionContext.Namespace.create(KubernetesNamespacedTestExtension.class, + context.getRequiredTestClass()); + return context.getRoot().getStore(namespace); } /** diff --git a/kubernetes-client/src/main/java/io/fabric8/kubernetes/client/dsl/internal/WatchConnectionManager.java b/kubernetes-client/src/main/java/io/fabric8/kubernetes/client/dsl/internal/WatchConnectionManager.java index 3404f802be3..2be3ec994e3 100644 --- a/kubernetes-client/src/main/java/io/fabric8/kubernetes/client/dsl/internal/WatchConnectionManager.java +++ b/kubernetes-client/src/main/java/io/fabric8/kubernetes/client/dsl/internal/WatchConnectionManager.java @@ -55,6 +55,7 @@ public class WatchConnectionManager { this.websocketFuture = null; @@ -109,7 +111,7 @@ public CompletableFuture getWebsocketFuture() { @Override protected void onMessage(String message) { // for consistency we only want to process the message when we're open - if (this.websocketFuture != null) { + if (!closed) { super.onMessage(message); } } @@ -120,7 +122,7 @@ protected void start(URL url, Map headers) { Builder builder = client.newWebSocketBuilder(); headers.forEach(builder::header); builder.uri(URI.create(url.toString())); - + closed = false; this.websocketFuture = builder.buildAsync(this.listener).handle((w, t) -> { if (t != null) { if (t instanceof WebSocketHandshakeException) {