Andrus Adamchik created CAY-2988:
------------------------------------
Summary: Nested iterated queries transaction handling
Key: CAY-2988
URL: https://issues.apache.org/jira/browse/CAY-2988
Project: Cayenne
Issue Type: Bug
Reporter: Andrus Adamchik
Assignee: Andrus Adamchik
Fix For: 5.0-M3
Looks like M2 has a regression vs 4.2.x in transaction handling in result
iterators. A few cases:
h2. Nested iterators
{noformat}
txManager.performInTransaction(() -> {
try (ResultIterator<Artist> outer =
ObjectSelect.query(Artist.class).iterator(context)) {
try (ResultIterator<Painting> inner =
ObjectSelect.query(Painting.class).iterator(context)) {
}
}
});
{noformat}
{noformat}
org.apache.cayenne.CayenneRuntimeException: [v.5.0-SNAPSHOT Jul 18 2026
19:33:50] java.sql.SQLNonTransientConnectionException: connection exception:
connection does not exist
at
org.apache.cayenne.tx.CayenneTransaction.processRollback(CayenneTransaction.java:140)
at
org.apache.cayenne.tx.BaseTransaction.rollback(BaseTransaction.java:183)
at
org.apache.cayenne.tx.DefaultTransactionManager$BaseTransactionHandler.performInNewTransaction(DefaultTransactionManager.java:171)
at
org.apache.cayenne.tx.DefaultTransactionManager$NestedTransactionHandler.handle(DefaultTransactionManager.java:101)
at
org.apache.cayenne.tx.DefaultTransactionManager.performInTransaction(DefaultTransactionManager.java:62)
at
org.apache.cayenne.tx.DefaultTransactionManager.performInTransaction(DefaultTransactionManager.java:41)
at
org.apache.cayenne.access.DataContextIteratedQueryIT.iterator_NestedIteratorInCallerTransaction(DataContextIteratedQueryIT.java:262)
...
Caused by: java.sql.SQLNonTransientConnectionException: connection exception:
connection does not exist
at org.hsqldb.jdbc.JDBCUtil.sqlException(Unknown Source)
at org.hsqldb.jdbc.JDBCUtil.sqlException(Unknown Source)
at org.hsqldb.jdbc.JDBCUtil.sqlException(Unknown Source)
at org.hsqldb.jdbc.JDBCUtil.connectionClosedException(Unknown Source)
at org.hsqldb.jdbc.JDBCConnection.checkClosed(Unknown Source)
at org.hsqldb.jdbc.JDBCConnection.rollback(Unknown Source)
at
org.apache.cayenne.datasource.PoolAwareConnection.rollback(PoolAwareConnection.java:278)
at
org.apache.cayenne.tx.TransactionConnectionDecorator.rollback(TransactionConnectionDecorator.java:200)
at
org.apache.cayenne.tx.CayenneTransaction.processRollback(CayenneTransaction.java:130)
... 80 more
Caused by: org.hsqldb.HsqlException: connection exception: connection does not
exist
at org.hsqldb.error.Error.error(Unknown Source)
at org.hsqldb.error.Error.error(Unknown Source)
... 87 more
{noformat}
h2. ...
--
This message was sent by Atlassian Jira
(v8.20.10#820010)