File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -55,10 +55,15 @@ pub trait TransactionManager<Conn: Connection> {
5555 Self :: commit_transaction ( conn) ?;
5656 Ok ( value)
5757 }
58- Err ( user_error) => {
59- Self :: rollback_transaction ( conn) ?;
60- Err ( user_error)
61- }
58+ Err ( user_error) => match Self :: rollback_transaction ( conn) {
59+ Ok ( ( ) ) => Err ( user_error) ,
60+ Err ( Error :: BrokenTransactionManager ) => {
61+ // In this case we are probably more interested by the
62+ // original error, which likely caused this
63+ Err ( user_error)
64+ }
65+ Err ( rollback_error) => Err ( rollback_error. into ( ) ) ,
66+ } ,
6267 }
6368 }
6469}
Original file line number Diff line number Diff line change @@ -294,8 +294,15 @@ where
294294 Ok ( value)
295295 }
296296 Err ( user_error) => {
297- AnsiTransactionManager :: rollback_transaction ( & mut * self . connection ) ?;
298- Err ( user_error)
297+ match AnsiTransactionManager :: rollback_transaction ( & mut * self . connection ) {
298+ Ok ( ( ) ) => Err ( user_error) ,
299+ Err ( Error :: BrokenTransactionManager ) => {
300+ // In this case we are probably more interested by the
301+ // original error, which likely caused this
302+ Err ( user_error)
303+ }
304+ Err ( rollback_error) => Err ( rollback_error. into ( ) ) ,
305+ }
299306 }
300307 }
301308 }
You can’t perform that action at this time.
0 commit comments