title: Spring 3.x - @Async methods not called concurrently by task executor
body: <p>I'm trying to implement concurrent method invocation in my Service class.</p>
  
  <p>I've some methods annotated as @Async in my service class and I'm trying to call all these methods concurrently. But the methods are executing sequentially.</p>
  
  <p>This is my service class(dummy):</p>
  
  <pre><code>@Service public class TestService {
  
  public SomeDataType getSOmeDataType() {
          try {
              List&lt;DataType&gt; a = retrieveDataA().get();
              List&lt;DataType&gt; b = retrieveDataB().get();
              List&lt;DataType&gt; c = retrieveDataC().get();
              List&lt;DataType&gt; d = retrieveDataD().get();
              List&lt;DataType&gt; e = retrieveDataE().get();           
          }
          catch (InterruptedException e) {
              e.printStackTrace();
          }
          catch (ExecutionException e) {
              e.printStackTrace();
          }
          return referralDetailsReferenceData;
      }
  
  @Async 
      private Future&lt;List&lt;DataType&gt;&gt; retrieveDataA() {
          //method logic
      }
  
  @Async 
      private Future&lt;List&lt;DataType&gt;&gt; retrieveDataB() {
          //method logic
      }
  
  @Async 
      private Future&lt;List&lt;DataType&gt;&gt; retrieveDataC() {
          //method logic
      }
  
  @Async 
      private Future&lt;List&lt;DataType&gt;&gt; retrieveDataD() {
          //method logic
      }
  
  @Async 
      private Future&lt;List&lt;DataType&gt;&gt; retrieveDataE() {
          //method logic
      }
  </code></pre>
  
  <p>This is my spring config:</p>
  
  <pre><code>&lt;bean id="executorService" class="java.util.concurrent.Executors" factory-method="newFixedThreadPool"&gt;
      &lt;constructor-arg value="10" /&gt;
  &lt;/bean&gt;
  
  &lt;task:executor id="threadPoolTaskExecutor" pool-size="10" /&gt;
  
  &lt;task:annotation-driven executor="executorService" /&gt;
  </code></pre>
  
  <p>When "getSomeDataType" is executed the methods are invoked sequentially.</p>
  
  <p>I'm new to @Async and concurrent execution in Spring, so I'm sure I'm doing something silly. But I'm not able to figure it out.</p>
  
  <p>Any suggestions is highly appreciated.</p>