Skip to content

Commit 0a85990

Browse files
Fix some NRE in work isolation and connection handling
Fixes #2336
1 parent 6c252ee commit 0a85990

File tree

3 files changed

+5
-2
lines changed

3 files changed

+5
-2
lines changed

src/NHibernate/Async/Transaction/AdoNetTransactionFactory.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -126,7 +126,7 @@ async Task InternalExecuteWorkInIsolationAsync()
126126
isolaterLog.Warn(ignore, "Unable to dispose transaction");
127127
}
128128

129-
if (session.Factory.Dialect is SQLiteDialect == false)
129+
if (connection != null && session.Factory.Dialect is SQLiteDialect == false)
130130
session.Factory.ConnectionProvider.CloseConnection(connection);
131131
}
132132
}

src/NHibernate/Connection/ConnectionProvider.cs

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,9 @@ public abstract partial class ConnectionProvider : IConnectionProvider
2424
/// <param name="conn">The <see cref="DbConnection"/> to clean up.</param>
2525
public virtual void CloseConnection(DbConnection conn)
2626
{
27+
if (conn == null)
28+
throw new ArgumentNullException(nameof(conn));
29+
2730
log.Debug("Closing connection");
2831
try
2932
{

src/NHibernate/Transaction/AdoNetTransactionFactory.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -136,7 +136,7 @@ public virtual void ExecuteWorkInIsolation(ISessionImplementor session, IIsolate
136136
isolaterLog.Warn(ignore, "Unable to dispose transaction");
137137
}
138138

139-
if (session.Factory.Dialect is SQLiteDialect == false)
139+
if (connection != null && session.Factory.Dialect is SQLiteDialect == false)
140140
session.Factory.ConnectionProvider.CloseConnection(connection);
141141
}
142142
}

0 commit comments

Comments
 (0)