title: Spring async method called from another async method
body: <p>I'm using Spring 4 and I've noticed an odd behaviour... if I'm calling an async method multiple times from a normal instance method then they are all called in different threads and finish at random times. But if I call multiple times an async method from another async method then they finish in order. I have something like this:</p>
  
  <pre><code>@Async
  public void nonAsyncMethod() {
    for (int i = 0; i &lt; 30; i++) {
       asyncMethod();
    }
  }
  
  @Async
  public void asyncMethod() {
     ... something here
  }
  </code></pre>
  
  <p>I'm using the default async executor. Should I use a different one? However this executor do not reuse any threads and starts another one every time so it should be fine... Can it be just a coincidence? But I've tried like more than 10 times and if I revert back to non-async for the first method then they finish randomly</p>