From 07cdcfa402fcfc2b83387bf94822294f175199fc Mon Sep 17 00:00:00 2001 From: Ben Christensen Date: Mon, 10 Mar 2014 22:14:59 -0700 Subject: [PATCH] Restore HystrixContext* Constructors without ConcurrencyStrategy In fixing the bug in 1.3.10 I accidentally changed the public constructors which would break anyone using them. Restoring them and using the default ConcurrencyStrategy available via plugin. --- .../strategy/concurrency/HystrixContexSchedulerAction.java | 5 +++++ .../strategy/concurrency/HystrixContextCallable.java | 6 ++++++ .../strategy/concurrency/HystrixContextRunnable.java | 6 ++++++ 3 files changed, 17 insertions(+) diff --git a/hystrix-core/src/main/java/com/netflix/hystrix/strategy/concurrency/HystrixContexSchedulerAction.java b/hystrix-core/src/main/java/com/netflix/hystrix/strategy/concurrency/HystrixContexSchedulerAction.java index 298304dc6..401530f7e 100644 --- a/hystrix-core/src/main/java/com/netflix/hystrix/strategy/concurrency/HystrixContexSchedulerAction.java +++ b/hystrix-core/src/main/java/com/netflix/hystrix/strategy/concurrency/HystrixContexSchedulerAction.java @@ -22,6 +22,7 @@ import rx.functions.Action1; import rx.functions.Func2; +import com.netflix.hystrix.strategy.HystrixPlugins; import com.netflix.hystrix.strategy.concurrency.HystrixContextScheduler.HystrixContextInnerScheduler; /** @@ -51,6 +52,10 @@ public class HystrixContexSchedulerAction implements Action1 { */ private final AtomicReference t1Holder = new AtomicReference(); + public HystrixContexSchedulerAction(Action1 action) { + this(HystrixPlugins.getInstance().getConcurrencyStrategy(), action); + } + public HystrixContexSchedulerAction(final HystrixConcurrencyStrategy concurrencyStrategy, Action1 action) { this.actual = action; this.parentThreadState = HystrixRequestContext.getContextForCurrentThread(); diff --git a/hystrix-core/src/main/java/com/netflix/hystrix/strategy/concurrency/HystrixContextCallable.java b/hystrix-core/src/main/java/com/netflix/hystrix/strategy/concurrency/HystrixContextCallable.java index eefb31df0..35ff1c897 100644 --- a/hystrix-core/src/main/java/com/netflix/hystrix/strategy/concurrency/HystrixContextCallable.java +++ b/hystrix-core/src/main/java/com/netflix/hystrix/strategy/concurrency/HystrixContextCallable.java @@ -17,6 +17,8 @@ import java.util.concurrent.Callable; +import com.netflix.hystrix.strategy.HystrixPlugins; + /** * Wrapper around {@link Callable} that manages the {@link HystrixRequestContext} initialization and cleanup for the execution of the {@link Callable} * @@ -30,6 +32,10 @@ public class HystrixContextCallable implements Callable { private final Callable actual; private final HystrixRequestContext parentThreadState; + public HystrixContextCallable(Callable actual) { + this(HystrixPlugins.getInstance().getConcurrencyStrategy(), actual); + } + public HystrixContextCallable(HystrixConcurrencyStrategy concurrencyStrategy, Callable actual) { this.actual = concurrencyStrategy.wrapCallable(actual); this.parentThreadState = HystrixRequestContext.getContextForCurrentThread(); diff --git a/hystrix-core/src/main/java/com/netflix/hystrix/strategy/concurrency/HystrixContextRunnable.java b/hystrix-core/src/main/java/com/netflix/hystrix/strategy/concurrency/HystrixContextRunnable.java index 5f9cde7d3..3c36addd4 100644 --- a/hystrix-core/src/main/java/com/netflix/hystrix/strategy/concurrency/HystrixContextRunnable.java +++ b/hystrix-core/src/main/java/com/netflix/hystrix/strategy/concurrency/HystrixContextRunnable.java @@ -17,6 +17,8 @@ import java.util.concurrent.Callable; +import com.netflix.hystrix.strategy.HystrixPlugins; + /** * Wrapper around {@link Runnable} that manages the {@link HystrixRequestContext} initialization and cleanup for the execution of the {@link Runnable} * @@ -27,6 +29,10 @@ public class HystrixContextRunnable implements Runnable { private final Callable actual; private final HystrixRequestContext parentThreadState; + public HystrixContextRunnable(Runnable actual) { + this(HystrixPlugins.getInstance().getConcurrencyStrategy(), actual); + } + public HystrixContextRunnable(HystrixConcurrencyStrategy concurrencyStrategy, final Runnable actual) { this.actual = concurrencyStrategy.wrapCallable(new Callable() {