Repository: camel Updated Branches: refs/heads/master dff9f28cd -> ed61ae084
CAMEL-10707: fixing suspend/resume Project: http://git-wip-us.apache.org/repos/asf/camel/repo Commit: http://git-wip-us.apache.org/repos/asf/camel/commit/ed61ae08 Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/ed61ae08 Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/ed61ae08 Branch: refs/heads/master Commit: ed61ae08467ffa6b3fb515140cca75381aa9020a Parents: dff9f28 Author: Nicola Ferraro <[email protected]> Authored: Tue Jan 17 09:56:57 2017 +0100 Committer: Nicola Ferraro <[email protected]> Committed: Tue Jan 17 09:56:57 2017 +0100 ---------------------------------------------------------------------- .../src/main/java/org/apache/camel/Suspendable.java | 2 ++ .../main/java/org/apache/camel/util/ServiceHelper.java | 12 ++++++------ 2 files changed, 8 insertions(+), 6 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/camel/blob/ed61ae08/camel-core/src/main/java/org/apache/camel/Suspendable.java ---------------------------------------------------------------------- diff --git a/camel-core/src/main/java/org/apache/camel/Suspendable.java b/camel-core/src/main/java/org/apache/camel/Suspendable.java index c1030cd..ae0f5ab 100644 --- a/camel-core/src/main/java/org/apache/camel/Suspendable.java +++ b/camel-core/src/main/java/org/apache/camel/Suspendable.java @@ -24,6 +24,8 @@ package org.apache.camel; * The {@link org.apache.camel.support.ServiceSupport} implementation that most Camel components / endpoints etc use * as base class is a {@link SuspendableService} but the actual implementation may not have special logic for suspend. * Therefore this marker interface is introduced to indicate when the implementation has special code for suspension. + * <p/> + * It is assumed that a service having a custom logic for suspension implements also a custom logic for resuming. * * @see SuspendableService */ http://git-wip-us.apache.org/repos/asf/camel/blob/ed61ae08/camel-core/src/main/java/org/apache/camel/util/ServiceHelper.java ---------------------------------------------------------------------- diff --git a/camel-core/src/main/java/org/apache/camel/util/ServiceHelper.java b/camel-core/src/main/java/org/apache/camel/util/ServiceHelper.java index e0b4d77..91010dc 100644 --- a/camel-core/src/main/java/org/apache/camel/util/ServiceHelper.java +++ b/camel-core/src/main/java/org/apache/camel/util/ServiceHelper.java @@ -291,13 +291,13 @@ public final class ServiceHelper { /** * Resumes the given {@code service}. * <p/> - * If {@code service} is a {@link org.apache.camel.SuspendableService} then - * it's {@link org.apache.camel.SuspendableService#resume()} is called but + * If {@code service} is both {@link org.apache.camel.Suspendable} and {@link org.apache.camel.SuspendableService} then + * its {@link org.apache.camel.SuspendableService#resume()} is called but * <b>only</b> if {@code service} is already {@link #isSuspended(Object) * suspended}. * <p/> * If {@code service} is <b>not</b> a - * {@link org.apache.camel.SuspendableService} then it's + * {@link org.apache.camel.Suspendable} and {@link org.apache.camel.SuspendableService} then its * {@link org.apache.camel.Service#start()} is called. * <p/> * Calling this method has no effect if {@code service} is {@code null}. @@ -310,7 +310,7 @@ public final class ServiceHelper { * @see #startService(Service) */ public static boolean resumeService(Object service) throws Exception { - if (service instanceof SuspendableService) { + if (service instanceof Suspendable && service instanceof SuspendableService) { SuspendableService ss = (SuspendableService) service; if (ss.isSuspended()) { LOG.debug("Resuming service {}", service); @@ -363,12 +363,12 @@ public final class ServiceHelper { * Suspends the given {@code service}. * <p/> * If {@code service} is both {@link org.apache.camel.Suspendable} and {@link org.apache.camel.SuspendableService} then - * it's {@link org.apache.camel.SuspendableService#suspend()} is called but + * its {@link org.apache.camel.SuspendableService#suspend()} is called but * <b>only</b> if {@code service} is <b>not</b> already * {@link #isSuspended(Object) suspended}. * <p/> * If {@code service} is <b>not</b> a - * {@link org.apache.camel.Suspendable} and {@link org.apache.camel.SuspendableService} then it's + * {@link org.apache.camel.Suspendable} and {@link org.apache.camel.SuspendableService} then its * {@link org.apache.camel.Service#stop()} is called. * <p/> * Calling this method has no effect if {@code service} is {@code null}.
