Skip to content

Commit 4e0fb14

Browse files
authored
Merge pull request #152 from DataObjects-NET/master-revert-zombiecheck-for-commit
Reverts check for zombie on transaction commit
2 parents 8de49f0 + 8607772 commit 4e0fb14

File tree

2 files changed

+24
-53
lines changed

2 files changed

+24
-53
lines changed

Orm/Xtensive.Orm.SqlServer/Sql.Drivers.SqlServer/Connection.cs

Lines changed: 0 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -97,40 +97,6 @@ public override void BeginTransaction(IsolationLevel isolationLevel)
9797
activeTransaction = underlyingConnection.BeginTransaction(isolationLevel);
9898
}
9999

100-
/// <inheritdoc/>
101-
public override void Commit()
102-
{
103-
EnsureIsNotDisposed();
104-
EnsureTransactionIsActive();
105-
106-
try {
107-
if (!IsTransactionZombied()) {
108-
ActiveTransaction.Commit();
109-
}
110-
}
111-
finally {
112-
ActiveTransaction.Dispose();
113-
ClearActiveTransaction();
114-
}
115-
}
116-
117-
/// <inheritdoc/>
118-
public override async Task CommitAsync(CancellationToken token = default)
119-
{
120-
EnsureIsNotDisposed();
121-
EnsureTransactionIsActive();
122-
123-
try {
124-
if (!IsTransactionZombied()) {
125-
await ActiveTransaction.CommitAsync(token).ConfigureAwait(false);
126-
}
127-
}
128-
finally {
129-
await ActiveTransaction.DisposeAsync().ConfigureAwait(false);
130-
ClearActiveTransaction();
131-
}
132-
}
133-
134100
/// <inheritdoc/>
135101
public override void Rollback()
136102
{

Orm/Xtensive.Orm.Tests/Storage/NestedTransactionsTest.cs

Lines changed: 24 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
1-
// Copyright (C) 2003-2010 Xtensive LLC.
2-
// All rights reserved.
3-
// For conditions of distribution and use, see license.
1+
// Copyright (C) 2009-2021 Xtensive LLC.
2+
// This code is distributed under MIT license terms.
3+
// See the License.txt file in the project root for more information.
44
// Created by: Denis Krjuchkov
55
// Created: 2009.11.26
66

@@ -159,25 +159,30 @@ public void RollbackNestedTransactionWithActiveEnumeratorTest()
159159
public void RollbackNestedTransactionWithActiveEnumeratorAndThenCompleteOutermostTest()
160160
{
161161
var session = Session.Demand();
162-
using (var outerTx = session.OpenTransaction()) {
163-
_ = new Hexagon();
164-
_ = new Hexagon();
165-
_ = new Hexagon();
162+
var outerTx = session.OpenTransaction();
163+
_ = new Hexagon();
164+
_ = new Hexagon();
165+
_ = new Hexagon();
166166

167-
IEnumerator<int> enumerator = null;
168-
var innerTx = session.OpenTransaction(TransactionOpenMode.New);
167+
IEnumerator<int> enumerator = null;
168+
var innerTx = session.OpenTransaction(TransactionOpenMode.New);
169169

170-
enumerator = session.Query.All<Hexagon>()
171-
.Select(item => item.Id).AsEnumerable().GetEnumerator();
172-
_ = enumerator.MoveNext();
170+
enumerator = session.Query.All<Hexagon>()
171+
.Select(item => item.Id).AsEnumerable().GetEnumerator();
172+
_ = enumerator.MoveNext();
173173

174-
if (storageProviderInfo.CheckProviderIs(StorageProvider.SqlServer)) {
175-
_ = Assert.Throws<StorageException>(() => innerTx.Dispose());
176-
}
177-
else {
178-
Assert.DoesNotThrow(() => innerTx.Dispose());
179-
}
180-
outerTx.Complete();
174+
if (storageProviderInfo.CheckProviderIs(StorageProvider.SqlServer)) {
175+
_ = Assert.Throws<StorageException>(() => innerTx.Dispose());
176+
}
177+
else {
178+
Assert.DoesNotThrow(() => innerTx.Dispose());
179+
}
180+
outerTx.Complete();
181+
if (storageProviderInfo.CheckProviderIs(StorageProvider.SqlServer)) {
182+
_ = Assert.Throws<StorageException>(() => outerTx.Dispose());
183+
}
184+
else {
185+
Assert.DoesNotThrow(() => outerTx.Dispose());
181186
}
182187
}
183188

0 commit comments

Comments
 (0)