You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Problem:
We have implemented a TransactionManager that extends the AbstractPlatformTransactionManager. We noticed that there's a break when we moved to 3.0.0.RC3.
Details:
In the getTransaction(...) method, when doBegin(...) is called, the TransactionStatus is now instantiated using a private method instantiateTransactionStatus(). This breaks our transactionManager that extends newTransactionStatus(). This is infact the case for all the instances where doBegin() is called throughout the code. Note: The split between creation of the TransactionStatus and preparingSynchronization whereever doBegin() is being called is correct in that the TransactionStatus needs to be created before a call to doBegin() - this was an OOM issue that Juergen had fixed in 3.0.rc1
Proposed Solution:
newTransactionStatus(...) should keep doing what it did earlier i.e. simply be responsible for creating the new TransactionStatus. The prepareSynchronization(...) method should be called outside of it.
OK, I've reverted newTransactionStatus to its original role, just without preparing synchronization. So overriding newTransactionStatus will affect all TransactionStatus objects being created now, with prepareSynchronization being called afterwards (rather than within newTransactionStatus as before).
I hope that works for you. Would be great if you could give a snapshot a try within the next couple of days...
Abhishek Gupta opened SPR-6521 and commented
Problem:
We have implemented a TransactionManager that extends the AbstractPlatformTransactionManager. We noticed that there's a break when we moved to 3.0.0.RC3.
Details:
In the getTransaction(...) method, when doBegin(...) is called, the TransactionStatus is now instantiated using a private method instantiateTransactionStatus(). This breaks our transactionManager that extends newTransactionStatus(). This is infact the case for all the instances where doBegin() is called throughout the code.
Note: The split between creation of the TransactionStatus and preparingSynchronization whereever doBegin() is being called is correct in that the TransactionStatus needs to be created before a call to doBegin() - this was an OOM issue that Juergen had fixed in 3.0.rc1
Proposed Solution:
newTransactionStatus(...) should keep doing what it did earlier i.e. simply be responsible for creating the new TransactionStatus. The prepareSynchronization(...) method should be called outside of it.
Affects: 3.0 RC3
Referenced from: commits 93abbd0
The text was updated successfully, but these errors were encountered: