[ https://issues.apache.org/jira/browse/IGNITE-17998?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Pavel Pereslegin updated IGNITE-17998: -------------------------------------- Description: ItSqlAsynchronousApiTest#closeSession is unstable. {noformat} org.opentest4j.AssertionFailedError: Exception is neither of a specified class, nor has a cause of the specified class: class org.apache.ignite.sql.SqlException at org.junit.jupiter.api.AssertionUtils.fail(AssertionUtils.java:43) at org.junit.jupiter.api.Assertions.fail(Assertions.java:146) at org.apache.ignite.internal.testframework.IgniteTestUtils.assertThrowsWithCause(IgniteTestUtils.java:284) at org.apache.ignite.internal.testframework.IgniteTestUtils.assertThrowsWithCause(IgniteTestUtils.java:264) at org.apache.ignite.internal.sql.api.ItSqlAsynchronousApiTest.closeSession(ItSqlAsynchronousApiTest.java:541) {noformat} h3. {*}UPDATE{*}: Since the test shows that the current behavior of "fetchNextPage" is unstable on a closed session, we decided to investigate other possible use-cases on a closed session. h4. The results are as follows: The behavior of the "execute*" session methods on a closed session is correct - we throw a SqlException with the message "Session is closed" for any local execution. Session return sync or async resultset. The "hasRowSet/affectedRows/wasApplied/metadata" methods are generic and give the expected results in a closed session with no errors. The results of the rest of the methods are presented in the following table. ||*ResultSet type*||*Method*||*RESULT*|| || || || ||*Data absent*||{*}Data present (pageSize=2){*}{*}{{*}}|| |*sync*|*hasNext*|false|true| | |*next*|NoSuchElementException|4 rows, then CursorClosedException| | | | | | |*async*|*CurrentPage (hasNext)*|false|true| | |*currentPageSize*|0|2| | |*hasMorePages*|false|true| | |*fetchNextPage*|SqlException IGN-SQL-1 There are no more pages.|Expected: CursorClosedException Currently: No exception or CursorClosedException or ExecutionCancelledException| |*ResultSet type*|*Method*|*RESULT*| | |*Data absent*|*Data present (pageSize=2)*| |sync|*hasNext*|false|true| |*next*|NoSuchElementException|4 rows, then CursorClosedException| | | |async|*CurrentPage (hasNext)*|false|true| |*currentPageSize*|0|2| |*hasMorePages*|false|true| |*fetchNextPage*|SqlException IGN-SQL-1 There are no more pages.|Expected: CursorClosedException Currently: No exception or CursorClosedException or ExecutionCancelledException| was: ItSqlAsynchronousApiTest#closeSession is unstable. {noformat} org.opentest4j.AssertionFailedError: Exception is neither of a specified class, nor has a cause of the specified class: class org.apache.ignite.sql.SqlException at org.junit.jupiter.api.AssertionUtils.fail(AssertionUtils.java:43) at org.junit.jupiter.api.Assertions.fail(Assertions.java:146) at org.apache.ignite.internal.testframework.IgniteTestUtils.assertThrowsWithCause(IgniteTestUtils.java:284) at org.apache.ignite.internal.testframework.IgniteTestUtils.assertThrowsWithCause(IgniteTestUtils.java:264) at org.apache.ignite.internal.sql.api.ItSqlAsynchronousApiTest.closeSession(ItSqlAsynchronousApiTest.java:541) {noformat} h3. {*}UPDATE{*}: Since the test shows that the current behavior of "fetchNextPage" is unstable on a closed session, we decided to investigate other possible use-cases on a closed session. h4. The results are as follows: The behavior of the "execute*" session methods on a closed session is correct - we throw a SqlException with the message "Session is closed" for any local execution. Session return sync or async resultset. The "hasRowSet/affectedRows/wasApplied/metadata" methods are generic and give the expected results in a closed session with no errors. The results of the rest of the methods are presented in the following table. ||*ResultSet type*||*Method*||*RESULT*|| | | || || ||*Data absent*||{*}Data present (pageSize=2){*}{*}{*}|| || |*sync*|*hasNext*|false|true| | | |*next*|NoSuchElementException|4 rows, then CursorClosedException| | | | | | | | |*async*|*CurrentPage (hasNext)*|false|true| | | |*currentPageSize*|0|2| | | |*hasMorePages*|false|true| | | |*fetchNextPage*|SqlException IGN-SQL-1 There are no more pages.|Expected: CursorClosedException Currently: No exception or CursorClosedException or ExecutionCancelledException| | |*ResultSet type*|*Method*|*RESULT*| | |*Data absent*|*Data present (pageSize=2)*| |sync|*hasNext*|false|true| |*next*|NoSuchElementException|4 rows, then CursorClosedException| | | |async|*CurrentPage (hasNext)*|false|true| |*currentPageSize*|0|2| |*hasMorePages*|false|true| |*fetchNextPage*|SqlException IGN-SQL-1 There are no more pages.|Expected: CursorClosedException Currently: No exception or CursorClosedException or ExecutionCancelledException| > ItSqlAsynchronousApiTest#closeSession is unstable. > -------------------------------------------------- > > Key: IGNITE-17998 > URL: https://issues.apache.org/jira/browse/IGNITE-17998 > Project: Ignite > Issue Type: Bug > Components: sql > Affects Versions: 3.0.0-alpha5 > Reporter: Evgeny Stanilovsky > Assignee: Pavel Pereslegin > Priority: Major > Labels: ignite-3 > > ItSqlAsynchronousApiTest#closeSession is unstable. > {noformat} > org.opentest4j.AssertionFailedError: Exception is neither of a specified > class, nor has a cause of the specified class: class > org.apache.ignite.sql.SqlException > at org.junit.jupiter.api.AssertionUtils.fail(AssertionUtils.java:43) > at org.junit.jupiter.api.Assertions.fail(Assertions.java:146) > at > org.apache.ignite.internal.testframework.IgniteTestUtils.assertThrowsWithCause(IgniteTestUtils.java:284) > at > org.apache.ignite.internal.testframework.IgniteTestUtils.assertThrowsWithCause(IgniteTestUtils.java:264) > at > org.apache.ignite.internal.sql.api.ItSqlAsynchronousApiTest.closeSession(ItSqlAsynchronousApiTest.java:541) > {noformat} > h3. {*}UPDATE{*}: > Since the test shows that the current behavior of "fetchNextPage" is unstable > on a closed session, we decided to investigate other possible use-cases on a > closed session. > h4. The results are as follows: > The behavior of the "execute*" session methods on a closed session is correct > - we throw a SqlException with the message "Session is closed" for any local > execution. > Session return sync or async resultset. The > "hasRowSet/affectedRows/wasApplied/metadata" methods are generic and give the > expected results in a closed session with no errors. > > The results of the rest of the methods are presented in the following table. > ||*ResultSet type*||*Method*||*RESULT*|| || > || || ||*Data absent*||{*}Data present (pageSize=2){*}{*}{{*}}|| > |*sync*|*hasNext*|false|true| > | |*next*|NoSuchElementException|4 rows, then CursorClosedException| > | | | | | > |*async*|*CurrentPage (hasNext)*|false|true| > | |*currentPageSize*|0|2| > | |*hasMorePages*|false|true| > | |*fetchNextPage*|SqlException IGN-SQL-1 There are no more pages.|Expected: > CursorClosedException > Currently: No exception or CursorClosedException or > ExecutionCancelledException| > > |*ResultSet type*|*Method*|*RESULT*| > | |*Data absent*|*Data present (pageSize=2)*| > |sync|*hasNext*|false|true| > |*next*|NoSuchElementException|4 rows, then CursorClosedException| > | | > |async|*CurrentPage (hasNext)*|false|true| > |*currentPageSize*|0|2| > |*hasMorePages*|false|true| > |*fetchNextPage*|SqlException IGN-SQL-1 There are no more pages.|Expected: > CursorClosedException > Currently: No exception or CursorClosedException or > ExecutionCancelledException| -- This message was sent by Atlassian Jira (v8.20.10#820010)