NullReferenceException during implicit transaction rollback
Posted: Wed 09 Mar 2016 10:32
Hi there!
The following code fragment demonstrates the issue:
using (var connection = new MySqlConnection("host=localhost;port=3306;pooling=true;user=user;pwd=pwd"))
{
connection.Open();
connection.BeginTransaction();
}
System.NullReferenceException Object reference not set to an instance of an object.
at Devart.Data.MySql.au.a(ref Int32 A_0, ref ArrayList A_1, ref ac A_2, ref String A_3)
at Devart.Data.MySql.k.e()
at Devart.Data.MySql.MySqlCommand.InternalExecute(CommandBehavior behavior, IDisposable stmt, Int32 startRecord, Int32 maxRecords)
at Devart.Common.DbCommandBase.ExecuteDbDataReader(CommandBehavior behavior, Boolean nonQuery)
at Devart.Common.DbCommandBase.ExecuteNonQuery()
at Devart.Data.MySql.MySqlConnection.Rollback()
at Devart.Data.MySql.MySqlTransaction.Dispose(Boolean disposing)
at Devart.Data.MySql.j.k()
at Devart.Common.DbConnectionBase.Close()
at Devart.Data.MySql.MySqlConnection.Close()
at Devart.Data.MySql.MySqlConnection.Dispose(Boolean disposing)
at System.ComponentModel.Component.Dispose()
This does not happen if the transaction is rolled back explicitly.
Version: dotConnect.Express.for.MySQL.8.4.602
The following code fragment demonstrates the issue:
using (var connection = new MySqlConnection("host=localhost;port=3306;pooling=true;user=user;pwd=pwd"))
{
connection.Open();
connection.BeginTransaction();
}
System.NullReferenceException Object reference not set to an instance of an object.
at Devart.Data.MySql.au.a(ref Int32 A_0, ref ArrayList A_1, ref ac A_2, ref String A_3)
at Devart.Data.MySql.k.e()
at Devart.Data.MySql.MySqlCommand.InternalExecute(CommandBehavior behavior, IDisposable stmt, Int32 startRecord, Int32 maxRecords)
at Devart.Common.DbCommandBase.ExecuteDbDataReader(CommandBehavior behavior, Boolean nonQuery)
at Devart.Common.DbCommandBase.ExecuteNonQuery()
at Devart.Data.MySql.MySqlConnection.Rollback()
at Devart.Data.MySql.MySqlTransaction.Dispose(Boolean disposing)
at Devart.Data.MySql.j.k()
at Devart.Common.DbConnectionBase.Close()
at Devart.Data.MySql.MySqlConnection.Close()
at Devart.Data.MySql.MySqlConnection.Dispose(Boolean disposing)
at System.ComponentModel.Component.Dispose()
This does not happen if the transaction is rolled back explicitly.
Version: dotConnect.Express.for.MySQL.8.4.602