Skip to content

Commit c501ff7

Browse files
committed
Made HystrixRequestContext Closeable so we can leverage try-with-resources on java 7 and forward
1 parent d8284ff commit c501ff7

File tree

2 files changed

+17
-4
lines changed

2 files changed

+17
-4
lines changed

hystrix-core/src/main/java/com/netflix/hystrix/strategy/concurrency/HystrixRequestContext.java

Lines changed: 15 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515
*/
1616
package com.netflix.hystrix.strategy.concurrency;
1717

18+
import java.io.Closeable;
1819
import java.util.concurrent.ConcurrentHashMap;
1920

2021
import com.netflix.hystrix.HystrixCollapser;
@@ -60,7 +61,7 @@
6061
* <p>
6162
* <b>NOTE:</b> If <code>initializeContext()</code> is called then <code>shutdown()</code> must also be called or a memory leak will occur.
6263
*/
63-
public class HystrixRequestContext {
64+
public class HystrixRequestContext implements Closeable {
6465

6566
/*
6667
* ThreadLocal on each thread will hold the HystrixRequestVariableState.
@@ -142,4 +143,16 @@ public void shutdown() {
142143
state = null;
143144
}
144145
}
145-
}
146+
147+
/**
148+
* Shutdown {@link HystrixRequestVariableDefault} objects in this context.
149+
* <p>
150+
* <b>NOTE: This must be called if <code>initializeContext()</code> was called or a memory leak will occur.</b>
151+
*
152+
* This method invokes <code>shutdown()</code>
153+
*/
154+
public void close() {
155+
shutdown();
156+
}
157+
158+
}

hystrix-core/src/test/java/com/netflix/hystrix/HystrixCollapserTest.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -369,7 +369,7 @@ public void testRequestVariableLifecycle1() throws Exception {
369369
assertEquals(1, cmdIterator.next().getNumberCollapsed());
370370

371371
// simulate request lifecycle
372-
requestContext.shutdown();
372+
requestContext.close();
373373

374374
System.out.println("timer.tasks.size() B: " + timer.tasks.size());
375375

@@ -452,7 +452,7 @@ public void run() {
452452
assertEquals(1, cmdIterator.next().getNumberCollapsed());
453453

454454
// simulate request lifecycle
455-
requestContext.shutdown();
455+
requestContext.close();
456456

457457
HystrixRequestVariableHolder<RequestCollapser<?, ?, ?>> rv = RequestCollapserFactory.getRequestVariable(new TestRequestCollapser(timer, 1).getCollapserKey().name());
458458

0 commit comments

Comments
 (0)