From 85382a14e03662d09d6834ebbe4d0f169fe1676c Mon Sep 17 00:00:00 2001 From: shawkins Date: Mon, 28 Jun 2021 19:34:16 -0400 Subject: [PATCH] removing declared interruptedexception --- CHANGELOG.md | 2 +- .../kubernetes/client/dsl/Waitable.java | 4 ++-- .../client/dsl/base/BaseOperation.java | 22 +++++-------------- ...WatchDeleteRecreateWaitApplicableImpl.java | 18 +++++++++++---- ...hDeleteRecreateWaitApplicableListImpl.java | 7 ++++-- .../core/v1/ServiceOperationsImpl.java | 2 +- .../client/utils/PodOperationUtil.java | 3 --- .../kubernetes/examples/JobExample.java | 8 +++---- 8 files changed, 33 insertions(+), 33 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 9a2f0f97dcf..5b12f73b48a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -55,7 +55,7 @@ ##### DSL Changes: - #3127 `StatusUpdatable.updateStatus` deprecated, please use patchStatus, editStatus, or replaceStatus - #3239 deprecated methods on SharedInformerFactory directly dealing with the OperationContext, withName, and withNamespace - the Informable interface should be used instead. -- #3271 `Waitable.waitUntilReady` and `Waitable.waitUntilCondition` with throw a KubernetesClientTimeoutException instead of an IllegalArgumentException on timeout. +- #3271 `Waitable.waitUntilReady` and `Waitable.waitUntilCondition` with throw a KubernetesClientTimeoutException instead of an IllegalArgumentException on timeout. The methods will also no longer throw an interrupted exception. `Waitable.withWaitRetryBackoff` and the associated constants are now deprecated. ##### Util Changes: diff --git a/kubernetes-client/src/main/java/io/fabric8/kubernetes/client/dsl/Waitable.java b/kubernetes-client/src/main/java/io/fabric8/kubernetes/client/dsl/Waitable.java index 4c7544ee7c7..ef331895ee8 100644 --- a/kubernetes-client/src/main/java/io/fabric8/kubernetes/client/dsl/Waitable.java +++ b/kubernetes-client/src/main/java/io/fabric8/kubernetes/client/dsl/Waitable.java @@ -31,9 +31,9 @@ public interface Waitable { @Deprecated double DEFAULT_BACKOFF_MULTIPLIER = 2d; - T waitUntilReady(long amount, TimeUnit timeUnit) throws InterruptedException; + T waitUntilReady(long amount, TimeUnit timeUnit); - T waitUntilCondition(Predicate

condition, long amount, TimeUnit timeUnit) throws InterruptedException; + T waitUntilCondition(Predicate

condition, long amount, TimeUnit timeUnit); /** * Configure the backoff strategy to use when waiting for conditions, in case the watcher encounters a retryable error. diff --git a/kubernetes-client/src/main/java/io/fabric8/kubernetes/client/dsl/base/BaseOperation.java b/kubernetes-client/src/main/java/io/fabric8/kubernetes/client/dsl/base/BaseOperation.java index 2a0159c1468..14dffb096f3 100755 --- a/kubernetes-client/src/main/java/io/fabric8/kubernetes/client/dsl/base/BaseOperation.java +++ b/kubernetes-client/src/main/java/io/fabric8/kubernetes/client/dsl/base/BaseOperation.java @@ -18,8 +18,6 @@ import io.fabric8.kubernetes.api.model.ObjectReference; import io.fabric8.kubernetes.client.dsl.WritableOperation; import io.fabric8.kubernetes.client.utils.CreateOrReplaceHelper; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; import io.fabric8.kubernetes.api.builder.TypedVisitor; import io.fabric8.kubernetes.api.builder.Visitor; @@ -95,7 +93,6 @@ public class BaseOperation, Resource { - private static final Logger LOG = LoggerFactory.getLogger(BaseOperation.class); private static final String INVOLVED_OBJECT_NAME = "involvedObject.name"; private static final String INVOLVED_OBJECT_NAMESPACE = "involvedObject.namespace"; private static final String INVOLVED_OBJECT_KIND = "involvedObject.kind"; @@ -405,15 +402,7 @@ public final T createOrReplace(T... items) { CreateOrReplaceHelper createOrReplaceHelper = new CreateOrReplaceHelper<>( this::create, this::replace, - m -> { - try { - return waitUntilCondition(Objects::nonNull, 1, TimeUnit.SECONDS); - } catch (InterruptedException interruptedException) { - LOG.warn("Interrupted while waiting for the resource to be created or replaced. Gracefully assuming the resource has not been created and doesn't exist. ({})", interruptedException.getMessage()); - Thread.currentThread().interrupt(); - } - return null; - }, + m -> waitUntilCondition(Objects::nonNull, 1, TimeUnit.SECONDS), m -> fromServer().get() ); @@ -1113,14 +1102,12 @@ public final Boolean isReady() { } @Override - public T waitUntilReady(long amount, TimeUnit timeUnit) throws InterruptedException { + public T waitUntilReady(long amount, TimeUnit timeUnit) { return waitUntilCondition(resource -> Objects.nonNull(resource) && getReadiness().isReady(resource), amount, timeUnit); } @Override - public T waitUntilCondition(Predicate condition, long amount, TimeUnit timeUnit) - throws InterruptedException { - + public T waitUntilCondition(Predicate condition, long amount, TimeUnit timeUnit) { CompletableFuture future = new CompletableFuture<>(); // tests the condition, trapping any exceptions Consumer tester = obj -> { @@ -1158,6 +1145,9 @@ public void onDelete(T obj, boolean deletedFinalStateUnknown) { future.whenComplete((r,t) -> informer.stop()); informer.run(); return future.get(amount, timeUnit); + } catch (InterruptedException e) { + Thread.currentThread().interrupt(); + throw KubernetesClientException.launderThrowable(e.getCause()); } catch (ExecutionException e) { throw KubernetesClientException.launderThrowable(e.getCause()); } catch (TimeoutException e) { diff --git a/kubernetes-client/src/main/java/io/fabric8/kubernetes/client/dsl/internal/NamespaceVisitFromServerGetWatchDeleteRecreateWaitApplicableImpl.java b/kubernetes-client/src/main/java/io/fabric8/kubernetes/client/dsl/internal/NamespaceVisitFromServerGetWatchDeleteRecreateWaitApplicableImpl.java index 554cf1c1cd5..273a6c31ba4 100644 --- a/kubernetes-client/src/main/java/io/fabric8/kubernetes/client/dsl/internal/NamespaceVisitFromServerGetWatchDeleteRecreateWaitApplicableImpl.java +++ b/kubernetes-client/src/main/java/io/fabric8/kubernetes/client/dsl/internal/NamespaceVisitFromServerGetWatchDeleteRecreateWaitApplicableImpl.java @@ -250,10 +250,15 @@ public final Boolean isReady() { } @Override - public HasMetadata waitUntilReady(long amount, TimeUnit timeUnit) throws InterruptedException { + public HasMetadata waitUntilReady(long amount, TimeUnit timeUnit) { HasMetadata meta = acceptVisitors(asHasMetadata(get()), visitors); ResourceHandler h = handlerOf(meta); - return h.waitUntilReady(client, config, meta.getMetadata().getNamespace(), meta, amount, timeUnit); + try { + return h.waitUntilReady(client, config, meta.getMetadata().getNamespace(), meta, amount, timeUnit); + } catch (InterruptedException e) { + Thread.currentThread().interrupt(); + throw KubernetesClientException.launderThrowable(e); + } } @Override @@ -263,10 +268,15 @@ public VisitFromServerWritable dryRun(boolean isDryRun) { @Override public HasMetadata waitUntilCondition(Predicate condition, long amount, - TimeUnit timeUnit) throws InterruptedException { + TimeUnit timeUnit) { HasMetadata meta = acceptVisitors(asHasMetadata(get()), visitors); ResourceHandler h = handlerOf(meta); - return h.waitUntilCondition(client, config, meta.getMetadata().getNamespace(), meta, condition, amount, timeUnit); + try { + return h.waitUntilCondition(client, config, meta.getMetadata().getNamespace(), meta, condition, amount, timeUnit); + } catch (InterruptedException e) { + Thread.currentThread().interrupt(); + throw KubernetesClientException.launderThrowable(e); + } } diff --git a/kubernetes-client/src/main/java/io/fabric8/kubernetes/client/dsl/internal/NamespaceVisitFromServerGetWatchDeleteRecreateWaitApplicableListImpl.java b/kubernetes-client/src/main/java/io/fabric8/kubernetes/client/dsl/internal/NamespaceVisitFromServerGetWatchDeleteRecreateWaitApplicableListImpl.java index a09aeffff16..d4a563bfb02 100644 --- a/kubernetes-client/src/main/java/io/fabric8/kubernetes/client/dsl/internal/NamespaceVisitFromServerGetWatchDeleteRecreateWaitApplicableListImpl.java +++ b/kubernetes-client/src/main/java/io/fabric8/kubernetes/client/dsl/internal/NamespaceVisitFromServerGetWatchDeleteRecreateWaitApplicableListImpl.java @@ -83,14 +83,14 @@ public class NamespaceVisitFromServerGetWatchDeleteRecreateWaitApplicableListImp private final Boolean cascading; @Override - public List waitUntilReady(final long amount, final TimeUnit timeUnit) throws InterruptedException { + public List waitUntilReady(final long amount, final TimeUnit timeUnit) { return waitUntilCondition(resource -> Objects.nonNull(resource) && getReadiness().isReady(resource), amount, timeUnit); } @Override public List waitUntilCondition(Predicate condition, long amount, - TimeUnit timeUnit) throws InterruptedException { + TimeUnit timeUnit) { List items = acceptVisitors(asHasMetadata(item, true), visitors); if (items.isEmpty()) { return Collections.emptyList(); @@ -126,6 +126,9 @@ public List waitUntilCondition(Predicate condition, } catch (ExecutionException e) { itemsWithConditionNotMatched.add(meta); logAsNotReady(e.getCause(), meta); + } catch (InterruptedException e) { + Thread.currentThread().interrupt(); + throw KubernetesClientException.launderThrowable(e); } ++i; } diff --git a/kubernetes-client/src/main/java/io/fabric8/kubernetes/client/dsl/internal/core/v1/ServiceOperationsImpl.java b/kubernetes-client/src/main/java/io/fabric8/kubernetes/client/dsl/internal/core/v1/ServiceOperationsImpl.java index b5250d873fd..b2842ca6dae 100644 --- a/kubernetes-client/src/main/java/io/fabric8/kubernetes/client/dsl/internal/core/v1/ServiceOperationsImpl.java +++ b/kubernetes-client/src/main/java/io/fabric8/kubernetes/client/dsl/internal/core/v1/ServiceOperationsImpl.java @@ -58,7 +58,7 @@ public ServiceOperationsImpl newInstance(OperationContext context) { } @Override - public Service waitUntilReady(long amount, TimeUnit timeUnit) throws InterruptedException { + public Service waitUntilReady(long amount, TimeUnit timeUnit) { long started = System.nanoTime(); super.waitUntilReady(amount, timeUnit); long alreadySpent = System.nanoTime() - started; diff --git a/kubernetes-client/src/main/java/io/fabric8/kubernetes/client/utils/PodOperationUtil.java b/kubernetes-client/src/main/java/io/fabric8/kubernetes/client/utils/PodOperationUtil.java index e835e1d926c..c6456b862de 100644 --- a/kubernetes-client/src/main/java/io/fabric8/kubernetes/client/utils/PodOperationUtil.java +++ b/kubernetes-client/src/main/java/io/fabric8/kubernetes/client/utils/PodOperationUtil.java @@ -81,9 +81,6 @@ public static void waitUntilReadyBeforeFetchingLogs(PodResource podOperatio if (pod != null && pod.getStatus() != null && pod.getStatus().getPhase().equals("Pending")) { podOperation.waitUntilReady(logWaitTimeout, TimeUnit.SECONDS); } - } catch (InterruptedException interruptedException) { - Thread.currentThread().interrupt(); - LOG.debug("Interrupted while waiting for Pod to become Ready: {}", interruptedException.getMessage()); } catch (Exception otherException) { LOG.debug("Error while waiting for Pod to become Ready: {}", otherException.getMessage()); } diff --git a/kubernetes-examples/src/main/java/io/fabric8/kubernetes/examples/JobExample.java b/kubernetes-examples/src/main/java/io/fabric8/kubernetes/examples/JobExample.java index c0babe4496e..967a07899cf 100644 --- a/kubernetes-examples/src/main/java/io/fabric8/kubernetes/examples/JobExample.java +++ b/kubernetes-examples/src/main/java/io/fabric8/kubernetes/examples/JobExample.java @@ -18,7 +18,10 @@ import io.fabric8.kubernetes.api.model.PodList; import io.fabric8.kubernetes.api.model.batch.v1.Job; import io.fabric8.kubernetes.api.model.batch.v1.JobBuilder; -import io.fabric8.kubernetes.client.*; +import io.fabric8.kubernetes.client.ConfigBuilder; +import io.fabric8.kubernetes.client.DefaultKubernetesClient; +import io.fabric8.kubernetes.client.KubernetesClient; +import io.fabric8.kubernetes.client.KubernetesClientException; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -74,9 +77,6 @@ public static void main(String[] args) { } catch (KubernetesClientException e) { logger.error("Unable to create job", e); - } catch (InterruptedException interruptedException) { - logger.warn("Interrupted while waiting for the job to be ready: {}", interruptedException.getMessage()); - Thread.currentThread().interrupt(); } } }