With relation to SPR-12358, as Juergen Hoeller and Sébastien Deleuze commented in the Spring JIRA, adding a special delay time in the executor looks enough. We can think that the thread in the AsyncTaskExecutor will call callback method. But if a developer puts pretty much time spending code block between AsyncTaskExecutor's submitListenable and ListenableFuture's addCallback, that will not be enough. It might be the same problem. So I slightly changed ListenableFutureCallbackRegistry.java in order to run a callback in a new thread when AsyncTask is already finished. At least this will prevent being blocked.

Issue: SPR-12358

I have signed and agree to the terms of the SpringSource Individual Contributor License Agreement.

Comment From: pivotal-issuemaster

@MoonJongMin Please sign the Contributor License Agreement!

Click here to manually synchronize the status of this Pull Request.

See the FAQ for frequently asked questions.

Comment From: pivotal-cla

@MoonJongMin Please sign the Contributor License Agreement!

Click here to manually synchronize the status of this Pull Request.

See the FAQ for frequently asked questions.

Comment From: snicoll

@MoonJongMin thanks for the PR but we can't create new threads as you suggest in a class of the core framework. If you're still experiencing this issue, please create a new issue with a small sample that we can run ourselves. That will help us debug and find a more appropriate place to try to fix the issue you're experiencing.