Hi, guys. I've done IGNITE-4648, the idea was to improve prepare implementations, because async calls could hangs or fail if transaction state changes were not finished [1].
I modified internal transaction's prepare implementation, so now it wait for unfinished futures in transaction and added test to check improvement. Also Pavel Tupitsyn updated .NET tests to check this fix. Nothing changed for Ignite users, because public API wasn't changed. Completing this task decreased chances of unexpected behavior in async JTA-transaction. But we still need more test coverage, anyone want to contribute some tests [2]? [1] https://issues.apache.org/jira/browse/IGNITE-4648 [2] https://issues.apache.org/jira/browse/IGNITE-5748