test_class.declarator: rule = new MockInitialContextRule(mock(Context.class))
test_class.modifier: @Rule
      public
test_class.original_string: @Rule
      public MockInitialContextRule rule = new MockInitialContextRule(mock(Context.class));
test_class.type: MockInitialContextRule
test_class.var_name: rule
test_class.declarator: concurrencyStrategy
test_class.modifier: private
test_class.original_string: private HystrixConcurrencyStrategyJsr236 concurrencyStrategy;
test_class.type: HystrixConcurrencyStrategyJsr236
test_class.var_name: concurrencyStrategy
test_class.declarator: mtf
test_class.modifier: private
test_class.original_string: private ManagedThreadFactory mtf;
test_class.type: ManagedThreadFactory
test_class.var_name: mtf
test_class.file: infrastructure/hystrix-jsr236/src/test/java/de/qaware/oss/hystrix/jsr236/HystrixConcurrencyStrategyJsr236Test.java
test_class.identifier: HystrixConcurrencyStrategyJsr236Test
test_case.body: @Test
      public void getNoManagedThreadPool() throws Exception {
          reset(rule.getContext());
          when(rule.getContext().lookup("java:concurrent/test")).thenReturn("NoManagedThreadPool");
  
          ThreadPoolExecutor threadPool = concurrencyStrategy.getThreadPool(HystrixThreadPoolKey.Factory.asKey("test"),
                  HystrixProperty.Factory.asProperty(10),
                  HystrixProperty.Factory.asProperty(10),
                  HystrixProperty.Factory.asProperty(60),
                  TimeUnit.SECONDS, new SynchronousQueue<>());
  
          assertThat(threadPool, is(notNullValue()));
          assertThat(threadPool.getThreadFactory(), not(mtf));
      }
test_case.class_method_signature: HystrixConcurrencyStrategyJsr236Test.getNoManagedThreadPool()
test_case.full_signature: @Test public void getNoManagedThreadPool()
test_case.identifier: getNoManagedThreadPool
test_case.invocations: reset getContext thenReturn when lookup getContext getThreadPool asKey asProperty asProperty asProperty assertThat is notNullValue assertThat getThreadFactory not
test_case.modifiers: @Test public
test_case.parameters: ()
test_case.return: void
test_case.signature: void getNoManagedThreadPool()
focal_class.declarator: LOGGER = LoggerFactory.getLogger(HystrixConcurrencyStrategyJsr236.class)
focal_class.modifier: private static final
focal_class.original_string: private static final Logger LOGGER = LoggerFactory.getLogger(HystrixConcurrencyStrategyJsr236.class);
focal_class.type: Logger
focal_class.var_name: LOGGER
focal_class.declarator: context
focal_class.modifier: private final
focal_class.original_string: private final Context context;
focal_class.type: Context
focal_class.var_name: context
focal_class.file: infrastructure/hystrix-jsr236/src/main/java/de/qaware/oss/hystrix/jsr236/HystrixConcurrencyStrategyJsr236.java
focal_class.identifier: HystrixConcurrencyStrategyJsr236
focal_class.class_method_signature: HystrixConcurrencyStrategyJsr236.HystrixConcurrencyStrategyJsr236()
focal_class.full_signature: public  HystrixConcurrencyStrategyJsr236()
focal_class.identifier: HystrixConcurrencyStrategyJsr236
focal_class.modifiers: public
focal_class.parameters: ()
focal_class.signature:  HystrixConcurrencyStrategyJsr236()
focal_class.class_method_signature: HystrixConcurrencyStrategyJsr236.getThreadPool(HystrixThreadPoolKey threadPoolKey,
                                              HystrixProperty<Integer> corePoolSize,
                                              HystrixProperty<Integer> maximumPoolSize,
                                              HystrixProperty<Integer> keepAliveTime,
                                              TimeUnit unit, BlockingQueue<Runnable> workQueue)
focal_class.full_signature: @Override public ThreadPoolExecutor getThreadPool(HystrixThreadPoolKey threadPoolKey,
                                              HystrixProperty<Integer> corePoolSize,
                                              HystrixProperty<Integer> maximumPoolSize,
                                              HystrixProperty<Integer> keepAliveTime,
                                              TimeUnit unit, BlockingQueue<Runnable> workQueue)
focal_class.identifier: getThreadPool
focal_class.modifiers: @Override public
focal_class.parameters: (HystrixThreadPoolKey threadPoolKey,
                                              HystrixProperty<Integer> corePoolSize,
                                              HystrixProperty<Integer> maximumPoolSize,
                                              HystrixProperty<Integer> keepAliveTime,
                                              TimeUnit unit, BlockingQueue<Runnable> workQueue)
focal_class.return: ThreadPoolExecutor
focal_class.signature: ThreadPoolExecutor getThreadPool(HystrixThreadPoolKey threadPoolKey,
                                              HystrixProperty<Integer> corePoolSize,
                                              HystrixProperty<Integer> maximumPoolSize,
                                              HystrixProperty<Integer> keepAliveTime,
                                              TimeUnit unit, BlockingQueue<Runnable> workQueue)
focal_class.class_method_signature: HystrixConcurrencyStrategyJsr236.initialContext()
focal_class.full_signature: private InitialContext initialContext()
focal_class.identifier: initialContext
focal_class.modifiers: private
focal_class.parameters: ()
focal_class.return: InitialContext
focal_class.signature: InitialContext initialContext()
focal_class.class_method_signature: HystrixConcurrencyStrategyJsr236.lookupManagedThreadFactory(HystrixThreadPoolKey threadPoolKey)
focal_class.full_signature: private ManagedThreadFactory lookupManagedThreadFactory(HystrixThreadPoolKey threadPoolKey)
focal_class.identifier: lookupManagedThreadFactory
focal_class.modifiers: private
focal_class.parameters: (HystrixThreadPoolKey threadPoolKey)
focal_class.return: ManagedThreadFactory
focal_class.signature: ManagedThreadFactory lookupManagedThreadFactory(HystrixThreadPoolKey threadPoolKey)
focal_class.superclass: extends HystrixConcurrencyStrategy
focal_method.body: @Override
      public ThreadPoolExecutor getThreadPool(HystrixThreadPoolKey threadPoolKey,
                                              HystrixProperty<Integer> corePoolSize,
                                              HystrixProperty<Integer> maximumPoolSize,
                                              HystrixProperty<Integer> keepAliveTime,
                                              TimeUnit unit, BlockingQueue<Runnable> workQueue) {
  
          ThreadFactory threadFactory = lookupManagedThreadFactory(threadPoolKey);
          if (threadFactory != null) {
              return new ThreadPoolExecutor(corePoolSize.get(), maximumPoolSize.get(), keepAliveTime.get(),
                      unit, workQueue, threadFactory);
          } else {
              LOGGER.warn("Fallback to Hystrix default thread pool executor.");
              return super.getThreadPool(threadPoolKey, corePoolSize, maximumPoolSize, keepAliveTime, unit, workQueue);
          }
      }
focal_method.class_method_signature: HystrixConcurrencyStrategyJsr236.getThreadPool(HystrixThreadPoolKey threadPoolKey,
                                              HystrixProperty<Integer> corePoolSize,
                                              HystrixProperty<Integer> maximumPoolSize,
                                              HystrixProperty<Integer> keepAliveTime,
                                              TimeUnit unit, BlockingQueue<Runnable> workQueue)
focal_method.full_signature: @Override public ThreadPoolExecutor getThreadPool(HystrixThreadPoolKey threadPoolKey,
                                              HystrixProperty<Integer> corePoolSize,
                                              HystrixProperty<Integer> maximumPoolSize,
                                              HystrixProperty<Integer> keepAliveTime,
                                              TimeUnit unit, BlockingQueue<Runnable> workQueue)
focal_method.identifier: getThreadPool
focal_method.invocations: lookupManagedThreadFactory get get get warn getThreadPool
focal_method.modifiers: @Override public
focal_method.parameters: (HystrixThreadPoolKey threadPoolKey,
                                              HystrixProperty<Integer> corePoolSize,
                                              HystrixProperty<Integer> maximumPoolSize,
                                              HystrixProperty<Integer> keepAliveTime,
                                              TimeUnit unit, BlockingQueue<Runnable> workQueue)
focal_method.return: ThreadPoolExecutor
focal_method.signature: ThreadPoolExecutor getThreadPool(HystrixThreadPoolKey threadPoolKey,
                                              HystrixProperty<Integer> corePoolSize,
                                              HystrixProperty<Integer> maximumPoolSize,
                                              HystrixProperty<Integer> keepAliveTime,
                                              TimeUnit unit, BlockingQueue<Runnable> workQueue)