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)

Reply via email to