From e1b67d1c9e88aa876935356d364454fe03de3e95 Mon Sep 17 00:00:00 2001 From: Eamon Hetherton Date: Mon, 30 Apr 2018 15:25:22 +1000 Subject: [PATCH] updated CSharpAsyncGenerator.CommandLine to v 0.11.0 to fix GH1672 and regenerated the Async classes --- Tools/packages.config | 2 +- default.build | 2 + .../Circle/MultiPathCircleCascadeTest.cs | 1 + .../Async/DebugConnectionProvider.cs | 1 + .../Async/Linq/LinqQuerySamples.cs | 242 ++++-------------- .../Async/Linq/QueryTimeoutTests.cs | 22 +- .../Async/NHSpecificTest/Dates/DateFixture.cs | 11 +- .../Async/NHSpecificTest/GH1547/Fixture.cs | 20 +- .../Async/NHSpecificTest/NH1601/Fixture1.cs | 44 +--- .../Async/NHSpecificTest/NH1601/Fixture2.cs | 44 +--- .../Async/NHSpecificTest/NH372/Fixture.cs | 88 ++----- .../DistributedSystemTransactionFixture.cs | 13 +- .../hbm2ddl/SchemaUpdate/MigrationFixture.cs | 26 +- .../SchemaValidator/SchemaValidateFixture.cs | 11 +- .../TypesTest/AbstractDateTimeTypeFixture.cs | 11 +- .../TypesTest/DateTimeOffsetTypeFixture.cs | 11 +- .../Async/TypesTest/DateTypeTest.cs | 22 +- .../Action/EntityIdentityInsertAction.cs | 19 +- .../Async/AdoNet/AbstractBatcher.cs | 2 + .../AbstractPersistentCollection.cs | 33 +-- .../Generic/PersistentGenericIdentifierBag.cs | 1 + .../Connection/DriverConnectionProvider.cs | 1 + .../Context/ThreadLocalSessionContext.cs | 3 + src/NHibernate/Async/Driver/NDataReader.cs | 2 + src/NHibernate/Async/Engine/ActionQueue.cs | 13 +- .../Async/Event/Default/AbstractVisitor.cs | 9 +- .../DefaultFlushEntityEventListener.cs | 31 +-- .../ANTLR/Exec/AbstractStatementExecutor.cs | 6 + .../Async/Id/Enhanced/SequenceStructure.cs | 1 + .../Async/Id/Enhanced/TableGenerator.cs | 5 + .../Async/Id/Enhanced/TableStructure.cs | 3 + .../Async/Id/IdentifierGeneratorFactory.cs | 4 + .../Async/Id/NativeGuidGenerator.cs | 1 + src/NHibernate/Async/Id/TableGenerator.cs | 3 + .../Async/Impl/MultiCriteriaImpl.cs | 2 + src/NHibernate/Async/Impl/MultiQueryImpl.cs | 2 + src/NHibernate/Async/Impl/SessionImpl.cs | 16 +- .../Async/Impl/StatelessSessionImpl.cs | 34 +-- src/NHibernate/Async/Loader/Loader.cs | 4 + .../Collection/AbstractCollectionPersister.cs | 15 +- .../Collection/BasicCollectionPersister.cs | 2 + .../Collection/OneToManyPersister.cs | 4 + .../Entity/AbstractEntityPersister.cs | 5 + .../Async/Tool/hbm2ddl/SchemaExport.cs | 3 + .../Async/Tool/hbm2ddl/SchemaUpdate.cs | 7 + .../Async/Tool/hbm2ddl/SchemaValidator.cs | 4 + src/NHibernate/Async/Type/AnyType.cs | 11 +- src/NHibernate/Async/Type/ClassMetaType.cs | 9 +- src/NHibernate/Async/Type/MetaType.cs | 9 +- 49 files changed, 256 insertions(+), 579 deletions(-) diff --git a/Tools/packages.config b/Tools/packages.config index 5d0a1029d51..184b88556ab 100644 --- a/Tools/packages.config +++ b/Tools/packages.config @@ -7,7 +7,7 @@ - + diff --git a/default.build b/default.build index 8201995f47a..21ee604c399 100644 --- a/default.build +++ b/default.build @@ -50,6 +50,8 @@ + + diff --git a/src/NHibernate.Test/Async/Cascade/Circle/MultiPathCircleCascadeTest.cs b/src/NHibernate.Test/Async/Cascade/Circle/MultiPathCircleCascadeTest.cs index 83876eb50c7..b753abf1b54 100644 --- a/src/NHibernate.Test/Async/Cascade/Circle/MultiPathCircleCascadeTest.cs +++ b/src/NHibernate.Test/Async/Cascade/Circle/MultiPathCircleCascadeTest.cs @@ -155,6 +155,7 @@ public async Task MergeEntityWithNonNullableEntityNullAsync() await (session.MergeAsync(route, cancellationToken)); Assert.Fail("should have thrown an exception"); } + catch (OperationCanceledException) { throw; } catch (Exception ex) { Assert.That(ex, Is.TypeOf(typeof(PropertyValueException))); diff --git a/src/NHibernate.Test/Async/DebugConnectionProvider.cs b/src/NHibernate.Test/Async/DebugConnectionProvider.cs index c2a626f7475..39f4ee9d6bf 100644 --- a/src/NHibernate.Test/Async/DebugConnectionProvider.cs +++ b/src/NHibernate.Test/Async/DebugConnectionProvider.cs @@ -30,6 +30,7 @@ public override async Task GetConnectionAsync(CancellationToken ca connections.TryAdd(connection, 0); return connection; } + catch (OperationCanceledException) { throw; } catch (Exception e) { throw new HibernateException("Could not open connection to: " + ConnectionString, e); diff --git a/src/NHibernate.Test/Async/Linq/LinqQuerySamples.cs b/src/NHibernate.Test/Async/Linq/LinqQuerySamples.cs index eb1928d77c1..39bde3e6392 100644 --- a/src/NHibernate.Test/Async/Linq/LinqQuerySamples.cs +++ b/src/NHibernate.Test/Async/Linq/LinqQuerySamples.cs @@ -83,36 +83,22 @@ from e in db.Employees " name and product availability.")] public Task DLinq13Async() { - try - { - var q = + var q = from p in db.Products select new {p.Name, Availability = p.UnitsInStock - p.UnitsOnOrder < 0 ? "Out Of Stock" : "In Stock"}; - return ObjectDumper.WriteAsync(q, 1); - } - catch (Exception ex) - { - return Task.FromException(ex); - } + return ObjectDumper.WriteAsync(q, 1); } [Category("SELECT/DISTINCT")] [Test(Description = "This sample uses SELECT and a known type to return a sequence of employees' names.")] public Task DLinq14Async() { - try - { - IQueryable q = + IQueryable q = from e in db.Employees select new Name {FirstName = e.FirstName, LastName = e.LastName}; - return ObjectDumper.WriteAsync(q, 1); - } - catch (Exception ex) - { - return Task.FromException(ex); - } + return ObjectDumper.WriteAsync(q, 1); } [Category("SELECT/DISTINCT")] @@ -120,19 +106,12 @@ from e in db.Employees "just the London Customers' contact names.")] public Task DLinq15Async() { - try - { - IQueryable q = + IQueryable q = from c in db.Customers where c.Address.City == "London" select c.ContactName; - return ObjectDumper.WriteAsync(q); - } - catch (Exception ex) - { - return Task.FromException(ex); - } + return ObjectDumper.WriteAsync(q); } [Category("SELECT/DISTINCT")] @@ -295,9 +274,7 @@ where od.Discount > 0.0m "saved if shipping is not included.")] public Task DLinq17bAsync() { - try - { - var q = + var q = from o in db.Orders select new { @@ -309,12 +286,7 @@ where od.Discount > 0.0m FreeShippingDiscount = o.Freight }; - return ObjectDumper.WriteAsync(q, 1); - } - catch (Exception ex) - { - return Task.FromException(ex); - } + return ObjectDumper.WriteAsync(q, 1); } [Category("SELECT/DISTINCT")] @@ -325,9 +297,7 @@ where od.Discount > 0.0m [Ignore("TODO - nested select")] public Task DLinq17cAsync() { - try - { - var q = + var q = from o in db.Orders select new { @@ -341,12 +311,7 @@ orderby od.Discount descending FreeShippingDiscount = o.Freight }; - return ObjectDumper.WriteAsync(q, 1); - } - catch (Exception ex) - { - return Task.FromException(ex); - } + return ObjectDumper.WriteAsync(q, 1); } [Category("SELECT/DISTINCT")] @@ -570,19 +535,12 @@ select p2 [Test(Description = "This sample uses orderby to sort Employees by hire date.")] public Task DLinq36Async() { - try - { - IOrderedQueryable q = + IOrderedQueryable q = from e in db.Employees orderby e.HireDate select e; - return ObjectDumper.WriteAsync(q); - } - catch (Exception ex) - { - return Task.FromException(ex); - } + return ObjectDumper.WriteAsync(q); } [Category("ORDER BY")] @@ -590,20 +548,13 @@ orderby e.HireDate "shipped to London by freight.")] public Task DLinq37Async() { - try - { - IOrderedQueryable q = + IOrderedQueryable q = from o in db.Orders where o.ShippingAddress.City == "London" orderby o.Freight select o; - return ObjectDumper.WriteAsync(q); - } - catch (Exception ex) - { - return Task.FromException(ex); - } + return ObjectDumper.WriteAsync(q); } [Category("ORDER BY")] @@ -611,19 +562,12 @@ orderby o.Freight "by unit price from highest to lowest.")] public Task DLinq38Async() { - try - { - IOrderedQueryable q = + IOrderedQueryable q = from p in db.Products orderby p.UnitPrice descending select p; - return ObjectDumper.WriteAsync(q); - } - catch (Exception ex) - { - return Task.FromException(ex); - } + return ObjectDumper.WriteAsync(q); } [Category("ORDER BY")] @@ -631,19 +575,12 @@ orderby p.UnitPrice descending "by city and then contact name.")] public Task DLinq39Async() { - try - { - IOrderedQueryable q = + IOrderedQueryable q = from c in db.Customers orderby c.Address.City , c.ContactName select c; - return ObjectDumper.WriteAsync(q); - } - catch (Exception ex) - { - return Task.FromException(ex); - } + return ObjectDumper.WriteAsync(q); } [Category("ORDER BY")] @@ -651,20 +588,13 @@ from c in db.Customers "by ship-to country, and then by freight from highest to lowest.")] public Task DLinq40Async() { - try - { - IOrderedQueryable q = + IOrderedQueryable q = from o in db.Orders where o.Employee.EmployeeId == 1 orderby o.ShippingAddress.Country , o.Freight descending select o; - return ObjectDumper.WriteAsync(q); - } - catch (Exception ex) - { - return Task.FromException(ex); - } + return ObjectDumper.WriteAsync(q); } @@ -957,20 +887,13 @@ into g "with unit price less than or equal to 10.")] public Task DLinq51Async() { - try - { - var categories = + var categories = from p in db.Products group p by new {Criterion = p.UnitPrice > 10} into g select g; - return ObjectDumper.WriteAsync(categories, 1); - } - catch (Exception ex) - { - return Task.FromException(ex); - } + return ObjectDumper.WriteAsync(categories, 1); } [Category("EXISTS/IN/ANY/ALL")] @@ -1345,21 +1268,14 @@ from c in db.Customers "from clause to select all orders for customers in London.")] public Task DLinqJoin1Async() { - try - { - IQueryable q = + IQueryable q = from c in db.Customers from o in c.Orders // from o in c.Orders.Cast() where c.Address.City == "London" select o; - return ObjectDumper.WriteAsync(q); - } - catch (Exception ex) - { - return Task.FromException(ex); - } + return ObjectDumper.WriteAsync(q); } [Category("JOIN")] @@ -1388,21 +1304,14 @@ from e in emps "from clause to select all orders for customers in London.")] public Task DLinqJoin1aAsync() { - try - { - var q = + var q = from c in db.Customers from o in c.Orders // from o in c.Orders.Cast() where c.Address.City == "London" select new {o.OrderDate, o.ShippingAddress.Region}; - return ObjectDumper.WriteAsync(q); - } - catch (Exception ex) - { - return Task.FromException(ex); - } + return ObjectDumper.WriteAsync(q); } [Category("JOIN")] @@ -1410,21 +1319,14 @@ from o in c.Orders "from clause to select all orders for customers in London.")] public Task DLinqJoin1bAsync() { - try - { - var q = + var q = from c in db.Customers from o in c.Orders // from o in c.Orders.Cast() where c.Address.City == "London" select new {c.Address.City, o.OrderDate, o.ShippingAddress.Region}; - return ObjectDumper.WriteAsync(q); - } - catch (Exception ex) - { - return Task.FromException(ex); - } + return ObjectDumper.WriteAsync(q); } [Category("JOIN")] @@ -1481,19 +1383,12 @@ from o in c.Orders "that are out of stock.")] public Task DLinqJoin2Async() { - try - { - IQueryable q = + IQueryable q = from p in db.Products where p.Supplier.Address.Country == "USA" && p.UnitsInStock == 0 select p; - return ObjectDumper.WriteAsync(q); - } - catch (Exception ex) - { - return Task.FromException(ex); - } + return ObjectDumper.WriteAsync(q); } [Category("JOIN")] @@ -1502,21 +1397,14 @@ from p in db.Products "and also list their territories.")] public Task DLinqJoin3Async() { - try - { - var q = + var q = from e in db.Employees from et in e.Territories // from et in e.Territories.Cast() where e.Address.City == "Seattle" select new {e.FirstName, e.LastName, et.Region.Description}; - return ObjectDumper.WriteAsync(q); - } - catch (Exception ex) - { - return Task.FromException(ex); - } + return ObjectDumper.WriteAsync(q); } [Category("JOIN")] @@ -1526,9 +1414,7 @@ from et in e.Territories "both employees are from the same City.")] public Task DLinqJoin4Async() { - try - { - var q = + var q = from e1 in db.Employees from e2 in e1.Subordinates // from e2 in e1.Subordinates.Cast() @@ -1542,12 +1428,7 @@ from e2 in e1.Subordinates e1.Address.City }; - return ObjectDumper.WriteAsync(q); - } - catch (Exception ex) - { - return Task.FromException(ex); - } + return ObjectDumper.WriteAsync(q); } [Category("JOIN")] @@ -1576,19 +1457,12 @@ join o in db.Orders on c.CustomerId equals o.Customer.CustomerId into orders [Test(Description = "This sample explictly joins two tables and projects results from both tables.")] public Task DLinqJoin5aAsync() { - try - { - var q = + var q = from c in db.Customers join o in db.Orders on c.CustomerId equals o.Customer.CustomerId select new { c.ContactName, o.OrderId }; - return ObjectDumper.WriteAsync(q); - } - catch (Exception ex) - { - return Task.FromException(ex); - } + return ObjectDumper.WriteAsync(q); } [Category("JOIN")] @@ -1615,38 +1489,24 @@ into g [Test(Description = "This sample explictly joins two tables with a composite key and projects results from both tables.")] public Task DLinqJoin5cAsync() { - try - { - var q = + var q = from c in db.Customers join o in db.Orders on new {c.CustomerId} equals new {o.Customer.CustomerId} select new { c.ContactName, o.OrderId }; - return ObjectDumper.WriteAsync(q); - } - catch (Exception ex) - { - return Task.FromException(ex); - } + return ObjectDumper.WriteAsync(q); } [Category("JOIN")] [Test(Description = "This sample explictly joins two tables with a composite key and projects results from both tables.")] public Task DLinqJoin5dAsync() { - try - { - var q = + var q = from c in db.Customers join o in db.Orders on new {c.CustomerId, HasContractTitle = c.ContactTitle != null} equals new {o.Customer.CustomerId, HasContractTitle = o.Customer.ContactTitle != null } select new { c.ContactName, o.OrderId }; - return ObjectDumper.WriteAsync(q); - } - catch (Exception ex) - { - return Task.FromException(ex); - } + return ObjectDumper.WriteAsync(q); } [Category("JOIN")] @@ -1700,21 +1560,14 @@ from o in ords.DefaultIfEmpty() [Test(Description = "This sample projects a 'let' expression resulting from a join.")] public Task DLinqJoin8Async() { - try - { - var q = + var q = from c in db.Customers join o in db.Orders on c.CustomerId equals o.Customer.CustomerId into ords let z = c.Address.City + c.Address.Country from o in ords select new {c.ContactName, o.OrderId, z}; - return ObjectDumper.WriteAsync(q); - } - catch (Exception ex) - { - return Task.FromException(ex); - } + return ObjectDumper.WriteAsync(q); } [Category("JOIN")] @@ -1746,19 +1599,12 @@ from d in details [Test(Description = "This sample shows a join which is then grouped")] public Task DLinqJoin9bAsync() { - try - { - var q = from c in db.Customers + var q = from c in db.Customers join o in db.Orders on c.CustomerId equals o.Customer.CustomerId group o by c into x select new { CustomerName = x.Key.ContactName, Order = x }; - return ObjectDumper.WriteAsync(q); - } - catch (Exception ex) - { - return Task.FromException(ex); - } + return ObjectDumper.WriteAsync(q); } } } \ No newline at end of file diff --git a/src/NHibernate.Test/Async/Linq/QueryTimeoutTests.cs b/src/NHibernate.Test/Async/Linq/QueryTimeoutTests.cs index 5d72e1ae54d..2f3cdba95a4 100644 --- a/src/NHibernate.Test/Async/Linq/QueryTimeoutTests.cs +++ b/src/NHibernate.Test/Async/Linq/QueryTimeoutTests.cs @@ -114,15 +114,8 @@ public TimeoutCatchingNonBatchingBatcher(ConnectionManager connectionManager, II public override Task ExecuteReaderAsync(DbCommand cmd, CancellationToken cancellationToken) { - try - { - LastCommandTimeout = cmd.CommandTimeout; - return base.ExecuteReaderAsync(cmd, cancellationToken); - } - catch (System.Exception ex) - { - return Task.FromException(ex); - } + LastCommandTimeout = cmd.CommandTimeout; + return base.ExecuteReaderAsync(cmd, cancellationToken); } public override DbDataReader ExecuteReader(DbCommand cmd) @@ -150,15 +143,8 @@ public partial class TimeoutCatchingNonBatchingBatcher : NonBatchingBatcher public override Task ExecuteReaderAsync(DbCommand cmd, CancellationToken cancellationToken) { - try - { - LastCommandTimeout = cmd.CommandTimeout; - return base.ExecuteReaderAsync(cmd, cancellationToken); - } - catch (System.Exception ex) - { - return Task.FromException(ex); - } + LastCommandTimeout = cmd.CommandTimeout; + return base.ExecuteReaderAsync(cmd, cancellationToken); } } } diff --git a/src/NHibernate.Test/Async/NHSpecificTest/Dates/DateFixture.cs b/src/NHibernate.Test/Async/NHSpecificTest/Dates/DateFixture.cs index b147ac40f7c..38b39e523e8 100644 --- a/src/NHibernate.Test/Async/NHSpecificTest/Dates/DateFixture.cs +++ b/src/NHibernate.Test/Async/NHSpecificTest/Dates/DateFixture.cs @@ -26,16 +26,9 @@ protected override IList Mappings [Test] public Task SavingAndRetrievingTestAsync() { - try - { - DateTime Now = DateTime.Now; - return SavingAndRetrievingActionAsync(new AllDates {Sql_date = Now}, + DateTime Now = DateTime.Now; + return SavingAndRetrievingActionAsync(new AllDates {Sql_date = Now}, entity => DateTimeAssert.AreEqual(entity.Sql_date, Now, true)); - } - catch (Exception ex) - { - return Task.FromException(ex); - } } } } \ No newline at end of file diff --git a/src/NHibernate.Test/Async/NHSpecificTest/GH1547/Fixture.cs b/src/NHibernate.Test/Async/NHSpecificTest/GH1547/Fixture.cs index 8ff5cd8b37e..2dff0df928e 100644 --- a/src/NHibernate.Test/Async/NHSpecificTest/GH1547/Fixture.cs +++ b/src/NHibernate.Test/Async/NHSpecificTest/GH1547/Fixture.cs @@ -76,20 +76,13 @@ public Task LinqWithNonParameterizedConstantPerfAsync() [Test] public Task LinqWithListParameterPerfAsync() { - try - { - var names = new[] { "Bob", "Sally" }; - return BenchmarkAsync( + var names = new[] { "Bob", "Sally" }; + return BenchmarkAsync( "List parameter", s => s .Query() .Where(e => names.Contains(e.Name))); - } - catch (Exception ex) - { - return Task.FromException(ex); - } } private async Task BenchmarkAsync(string test, Func> queryFactory, CancellationToken cancellationToken = default(CancellationToken)) @@ -165,14 +158,7 @@ private partial class SubstituteDbCommand : DbCommand protected override Task ExecuteDbDataReaderAsync(CommandBehavior behavior, CancellationToken cancellationToken) { - try - { - return Task.FromResult(_substituteReader); - } - catch (Exception ex) - { - return Task.FromException(ex); - } + return Task.FromResult(_substituteReader); } public override Task ExecuteNonQueryAsync(CancellationToken cancellationToken) diff --git a/src/NHibernate.Test/Async/NHSpecificTest/NH1601/Fixture1.cs b/src/NHibernate.Test/Async/NHSpecificTest/NH1601/Fixture1.cs index 06fe6fbf288..be2660c9cb2 100644 --- a/src/NHibernate.Test/Async/NHSpecificTest/NH1601/Fixture1.cs +++ b/src/NHibernate.Test/Async/NHSpecificTest/NH1601/Fixture1.cs @@ -24,15 +24,8 @@ public class Fixture1Async : BugTestCase [Test] public Task TestSaveAndLoadWithoutCountAsync() { - try - { - ProjectWithOneList.TestAccessToList = false; - return SaveAndLoadProjectWithOneListAsync(); - } - catch (System.Exception ex) - { - return Task.FromException(ex); - } + ProjectWithOneList.TestAccessToList = false; + return SaveAndLoadProjectWithOneListAsync(); } /// @@ -41,15 +34,8 @@ public Task TestSaveAndLoadWithoutCountAsync() [Test] public Task TestRefreshWithoutCountAsync() { - try - { - ProjectWithOneList.TestAccessToList = false; - return SaveLoadAndRefreshProjectWithOneListAsync(); - } - catch (System.Exception ex) - { - return Task.FromException(ex); - } + ProjectWithOneList.TestAccessToList = false; + return SaveLoadAndRefreshProjectWithOneListAsync(); } /// @@ -58,15 +44,8 @@ public Task TestRefreshWithoutCountAsync() [Test] public Task TestSaveAndLoadWithCountAsync() { - try - { - ProjectWithOneList.TestAccessToList = true; - return SaveAndLoadProjectWithOneListAsync(); - } - catch (System.Exception ex) - { - return Task.FromException(ex); - } + ProjectWithOneList.TestAccessToList = true; + return SaveAndLoadProjectWithOneListAsync(); } /// @@ -75,15 +54,8 @@ public Task TestSaveAndLoadWithCountAsync() [Test] public Task TestRefreshWithCountAsync() { - try - { - ProjectWithOneList.TestAccessToList = true; - return SaveLoadAndRefreshProjectWithOneListAsync(); - } - catch (System.Exception ex) - { - return Task.FromException(ex); - } + ProjectWithOneList.TestAccessToList = true; + return SaveLoadAndRefreshProjectWithOneListAsync(); } /// diff --git a/src/NHibernate.Test/Async/NHSpecificTest/NH1601/Fixture2.cs b/src/NHibernate.Test/Async/NHSpecificTest/NH1601/Fixture2.cs index 9eae4b87fc6..17ec8df6899 100644 --- a/src/NHibernate.Test/Async/NHSpecificTest/NH1601/Fixture2.cs +++ b/src/NHibernate.Test/Async/NHSpecificTest/NH1601/Fixture2.cs @@ -24,15 +24,8 @@ public class Fixture2Async : BugTestCase [Test] public Task TestSaveAndLoadWithTwoCountsAsync() { - try - { - Project.TestAccessToList = false; - return SaveAndLoadProjectAsync(); - } - catch (System.Exception ex) - { - return Task.FromException(ex); - } + Project.TestAccessToList = false; + return SaveAndLoadProjectAsync(); } /// @@ -41,15 +34,8 @@ public Task TestSaveAndLoadWithTwoCountsAsync() [Test] public Task TestRefreshWithTwoCountsAsync() { - try - { - Project.TestAccessToList = false; - return SaveLoadAndRefreshProjectAsync(); - } - catch (System.Exception ex) - { - return Task.FromException(ex); - } + Project.TestAccessToList = false; + return SaveLoadAndRefreshProjectAsync(); } /// @@ -58,15 +44,8 @@ public Task TestRefreshWithTwoCountsAsync() [Test] public Task TestTestSaveAndLoadWithThreeCountsAsync() { - try - { - Project.TestAccessToList = true; - return SaveAndLoadProjectAsync(); - } - catch (System.Exception ex) - { - return Task.FromException(ex); - } + Project.TestAccessToList = true; + return SaveAndLoadProjectAsync(); } /// @@ -76,15 +55,8 @@ public Task TestTestSaveAndLoadWithThreeCountsAsync() [Test] public Task TestRefreshWithThreeCountsAsync() { - try - { - Project.TestAccessToList = true; - return SaveLoadAndRefreshProjectAsync(); - } - catch (System.Exception ex) - { - return Task.FromException(ex); - } + Project.TestAccessToList = true; + return SaveLoadAndRefreshProjectAsync(); } diff --git a/src/NHibernate.Test/Async/NHSpecificTest/NH372/Fixture.cs b/src/NHibernate.Test/Async/NHSpecificTest/NH372/Fixture.cs index c743fe4d59c..e348dfcb4ab 100644 --- a/src/NHibernate.Test/Async/NHSpecificTest/NH372/Fixture.cs +++ b/src/NHibernate.Test/Async/NHSpecificTest/NH372/Fixture.cs @@ -56,29 +56,15 @@ public override string BugNumber [Test] public Task ComponentFieldNotInsertedAsync() { - try - { - isDynamic = false; - return ComponentFieldNotInserted_GenericAsync(typeof(Parent)); - } - catch (Exception ex) - { - return Task.FromException(ex); - } + isDynamic = false; + return ComponentFieldNotInserted_GenericAsync(typeof(Parent)); } [Test] public Task ComponentFieldNotInserted_DynamicAsync() { - try - { - isDynamic = true; - return ComponentFieldNotInserted_GenericAsync(typeof(DynamicParent)); - } - catch (Exception ex) - { - return Task.FromException(ex); - } + isDynamic = true; + return ComponentFieldNotInserted_GenericAsync(typeof(DynamicParent)); } private async Task ComponentFieldNotUpdated_GenericAsync(System.Type type, CancellationToken cancellationToken = default(CancellationToken)) @@ -128,29 +114,15 @@ public Task ComponentFieldNotInserted_DynamicAsync() [Test] public Task ComponentFieldNotUpdatedAsync() { - try - { - isDynamic = false; - return ComponentFieldNotUpdated_GenericAsync(typeof(Parent)); - } - catch (Exception ex) - { - return Task.FromException(ex); - } + isDynamic = false; + return ComponentFieldNotUpdated_GenericAsync(typeof(Parent)); } [Test] public Task ComponentFieldNotUpdated_DynamicAsync() { - try - { - isDynamic = true; - return ComponentFieldNotUpdated_GenericAsync(typeof(DynamicParent)); - } - catch (Exception ex) - { - return Task.FromException(ex); - } + isDynamic = true; + return ComponentFieldNotUpdated_GenericAsync(typeof(DynamicParent)); } private async Task SubComponentFieldNotInserted_GenericAsync(System.Type type, CancellationToken cancellationToken = default(CancellationToken)) @@ -184,29 +156,15 @@ public Task ComponentFieldNotUpdated_DynamicAsync() [Test] public Task SubComponentFieldNotInsertedAsync() { - try - { - isDynamic = false; - return SubComponentFieldNotInserted_GenericAsync(typeof(Parent)); - } - catch (Exception ex) - { - return Task.FromException(ex); - } + isDynamic = false; + return SubComponentFieldNotInserted_GenericAsync(typeof(Parent)); } [Test] public Task SubComponentFieldNotInserted_DynamicAsync() { - try - { - isDynamic = false; - return SubComponentFieldNotInserted_GenericAsync(typeof(DynamicParent)); - } - catch (Exception ex) - { - return Task.FromException(ex); - } + isDynamic = false; + return SubComponentFieldNotInserted_GenericAsync(typeof(DynamicParent)); } private async Task SubComponentFieldNotUpdated_GenericAsync(System.Type type, CancellationToken cancellationToken = default(CancellationToken)) @@ -256,29 +214,15 @@ public Task SubComponentFieldNotInserted_DynamicAsync() [Test] public Task SubComponentFieldNotUpdatedAsync() { - try - { - isDynamic = false; - return SubComponentFieldNotUpdated_GenericAsync(typeof(Parent)); - } - catch (Exception ex) - { - return Task.FromException(ex); - } + isDynamic = false; + return SubComponentFieldNotUpdated_GenericAsync(typeof(Parent)); } [Test] public Task SubComponentFieldNotUpdated_DynamicAsync() { - try - { - isDynamic = false; - return SubComponentFieldNotUpdated_GenericAsync(typeof(DynamicParent)); - } - catch (Exception ex) - { - return Task.FromException(ex); - } + isDynamic = false; + return SubComponentFieldNotUpdated_GenericAsync(typeof(DynamicParent)); } protected override void OnTearDown() diff --git a/src/NHibernate.Test/Async/SystemTransactions/DistributedSystemTransactionFixture.cs b/src/NHibernate.Test/Async/SystemTransactions/DistributedSystemTransactionFixture.cs index d8cafe793a3..adf6c455d3c 100644 --- a/src/NHibernate.Test/Async/SystemTransactions/DistributedSystemTransactionFixture.cs +++ b/src/NHibernate.Test/Async/SystemTransactions/DistributedSystemTransactionFixture.cs @@ -690,16 +690,9 @@ public async Task EnforceConnectionUsageRulesOnTransactionCompletionAsync() private Task DodgeTransactionCompletionDelayIfRequiredAsync(CancellationToken cancellationToken = default(CancellationToken)) { - try - { - if (Sfi.ConnectionProvider.Driver.HasDelayedDistributedTransactionCompletion) - return Task.Delay(500, cancellationToken); - return Task.CompletedTask; - } - catch (Exception ex) - { - return Task.FromException(ex); - } + if (Sfi.ConnectionProvider.Driver.HasDelayedDistributedTransactionCompletion) + return Task.Delay(500, cancellationToken); + return Task.CompletedTask; } private void DodgeTransactionCompletionDelayIfRequired() diff --git a/src/NHibernate.Test/Async/Tools/hbm2ddl/SchemaUpdate/MigrationFixture.cs b/src/NHibernate.Test/Async/Tools/hbm2ddl/SchemaUpdate/MigrationFixture.cs index 6dee59c9771..783fdc0af02 100644 --- a/src/NHibernate.Test/Async/Tools/hbm2ddl/SchemaUpdate/MigrationFixture.cs +++ b/src/NHibernate.Test/Async/Tools/hbm2ddl/SchemaUpdate/MigrationFixture.cs @@ -62,33 +62,19 @@ public class MigrationFixtureAsync [Test] public Task SimpleColumnAdditionAsync() { - try - { - String resource2 = "NHibernate.Test.Tools.hbm2ddl.SchemaUpdate.2_Version.hbm.xml"; - String resource1 = "NHibernate.Test.Tools.hbm2ddl.SchemaUpdate.1_Version.hbm.xml"; + String resource2 = "NHibernate.Test.Tools.hbm2ddl.SchemaUpdate.2_Version.hbm.xml"; + String resource1 = "NHibernate.Test.Tools.hbm2ddl.SchemaUpdate.1_Version.hbm.xml"; - return MigrateSchemaAsync(resource1, resource2); - } - catch (Exception ex) - { - return Task.FromException(ex); - } + return MigrateSchemaAsync(resource1, resource2); } [Test] public Task SimpleColumnReplaceAsync() { - try - { - String resource2 = "NHibernate.Test.Tools.hbm2ddl.SchemaUpdate.2_Person.hbm.xml"; - String resource1 = "NHibernate.Test.Tools.hbm2ddl.SchemaUpdate.1_Person.hbm.xml"; + String resource2 = "NHibernate.Test.Tools.hbm2ddl.SchemaUpdate.2_Person.hbm.xml"; + String resource1 = "NHibernate.Test.Tools.hbm2ddl.SchemaUpdate.1_Person.hbm.xml"; - return MigrateSchemaAsync(resource1, resource2); - } - catch (Exception ex) - { - return Task.FromException(ex); - } + return MigrateSchemaAsync(resource1, resource2); } } } \ No newline at end of file diff --git a/src/NHibernate.Test/Async/Tools/hbm2ddl/SchemaValidator/SchemaValidateFixture.cs b/src/NHibernate.Test/Async/Tools/hbm2ddl/SchemaValidator/SchemaValidateFixture.cs index 1ca828eef59..3b90efab053 100644 --- a/src/NHibernate.Test/Async/Tools/hbm2ddl/SchemaValidator/SchemaValidateFixture.cs +++ b/src/NHibernate.Test/Async/Tools/hbm2ddl/SchemaValidator/SchemaValidateFixture.cs @@ -48,15 +48,8 @@ public void TearDown() [Test] public Task ShouldVerifySameTableAsync() { - try - { - var validator = new Tool.hbm2ddl.SchemaValidator((_configuration1)); - return validator.ValidateAsync(); - } - catch (System.Exception ex) - { - return Task.FromException(ex); - } + var validator = new Tool.hbm2ddl.SchemaValidator((_configuration1)); + return validator.ValidateAsync(); } #if NETFX diff --git a/src/NHibernate.Test/Async/TypesTest/AbstractDateTimeTypeFixture.cs b/src/NHibernate.Test/Async/TypesTest/AbstractDateTimeTypeFixture.cs index 8995595b6bf..5d43a01b086 100644 --- a/src/NHibernate.Test/Async/TypesTest/AbstractDateTimeTypeFixture.cs +++ b/src/NHibernate.Test/Async/TypesTest/AbstractDateTimeTypeFixture.cs @@ -217,15 +217,8 @@ public async Task ReadWriteAsync(DateTimeKind kind) [Test] public Task DbHasExpectedTypeAsync() { - try - { - var validator = new SchemaValidator(cfg); - return validator.ValidateAsync(); - } - catch (Exception ex) - { - return Task.FromException(ex); - } + var validator = new SchemaValidator(cfg); + return validator.ValidateAsync(); } [Test] diff --git a/src/NHibernate.Test/Async/TypesTest/DateTimeOffsetTypeFixture.cs b/src/NHibernate.Test/Async/TypesTest/DateTimeOffsetTypeFixture.cs index a6ef854fad2..31423baa0eb 100644 --- a/src/NHibernate.Test/Async/TypesTest/DateTimeOffsetTypeFixture.cs +++ b/src/NHibernate.Test/Async/TypesTest/DateTimeOffsetTypeFixture.cs @@ -190,15 +190,8 @@ public async Task ReadWriteAsync() [Test] public Task DbHasExpectedTypeAsync() { - try - { - var validator = new SchemaValidator(cfg); - return validator.ValidateAsync(); - } - catch (Exception ex) - { - return Task.FromException(ex); - } + var validator = new SchemaValidator(cfg); + return validator.ValidateAsync(); } [Test] diff --git a/src/NHibernate.Test/Async/TypesTest/DateTypeTest.cs b/src/NHibernate.Test/Async/TypesTest/DateTypeTest.cs index 3dd89c51e01..61a401fbfd5 100644 --- a/src/NHibernate.Test/Async/TypesTest/DateTypeTest.cs +++ b/src/NHibernate.Test/Async/TypesTest/DateTypeTest.cs @@ -39,31 +39,17 @@ protected override DateTime GetSameDate(DateTime original) [Test] public Task ReadWriteNormalAsync() { - try - { - var expected = DateTime.Today; + var expected = DateTime.Today; - return ReadWriteAsync(expected); - } - catch (Exception ex) - { - return Task.FromException(ex); - } + return ReadWriteAsync(expected); } [Test] public Task ReadWriteMinAsync() { - try - { - var expected = Sfi.ConnectionProvider.Driver.MinDate; + var expected = Sfi.ConnectionProvider.Driver.MinDate; - return ReadWriteAsync(expected); - } - catch (Exception ex) - { - return Task.FromException(ex); - } + return ReadWriteAsync(expected); } [Test] diff --git a/src/NHibernate/Async/Action/EntityIdentityInsertAction.cs b/src/NHibernate/Async/Action/EntityIdentityInsertAction.cs index 40b91719909..66f78f387f4 100644 --- a/src/NHibernate/Async/Action/EntityIdentityInsertAction.cs +++ b/src/NHibernate/Async/Action/EntityIdentityInsertAction.cs @@ -121,24 +121,17 @@ protected override Task AfterTransactionCompletionProcessImplAsync(bool success, { return Task.FromCanceled(cancellationToken); } - try - { - //TODO Make 100% certain that this is called before any subsequent ScheduledUpdate.afterTransactionCompletion()!! - //TODO from H3.2: reenable if we also fix the above todo - /*EntityPersister persister = getEntityPersister(); + //TODO Make 100% certain that this is called before any subsequent ScheduledUpdate.afterTransactionCompletion()!! + //TODO from H3.2: reenable if we also fix the above todo + /*EntityPersister persister = getEntityPersister(); if ( success && persister.hasCache() && !persister.isCacheInvalidationRequired() ) { persister.getCache().afterInsert( getGeneratedId(), cacheEntry ); }*/ - if (success) - { - return PostCommitInsertAsync(cancellationToken); - } - return Task.CompletedTask; - } - catch (Exception ex) + if (success) { - return Task.FromException(ex); + return PostCommitInsertAsync(cancellationToken); } + return Task.CompletedTask; } } } diff --git a/src/NHibernate/Async/AdoNet/AbstractBatcher.cs b/src/NHibernate/Async/AdoNet/AbstractBatcher.cs index af6e471c854..9ac50481b66 100644 --- a/src/NHibernate/Async/AdoNet/AbstractBatcher.cs +++ b/src/NHibernate/Async/AdoNet/AbstractBatcher.cs @@ -123,6 +123,7 @@ public async Task ExecuteNonQueryAsync(DbCommand cmd, CancellationToken can { return await (cmd.ExecuteNonQueryAsync(cancellationToken)).ConfigureAwait(false); } + catch (OperationCanceledException) { throw; } catch (Exception e) { e.Data["actual-sql-query"] = cmd.CommandText; @@ -150,6 +151,7 @@ public virtual async Task ExecuteReaderAsync(DbCommand cmd, Cancel { reader = await (cmd.ExecuteReaderAsync(cancellationToken)).ConfigureAwait(false); } + catch (OperationCanceledException) { throw; } catch (Exception e) { e.Data["actual-sql-query"] = cmd.CommandText; diff --git a/src/NHibernate/Async/Collection/AbstractPersistentCollection.cs b/src/NHibernate/Async/Collection/AbstractPersistentCollection.cs index a3a42ea5e1f..f07b57c036d 100644 --- a/src/NHibernate/Async/Collection/AbstractPersistentCollection.cs +++ b/src/NHibernate/Async/Collection/AbstractPersistentCollection.cs @@ -73,30 +73,23 @@ public virtual Task ForceInitializationAsync(CancellationToken cancellationToken { return Task.FromCanceled(cancellationToken); } - try + if (!initialized) { - if (!initialized) + if (initializing) { - if (initializing) - { - return Task.FromException(new AssertionFailure("force initialize loading collection")); - } - if (session == null) - { - return Task.FromException(new HibernateException("collection is not associated with any session")); - } - if (!session.IsConnected) - { - return Task.FromException(new HibernateException("disconnected session")); - } - return session.InitializeCollectionAsync(this, false, cancellationToken); + return Task.FromException(new AssertionFailure("force initialize loading collection")); } - return Task.CompletedTask; - } - catch (Exception ex) - { - return Task.FromException(ex); + if (session == null) + { + return Task.FromException(new HibernateException("collection is not associated with any session")); + } + if (!session.IsConnected) + { + return Task.FromException(new HibernateException("disconnected session")); + } + return session.InitializeCollectionAsync(this, false, cancellationToken); } + return Task.CompletedTask; } public Task GetQueuedOrphansAsync(string entityName, CancellationToken cancellationToken) diff --git a/src/NHibernate/Async/Collection/Generic/PersistentGenericIdentifierBag.cs b/src/NHibernate/Async/Collection/Generic/PersistentGenericIdentifierBag.cs index 99eac211529..6573a8f8509 100644 --- a/src/NHibernate/Async/Collection/Generic/PersistentGenericIdentifierBag.cs +++ b/src/NHibernate/Async/Collection/Generic/PersistentGenericIdentifierBag.cs @@ -193,6 +193,7 @@ public override async Task PreInsertAsync(ICollectionPersister persister, Cancel } } } + catch (OperationCanceledException) { throw; } catch (Exception sqle) { throw new ADOException("Could not generate idbag row id.", sqle); diff --git a/src/NHibernate/Async/Connection/DriverConnectionProvider.cs b/src/NHibernate/Async/Connection/DriverConnectionProvider.cs index 1523e597d3f..4c3358a5943 100644 --- a/src/NHibernate/Async/Connection/DriverConnectionProvider.cs +++ b/src/NHibernate/Async/Connection/DriverConnectionProvider.cs @@ -39,6 +39,7 @@ public override async Task GetConnectionAsync(CancellationToken ca conn.ConnectionString = ConnectionString; await (conn.OpenAsync(cancellationToken)).ConfigureAwait(false); } + catch (OperationCanceledException) { throw; } catch (Exception) { conn.Dispose(); diff --git a/src/NHibernate/Async/Context/ThreadLocalSessionContext.cs b/src/NHibernate/Async/Context/ThreadLocalSessionContext.cs index a2ebec50be5..5bc22c44d79 100644 --- a/src/NHibernate/Async/Context/ThreadLocalSessionContext.cs +++ b/src/NHibernate/Async/Context/ThreadLocalSessionContext.cs @@ -38,6 +38,7 @@ private static async Task CleanupAnyOrphanedSessionAsync(ISessionFactory factory { await (orphan.Transaction.RollbackAsync(cancellationToken)).ConfigureAwait(false); } + catch (OperationCanceledException) { throw; } catch (Exception ex) { log.Debug(ex, "Unable to rollback transaction for orphaned session"); @@ -45,6 +46,8 @@ private static async Task CleanupAnyOrphanedSessionAsync(ISessionFactory factory } orphan.Close(); } + + catch (OperationCanceledException) { throw; } catch (Exception ex) { log.Debug(ex, "Unable to close orphaned session"); diff --git a/src/NHibernate/Async/Driver/NDataReader.cs b/src/NHibernate/Async/Driver/NDataReader.cs index da0f878d864..b084d3b296e 100644 --- a/src/NHibernate/Async/Driver/NDataReader.cs +++ b/src/NHibernate/Async/Driver/NDataReader.cs @@ -60,6 +60,8 @@ public static async Task CreateAsync(DbDataReader reader, bool isMi dataReader.results = resultList.ToArray(); } + + catch (OperationCanceledException) { throw; } catch (Exception e) { throw new ADOException("There was a problem converting an DbDataReader to NDataReader", e); diff --git a/src/NHibernate/Async/Engine/ActionQueue.cs b/src/NHibernate/Async/Engine/ActionQueue.cs index 15a5951dbdd..2043a1e15da 100644 --- a/src/NHibernate/Async/Engine/ActionQueue.cs +++ b/src/NHibernate/Async/Engine/ActionQueue.cs @@ -46,18 +46,11 @@ private Task PreInvalidateCachesAsync(CancellationToken cancellationToken) { return Task.FromCanceled(cancellationToken); } - try - { - if (session.Factory.Settings.IsQueryCacheEnabled) - { - return session.Factory.UpdateTimestampsCache.PreInvalidateAsync(executedSpaces, cancellationToken); - } - return Task.CompletedTask; - } - catch (Exception ex) + if (session.Factory.Settings.IsQueryCacheEnabled) { - return Task.FromException(ex); + return session.Factory.UpdateTimestampsCache.PreInvalidateAsync(executedSpaces, cancellationToken); } + return Task.CompletedTask; } public async Task ExecuteAsync(IExecutable executable, CancellationToken cancellationToken) diff --git a/src/NHibernate/Async/Event/Default/AbstractVisitor.cs b/src/NHibernate/Async/Event/Default/AbstractVisitor.cs index 1729e45d40e..ac40e1dc682 100644 --- a/src/NHibernate/Async/Event/Default/AbstractVisitor.cs +++ b/src/NHibernate/Async/Event/Default/AbstractVisitor.cs @@ -38,7 +38,14 @@ internal virtual Task ProcessValueAsync(int i, object[] values, IType[] types, C { return Task.FromCanceled(cancellationToken); } - return ProcessValueAsync(values[i], types[i], cancellationToken); + try + { + return ProcessValueAsync(values[i], types[i], cancellationToken); + } + catch (System.Exception ex) + { + return Task.FromException(ex); + } } /// diff --git a/src/NHibernate/Async/Event/Default/DefaultFlushEntityEventListener.cs b/src/NHibernate/Async/Event/Default/DefaultFlushEntityEventListener.cs index 9bf172e0043..1341bccd9d2 100644 --- a/src/NHibernate/Async/Event/Default/DefaultFlushEntityEventListener.cs +++ b/src/NHibernate/Async/Event/Default/DefaultFlushEntityEventListener.cs @@ -342,33 +342,26 @@ protected Task IsUpdateNecessaryAsync(FlushEntityEvent @event, Cancellatio { return Task.FromCanceled(cancellationToken); } - try + IEntityPersister persister = @event.EntityEntry.Persister; + Status status = @event.EntityEntry.Status; + + if (!@event.DirtyCheckPossible) + { + return Task.FromResult(true); + } + else { - IEntityPersister persister = @event.EntityEntry.Persister; - Status status = @event.EntityEntry.Status; - if (!@event.DirtyCheckPossible) + int[] dirtyProperties = @event.DirtyProperties; + if (dirtyProperties != null && dirtyProperties.Length != 0) { - return Task.FromResult(true); + return Task.FromResult(true); //TODO: suck into event class } else { - - int[] dirtyProperties = @event.DirtyProperties; - if (dirtyProperties != null && dirtyProperties.Length != 0) - { - return Task.FromResult(true); //TODO: suck into event class - } - else - { - return HasDirtyCollectionsAsync(@event, persister, status, cancellationToken); - } + return HasDirtyCollectionsAsync(@event, persister, status, cancellationToken); } } - catch (Exception ex) - { - return Task.FromException(ex); - } } private async Task HasDirtyCollectionsAsync(FlushEntityEvent @event, IEntityPersister persister, Status status, CancellationToken cancellationToken) diff --git a/src/NHibernate/Async/Hql/Ast/ANTLR/Exec/AbstractStatementExecutor.cs b/src/NHibernate/Async/Hql/Ast/ANTLR/Exec/AbstractStatementExecutor.cs index 2df56664ab1..b3ba95f555e 100644 --- a/src/NHibernate/Async/Hql/Ast/ANTLR/Exec/AbstractStatementExecutor.cs +++ b/src/NHibernate/Async/Hql/Ast/ANTLR/Exec/AbstractStatementExecutor.cs @@ -114,6 +114,7 @@ protected virtual async Task DropTemporaryTableIfNecessaryAsync(IQueryable persi ps = await (session.Batcher.PrepareCommandAsync(CommandType.Text, commandText, Array.Empty(), cancellationToken)).ConfigureAwait(false); await (session.Batcher.ExecuteNonQueryAsync(ps, cancellationToken)).ConfigureAwait(false); } + catch (OperationCanceledException) { throw; } catch (Exception t) { log.Warn(t, "unable to cleanup temporary id table after use [{0}]", t); @@ -126,6 +127,7 @@ protected virtual async Task DropTemporaryTableIfNecessaryAsync(IQueryable persi { session.Batcher.CloseCommand(ps, null); } + catch (OperationCanceledException) { throw; } catch (Exception) { // ignore @@ -150,6 +152,7 @@ public async Task DoWorkAsync(DbConnection connection, DbTransaction transaction await (stmnt.ExecuteNonQueryAsync(cancellationToken)).ConfigureAwait(false); session.Factory.Settings.SqlStatementLogger.LogCommand(stmnt, FormatStyle.Ddl); } + catch (OperationCanceledException) { throw; } catch (Exception t) { log.Debug(t, "unable to create temporary id table [{0}]", t.Message); @@ -162,6 +165,7 @@ public async Task DoWorkAsync(DbConnection connection, DbTransaction transaction { stmnt.Dispose(); } + catch (OperationCanceledException) { throw; } catch (Exception) { // ignore @@ -186,6 +190,7 @@ public async Task DoWorkAsync(DbConnection connection, DbTransaction transaction await (stmnt.ExecuteNonQueryAsync(cancellationToken)).ConfigureAwait(false); session.Factory.Settings.SqlStatementLogger.LogCommand(stmnt, FormatStyle.Ddl); } + catch (OperationCanceledException) { throw; } catch (Exception t) { log.Warn("unable to drop temporary id table after use [{0}]", t.Message); @@ -198,6 +203,7 @@ public async Task DoWorkAsync(DbConnection connection, DbTransaction transaction { stmnt.Dispose(); } + catch (OperationCanceledException) { throw; } catch (Exception) { // ignore diff --git a/src/NHibernate/Async/Id/Enhanced/SequenceStructure.cs b/src/NHibernate/Async/Id/Enhanced/SequenceStructure.cs index a3a7fd57d54..fb61f4b0e40 100644 --- a/src/NHibernate/Async/Id/Enhanced/SequenceStructure.cs +++ b/src/NHibernate/Async/Id/Enhanced/SequenceStructure.cs @@ -58,6 +58,7 @@ public virtual async Task GetNextValueAsync(CancellationToken cancellation { rs.Close(); } + catch (OperationCanceledException) { throw; } catch { // intentionally empty diff --git a/src/NHibernate/Async/Id/Enhanced/TableGenerator.cs b/src/NHibernate/Async/Id/Enhanced/TableGenerator.cs index 887a6064f32..34e86fbda7d 100644 --- a/src/NHibernate/Async/Id/Enhanced/TableGenerator.cs +++ b/src/NHibernate/Async/Id/Enhanced/TableGenerator.cs @@ -101,6 +101,8 @@ public override async Task DoWorkInCurrentTransactionAsync(ISessionImple result = Convert.ToInt64(selectedValue); } } + + catch (OperationCanceledException) { throw; } catch (Exception ex) { log.Error(ex, "Unable to read or initialize hi value in {0}", TableName); @@ -124,6 +126,9 @@ public override async Task DoWorkInCurrentTransactionAsync(ISessionImple updatedRows = await (updateCmd.ExecuteNonQueryAsync(cancellationToken)).ConfigureAwait(false); } } + + + catch (OperationCanceledException) { throw; } catch (Exception ex) { log.Error(ex, "Unable to update hi value in {0}", TableName); diff --git a/src/NHibernate/Async/Id/Enhanced/TableStructure.cs b/src/NHibernate/Async/Id/Enhanced/TableStructure.cs index 7e109008d20..021b291eb6a 100644 --- a/src/NHibernate/Async/Id/Enhanced/TableStructure.cs +++ b/src/NHibernate/Async/Id/Enhanced/TableStructure.cs @@ -55,6 +55,7 @@ public override async Task DoWorkInCurrentTransactionAsync(ISessionImple } result = Convert.ToInt64(selectedValue); } + catch (OperationCanceledException) { throw; } catch (Exception sqle) { Log.Error(sqle, "could not read a hi value"); @@ -76,6 +77,8 @@ public override async Task DoWorkInCurrentTransactionAsync(ISessionImple updatedRows = await (updateCmd.ExecuteNonQueryAsync(cancellationToken)).ConfigureAwait(false); } } + + catch (OperationCanceledException) { throw; } catch (Exception sqle) { Log.Error(sqle, "could not update hi value in: {0}", _tableName); diff --git a/src/NHibernate/Async/Id/IdentifierGeneratorFactory.cs b/src/NHibernate/Async/Id/IdentifierGeneratorFactory.cs index 4157080eea4..d28f1feb0c3 100644 --- a/src/NHibernate/Async/Id/IdentifierGeneratorFactory.cs +++ b/src/NHibernate/Async/Id/IdentifierGeneratorFactory.cs @@ -72,6 +72,10 @@ public static async Task GetAsync(DbDataReader rs, IType type, ISessionI { return await (type.NullSafeGetAsync(rs, rs.GetName(0), session, null, cancellationToken)).ConfigureAwait(false); } + // here is an interesting one: + // - MsSql's @@identity returns a Decimal + // - MySql LAST_IDENITY() returns an Int64 + catch (OperationCanceledException) { throw; } catch (Exception e) { throw new IdentifierGenerationException("could not retrieve identifier value", e); diff --git a/src/NHibernate/Async/Id/NativeGuidGenerator.cs b/src/NHibernate/Async/Id/NativeGuidGenerator.cs index 50484fcd52a..29e20e4ffbd 100644 --- a/src/NHibernate/Async/Id/NativeGuidGenerator.cs +++ b/src/NHibernate/Async/Id/NativeGuidGenerator.cs @@ -56,6 +56,7 @@ public async Task GenerateAsync(ISessionImplementor session, object obj, session.Batcher.CloseCommand(st, reader); } } + catch (OperationCanceledException) { throw; } catch (Exception sqle) { throw ADOExceptionHelper.Convert(session.Factory.SQLExceptionConverter, sqle, "could not retrieve GUID", sql); diff --git a/src/NHibernate/Async/Id/TableGenerator.cs b/src/NHibernate/Async/Id/TableGenerator.cs index 15707b36549..232c591a061 100644 --- a/src/NHibernate/Async/Id/TableGenerator.cs +++ b/src/NHibernate/Async/Id/TableGenerator.cs @@ -87,6 +87,7 @@ public override async Task DoWorkInCurrentTransactionAsync(ISessionImple } result = Convert.ToInt64(columnType.Get(rs, 0, session)); } + catch (OperationCanceledException) { throw; } catch (Exception e) { log.Error(e, "could not read a hi value"); @@ -114,6 +115,8 @@ public override async Task DoWorkInCurrentTransactionAsync(ISessionImple rows = await (ups.ExecuteNonQueryAsync(cancellationToken)).ConfigureAwait(false); } + + catch (OperationCanceledException) { throw; } catch (Exception e) { log.Error(e, "could not update hi value in: {0}", tableName); diff --git a/src/NHibernate/Async/Impl/MultiCriteriaImpl.cs b/src/NHibernate/Async/Impl/MultiCriteriaImpl.cs index 47514f9cdf0..acb0dd512b8 100644 --- a/src/NHibernate/Async/Impl/MultiCriteriaImpl.cs +++ b/src/NHibernate/Async/Impl/MultiCriteriaImpl.cs @@ -205,6 +205,8 @@ private async Task GetResultsFromDatabaseAsync(IList results, CancellationToken } } } + + catch (OperationCanceledException) { throw; } catch (Exception sqle) { log.Error(sqle, "Failed to execute multi criteria: [{0}]", resultSetsCommand.Sql); diff --git a/src/NHibernate/Async/Impl/MultiQueryImpl.cs b/src/NHibernate/Async/Impl/MultiQueryImpl.cs index fab607a0bf7..f5b133a0a3e 100644 --- a/src/NHibernate/Async/Impl/MultiQueryImpl.cs +++ b/src/NHibernate/Async/Impl/MultiQueryImpl.cs @@ -173,6 +173,8 @@ protected async Task> DoListAsync(CancellationToken cancellationTok } } } + + catch (OperationCanceledException) { throw; } catch (Exception sqle) { log.Error(sqle, "Failed to execute multi query: [{0}]", resultSetsCommand.Sql); diff --git a/src/NHibernate/Async/Impl/SessionImpl.cs b/src/NHibernate/Async/Impl/SessionImpl.cs index 5ab05babfb5..50beb60107b 100644 --- a/src/NHibernate/Async/Impl/SessionImpl.cs +++ b/src/NHibernate/Async/Impl/SessionImpl.cs @@ -64,6 +64,8 @@ public override async Task AfterTransactionCompletionAsync(bool success, ITransa { Interceptor.AfterTransactionCompletion(tx); } + + catch (OperationCanceledException) { throw; } catch (Exception t) { log.Error(t, "exception in interceptor afterTransactionCompletion()"); @@ -1246,6 +1248,7 @@ public override async Task BeforeTransactionCompletionAsync(ITransaction tx, Can { Interceptor.BeforeTransactionCompletion(tx); } + catch (OperationCanceledException) { throw; } catch (Exception e) { log.Error(e, "exception in interceptor BeforeTransactionCompletion()"); @@ -1261,16 +1264,9 @@ public override Task FlushBeforeTransactionCompletionAsync(CancellationToken can { return Task.FromCanceled(cancellationToken); } - try - { - if (FlushMode != FlushMode.Manual) - return FlushAsync(cancellationToken); - return Task.CompletedTask; - } - catch (Exception ex) - { - return Task.FromException(ex); - } + if (FlushMode != FlushMode.Manual) + return FlushAsync(cancellationToken); + return Task.CompletedTask; } private async Task FireDeleteAsync(DeleteEvent @event, CancellationToken cancellationToken) diff --git a/src/NHibernate/Async/Impl/StatelessSessionImpl.cs b/src/NHibernate/Async/Impl/StatelessSessionImpl.cs index ce0fe896e0a..59fed5457d7 100644 --- a/src/NHibernate/Async/Impl/StatelessSessionImpl.cs +++ b/src/NHibernate/Async/Impl/StatelessSessionImpl.cs @@ -203,20 +203,13 @@ public override Task BeforeTransactionCompletionAsync(ITransaction tx, Cancellat { return Task.FromCanceled(cancellationToken); } - try - { - var context = TransactionContext; - if (tx == null && context == null) - return Task.FromException(new InvalidOperationException("Cannot complete a transaction without neither an explicit transaction nor an ambient one.")); - // Always allow flushing from explicit transactions, otherwise check if flushing from scope is enabled. - if (tx != null || context.CanFlushOnSystemTransactionCompleted) - return FlushBeforeTransactionCompletionAsync(cancellationToken); - return Task.CompletedTask; - } - catch (Exception ex) - { - return Task.FromException(ex); - } + var context = TransactionContext; + if (tx == null && context == null) + return Task.FromException(new InvalidOperationException("Cannot complete a transaction without neither an explicit transaction nor an ambient one.")); + // Always allow flushing from explicit transactions, otherwise check if flushing from scope is enabled. + if (tx != null || context.CanFlushOnSystemTransactionCompleted) + return FlushBeforeTransactionCompletionAsync(cancellationToken); + return Task.CompletedTask; } public override Task FlushBeforeTransactionCompletionAsync(CancellationToken cancellationToken) @@ -225,16 +218,9 @@ public override Task FlushBeforeTransactionCompletionAsync(CancellationToken can { return Task.FromCanceled(cancellationToken); } - try - { - if (FlushMode != FlushMode.Manual) - return FlushAsync(cancellationToken); - return Task.CompletedTask; - } - catch (Exception ex) - { - return Task.FromException(ex); - } + if (FlushMode != FlushMode.Manual) + return FlushAsync(cancellationToken); + return Task.CompletedTask; } public override Task AfterTransactionCompletionAsync(bool successful, ITransaction tx, CancellationToken cancellationToken) diff --git a/src/NHibernate/Async/Loader/Loader.cs b/src/NHibernate/Async/Loader/Loader.cs index 491e8153aa9..db5c371047a 100644 --- a/src/NHibernate/Async/Loader/Loader.cs +++ b/src/NHibernate/Async/Loader/Loader.cs @@ -298,6 +298,8 @@ private async Task DoQueryAsync(ISessionImplementor session, QueryParamet Log.Debug("done processing result set ({0} rows)", count); } } + + catch (OperationCanceledException) { throw; } catch (Exception e) { e.Data["actual-sql-query"] = st.CommandText; @@ -893,6 +895,7 @@ protected async Task GetResultSetAsync( } return rs; } + catch (OperationCanceledException) { throw; } catch (Exception sqle) { ADOExceptionReporter.LogExceptions(sqle); @@ -955,6 +958,7 @@ protected async Task LoadEntityAsync(ISessionImplementor session, object new QueryParameters(new IType[] { keyType, indexType }, new object[] { key, index }), false, cancellationToken)).ConfigureAwait(false); } + catch (OperationCanceledException) { throw; } catch (Exception sqle) { throw ADOExceptionHelper.Convert(_factory.SQLExceptionConverter, sqle, "could not collection element by index", diff --git a/src/NHibernate/Async/Persister/Collection/AbstractCollectionPersister.cs b/src/NHibernate/Async/Persister/Collection/AbstractCollectionPersister.cs index eaee0545ee1..fd9f7181437 100644 --- a/src/NHibernate/Async/Persister/Collection/AbstractCollectionPersister.cs +++ b/src/NHibernate/Async/Persister/Collection/AbstractCollectionPersister.cs @@ -217,6 +217,8 @@ public async Task RemoveAsync(object id, ISessionImplementor session, Cancellati expectation.VerifyOutcomeNonBatched(await (session.Batcher.ExecuteNonQueryAsync(st, cancellationToken)).ConfigureAwait(false), st); } } + + catch (OperationCanceledException) { throw; } catch (Exception e) { if (useBatch) @@ -376,6 +378,7 @@ public async Task DeleteRowsAsync(IPersistentCollection collection, object id, I } count++; } + catch (OperationCanceledException) { throw; } catch (Exception e) { if (useBatch) @@ -517,6 +520,7 @@ protected async Task PerformInsertAsync(object ownerId, IPersistentColle expectation.VerifyOutcomeNonBatched(await (session.Batcher.ExecuteNonQueryAsync(st, cancellationToken)).ConfigureAwait(false), st); } } + catch (OperationCanceledException) { throw; } catch (Exception e) { if (useBatch) @@ -552,15 +556,8 @@ protected Task PerformInsertAsync(object ownerId, IPersistentCollection { return Task.FromCanceled(cancellationToken); } - try - { - IBinder binder = new GeneratedIdentifierBinder(ownerId, collection, entry, index, session, this); - return identityDelegate.PerformInsertAsync(SqlInsertRowString, session, binder, cancellationToken); - } - catch (Exception ex) - { - return Task.FromException(ex); - } + IBinder binder = new GeneratedIdentifierBinder(ownerId, collection, entry, index, session, this); + return identityDelegate.PerformInsertAsync(SqlInsertRowString, session, binder, cancellationToken); } protected partial class GeneratedIdentifierBinder : IBinder diff --git a/src/NHibernate/Async/Persister/Collection/BasicCollectionPersister.cs b/src/NHibernate/Async/Persister/Collection/BasicCollectionPersister.cs index 49a3a415ccd..2112d5d8e52 100644 --- a/src/NHibernate/Async/Persister/Collection/BasicCollectionPersister.cs +++ b/src/NHibernate/Async/Persister/Collection/BasicCollectionPersister.cs @@ -98,6 +98,8 @@ protected override async Task DoUpdateRowsAsync(object id, IPersistentColle expectation.VerifyOutcomeNonBatched(await (session.Batcher.ExecuteNonQueryAsync(st, cancellationToken)).ConfigureAwait(false), st); } } + + catch (OperationCanceledException) { throw; } catch (Exception e) { if (useBatch) diff --git a/src/NHibernate/Async/Persister/Collection/OneToManyPersister.cs b/src/NHibernate/Async/Persister/Collection/OneToManyPersister.cs index 4e431d4102e..b601423ffad 100644 --- a/src/NHibernate/Async/Persister/Collection/OneToManyPersister.cs +++ b/src/NHibernate/Async/Persister/Collection/OneToManyPersister.cs @@ -81,6 +81,8 @@ protected override async Task DoUpdateRowsAsync(object id, IPersistentColle deleteExpectation.VerifyOutcomeNonBatched(await (session.Batcher.ExecuteNonQueryAsync(st, cancellationToken)).ConfigureAwait(false), st); } } + + catch (OperationCanceledException) { throw; } catch (Exception e) { if (useBatch) @@ -146,6 +148,8 @@ protected override async Task DoUpdateRowsAsync(object id, IPersistentColle insertExpectation.VerifyOutcomeNonBatched(await (session.Batcher.ExecuteNonQueryAsync(st, cancellationToken)).ConfigureAwait(false), st); } } + + catch (OperationCanceledException) { throw; } catch (Exception e) { if (useBatch) diff --git a/src/NHibernate/Async/Persister/Entity/AbstractEntityPersister.cs b/src/NHibernate/Async/Persister/Entity/AbstractEntityPersister.cs index 913844ddc20..920da1c6896 100644 --- a/src/NHibernate/Async/Persister/Entity/AbstractEntityPersister.cs +++ b/src/NHibernate/Async/Persister/Entity/AbstractEntityPersister.cs @@ -288,6 +288,7 @@ protected async Task DehydrateAsync(object id, object[] fields, object rowI await (PropertyTypes[i].NullSafeSetAsync(statement, fields[i], index, includeColumns[i], session, cancellationToken)).ConfigureAwait(false); index += ArrayHelper.CountTrue(includeColumns[i]); //TODO: this is kinda slow... } + catch (OperationCanceledException) { throw; } catch (Exception ex) { throw new PropertyValueException("Error dehydrating property value for", EntityName, entityMetamodel.PropertyNames[i], ex); @@ -520,6 +521,8 @@ protected async Task InsertAsync(object id, object[] fields, bool[] notNull, int expectation.VerifyOutcomeNonBatched(await (session.Batcher.ExecuteNonQueryAsync(insertCmd, cancellationToken)).ConfigureAwait(false), insertCmd); } } + + catch (OperationCanceledException) { throw; } catch (Exception e) { if (useBatch) @@ -787,6 +790,8 @@ public async Task DeleteAsync(object id, object version, int j, object obj, SqlC Check(await (session.Batcher.ExecuteNonQueryAsync(statement, cancellationToken)).ConfigureAwait(false), tableId, j, expectation, statement); } } + + catch (OperationCanceledException) { throw; } catch (Exception e) { if (useBatch) diff --git a/src/NHibernate/Async/Tool/hbm2ddl/SchemaExport.cs b/src/NHibernate/Async/Tool/hbm2ddl/SchemaExport.cs index f0fa0db18f3..383d3d5277a 100644 --- a/src/NHibernate/Async/Tool/hbm2ddl/SchemaExport.cs +++ b/src/NHibernate/Async/Tool/hbm2ddl/SchemaExport.cs @@ -170,6 +170,7 @@ private async Task ExecuteInitializedAsync(Action scriptAction, bool exe await (ExecuteSqlAsync(statement, sql, cancellationToken)).ConfigureAwait(false); } } + catch (OperationCanceledException) { throw; } catch (Exception e) { log.Warn("Unsuccessful: {0}", sql); @@ -286,6 +287,7 @@ public async Task ExecuteAsync(Action scriptAction, bool execute, bool j statement.Dispose(); } } + catch (OperationCanceledException) { throw; } catch (Exception e) { log.Error(e, "Could not close connection: {0}", e.Message); @@ -296,6 +298,7 @@ public async Task ExecuteAsync(Action scriptAction, bool execute, bool j { exportOutput.Close(); } + catch (OperationCanceledException) { throw; } catch (Exception ioe) { log.Error(ioe, "Error closing output file {0}: {1}", outputFile, ioe.Message); diff --git a/src/NHibernate/Async/Tool/hbm2ddl/SchemaUpdate.cs b/src/NHibernate/Async/Tool/hbm2ddl/SchemaUpdate.cs index 29da96ca5f6..ec763852597 100644 --- a/src/NHibernate/Async/Tool/hbm2ddl/SchemaUpdate.cs +++ b/src/NHibernate/Async/Tool/hbm2ddl/SchemaUpdate.cs @@ -97,6 +97,7 @@ public partial class SchemaUpdate await (new SchemaUpdate(cfg).ExecuteAsync(script, doUpdate, cancellationToken)).ConfigureAwait(false); } + catch (OperationCanceledException) { throw; } catch (Exception e) { log.Error(e, "Error running schema update"); @@ -159,6 +160,7 @@ public partial class SchemaUpdate meta = new DatabaseMetadata(connection, dialect); stmt = connection.CreateCommand(); } + catch (OperationCanceledException) { throw; } catch (Exception sqle) { exceptions.Add(sqle); @@ -187,6 +189,8 @@ public partial class SchemaUpdate await (stmt.ExecuteNonQueryAsync(cancellationToken)).ConfigureAwait(false); } } + + catch (OperationCanceledException) { throw; } catch (Exception e) { exceptions.Add(e); @@ -196,6 +200,8 @@ public partial class SchemaUpdate log.Info("schema update complete"); } + + catch (OperationCanceledException) { throw; } catch (Exception e) { exceptions.Add(e); @@ -211,6 +217,7 @@ public partial class SchemaUpdate } connectionHelper.Release(); } + catch (OperationCanceledException) { throw; } catch (Exception e) { exceptions.Add(e); diff --git a/src/NHibernate/Async/Tool/hbm2ddl/SchemaValidator.cs b/src/NHibernate/Async/Tool/hbm2ddl/SchemaValidator.cs index adce3ee8e02..950159115f7 100644 --- a/src/NHibernate/Async/Tool/hbm2ddl/SchemaValidator.cs +++ b/src/NHibernate/Async/Tool/hbm2ddl/SchemaValidator.cs @@ -66,6 +66,7 @@ public partial class SchemaValidator */ await (new SchemaValidator(cfg).ValidateAsync(cancellationToken)).ConfigureAwait(false); } + catch (OperationCanceledException) { throw; } catch (Exception e) { log.Error(e, "Error running schema update"); @@ -88,6 +89,7 @@ public partial class SchemaValidator var connection = connectionHelper.Connection; meta = new DatabaseMetadata(connection, dialect, false); } + catch (OperationCanceledException) { throw; } catch (Exception sqle) { log.Error(sqle, "could not get database metadata"); @@ -95,6 +97,7 @@ public partial class SchemaValidator } configuration.ValidateSchema(dialect, meta); } + catch (OperationCanceledException) { throw; } catch (Exception e) { log.Error(e, "could not complete schema validation"); @@ -106,6 +109,7 @@ public partial class SchemaValidator { connectionHelper.Release(); } + catch (OperationCanceledException) { throw; } catch (Exception e) { log.Error(e, "Error closing connection"); diff --git a/src/NHibernate/Async/Type/AnyType.cs b/src/NHibernate/Async/Type/AnyType.cs index 57347f1c602..5a913610808 100644 --- a/src/NHibernate/Async/Type/AnyType.cs +++ b/src/NHibernate/Async/Type/AnyType.cs @@ -116,15 +116,8 @@ public override Task AssembleAsync(object cached, ISessionImplementor se { return Task.FromCanceled(cancellationToken); } - try - { - ObjectTypeCacheEntry e = cached as ObjectTypeCacheEntry; - return (e == null) ? Task.FromResult(null ): session.InternalLoadAsync(e.entityName, e.id, false, false, cancellationToken); - } - catch (Exception ex) - { - return Task.FromException(ex); - } + ObjectTypeCacheEntry e = cached as ObjectTypeCacheEntry; + return (e == null) ? Task.FromResult(null ): session.InternalLoadAsync(e.entityName, e.id, false, false, cancellationToken); } public override async Task DisassembleAsync(object value, ISessionImplementor session, object owner, CancellationToken cancellationToken) diff --git a/src/NHibernate/Async/Type/ClassMetaType.cs b/src/NHibernate/Async/Type/ClassMetaType.cs index bccfda22aea..71dab9deb5b 100644 --- a/src/NHibernate/Async/Type/ClassMetaType.cs +++ b/src/NHibernate/Async/Type/ClassMetaType.cs @@ -26,7 +26,14 @@ public override Task NullSafeGetAsync(DbDataReader rs, string[] names, I { return Task.FromCanceled(cancellationToken); } - return NullSafeGetAsync(rs, names[0], session, owner, cancellationToken); + try + { + return NullSafeGetAsync(rs, names[0], session, owner, cancellationToken); + } + catch (Exception ex) + { + return Task.FromException(ex); + } } public override Task NullSafeGetAsync(DbDataReader rs,string name,ISessionImplementor session,object owner, CancellationToken cancellationToken) diff --git a/src/NHibernate/Async/Type/MetaType.cs b/src/NHibernate/Async/Type/MetaType.cs index ec5cea71ab3..9bc710840d9 100644 --- a/src/NHibernate/Async/Type/MetaType.cs +++ b/src/NHibernate/Async/Type/MetaType.cs @@ -58,7 +58,14 @@ public override Task NullSafeSetAsync(DbCommand st,object value,int index,ISessi { return Task.FromCanceled(cancellationToken); } - return baseType.NullSafeSetAsync(st, value == null ? null : keys[(string)value], index, session, cancellationToken); + try + { + return baseType.NullSafeSetAsync(st, value == null ? null : keys[(string)value], index, session, cancellationToken); + } + catch (Exception ex) + { + return Task.FromException(ex); + } } public override async Task IsDirtyAsync(object old, object current, bool[] checkable, ISessionImplementor session, CancellationToken cancellationToken)