title: Queue#addAsync with Transaction loses task sometimes
body: <p>This is question about Google App Engine/Java.</p>
  
  <p>I'm trying to add Task to Queue with async API with Transaction.</p>
  
  <p>This is minimum sample to see the problem below. </p>
  
  <p><a href="https://gist.github.com/hogedigo/4e1943be5a3d3550a6ce" rel="nofollow">https://gist.github.com/hogedigo/4e1943be5a3d3550a6ce</a></p>
  
  <p>I loop 10 times and save an entity to datastore and add a task to queue, but some tasks seem to be lost sometimes.</p>
  
  <p>I make transaction and pass the tx to Queue#addTask.
  All entities are always saved, but some tasks are lost sometimes.
  I'm afraid that there is no consistency even if I make transaction.</p>
  
  <p>I don't call addAsync result future's get method.
  I'm sure it will be OK if I get the future's result, but I don't want to do that because I need to run transactions concurrently.</p>
  
  <p>The document below said "calling Transaction.commit() blocks on the result of all async calls made since the transaction started before committing it."</p>
  
  <p><a href="https://cloud.google.com/appengine/docs/java/datastore/async#Working_with_Async_Transactions" rel="nofollow">https://cloud.google.com/appengine/docs/java/datastore/async#Working_with_Async_Transactions</a></p>
  
  <p>Transaction.commit blocks only datastore async calls?
  And doesn't block taskqueue async calls?</p>