Error advancing (next) ResultSet position + Hibernate v6

Hi @tonerudez , when 6.2.0 is scheduled to release ?

There is no release scheduled yet. We might release 6.2.0.CR3 this week though. Just keep an eye on https://in.relation.to/ to see the announcement.

Hi,

I’ve reached this page by googleing.
According to this thread, I’ve also updated spring boot version to 3.0.4(which references to org.hibernate.orm:hibernate-core:6.1.7.Final).

But I see the following stacktrace.
Is this a different case from the original case?
Thanks in advance for your answer.

org.hibernate.sql.exec.ExecutionException: A problem occurred in the SQL executor : Error advancing (next) ResultSet position
	at org.hibernate.sql.results.jdbc.internal.JdbcValuesResultSetImpl.makeExecutionException(JdbcValuesResultSetImpl.java:251)
	at org.hibernate.sql.results.jdbc.internal.JdbcValuesResultSetImpl.advanceNext(JdbcValuesResultSetImpl.java:208)
	at org.hibernate.sql.results.jdbc.internal.JdbcValuesResultSetImpl.processNext(JdbcValuesResultSetImpl.java:85)
	at org.hibernate.sql.results.jdbc.internal.AbstractJdbcValues.next(AbstractJdbcValues.java:29)
	at org.hibernate.sql.results.internal.RowProcessingStateStandardImpl.next(RowProcessingStateStandardImpl.java:88)
	at org.hibernate.internal.ScrollableResultsImpl.next(ScrollableResultsImpl.java:49)
	at org.hibernate.query.internal.ScrollableResultsIterator.hasNext(ScrollableResultsIterator.java:33)
	at java.base/java.util.Spliterators$IteratorSpliterator.trySplit(Spliterators.java:1828)
	at java.base/java.util.stream.WhileOps$UnorderedWhileSpliterator.trySplit(WhileOps.java:708)
	at java.base/java.util.stream.WhileOps$UnorderedWhileSpliterator$OfRef$Taking.trySplit(WhileOps.java:771)
	at java.base/java.util.stream.ForEachOps$ForEachTask.compute(ForEachOps.java:289)
	at java.base/java.util.concurrent.CountedCompleter.exec(CountedCompleter.java:754)
	at java.base/java.util.concurrent.ForkJoinTask.doExec$$$capture(ForkJoinTask.java:373)
	at java.base/java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java)
	at java.base/java.util.concurrent.ForkJoinPool$WorkQueue.topLevelExec(ForkJoinPool.java:1182)
	at java.base/java.util.concurrent.ForkJoinPool.scan(ForkJoinPool.java:1655)
	at java.base/java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1622)
	at java.base/java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:165)
Caused by: org.hibernate.exception.JDBCConnectionException: Error advancing (next) ResultSet position
	at org.hibernate.exception.internal.SQLExceptionTypeDelegate.convert(SQLExceptionTypeDelegate.java:49)
	at org.hibernate.exception.internal.StandardSQLExceptionConverter.convert(StandardSQLExceptionConverter.java:56)
	at org.hibernate.engine.jdbc.spi.SqlExceptionHelper.convert(SqlExceptionHelper.java:109)
	at org.hibernate.engine.jdbc.spi.SqlExceptionHelper.convert(SqlExceptionHelper.java:95)
	... 18 common frames omitted
Caused by: java.sql.SQLNonTransientConnectionException: (conn=22) Error while streaming resultSet data
	at org.mariadb.jdbc.export.ExceptionFactory.createException(ExceptionFactory.java:293)
	at org.mariadb.jdbc.export.ExceptionFactory.create(ExceptionFactory.java:359)
	at org.mariadb.jdbc.client.result.StreamingResult.addStreamingValue(StreamingResult.java:130)
	at org.mariadb.jdbc.client.result.StreamingResult.nextStreamingValue(StreamingResult.java:113)
	at org.mariadb.jdbc.client.result.StreamingResult.next(StreamingResult.java:163)
	at com.zaxxer.hikari.pool.HikariProxyResultSet.next(HikariProxyResultSet.java)
	at org.hibernate.sql.results.jdbc.internal.JdbcValuesResultSetImpl.advanceNext(JdbcValuesResultSetImpl.java:205)
	... 16 common frames omitted
Caused by: java.io.EOFException: unexpected end of stream, read 79 bytes from 241 (socket was closed by server)
	at org.mariadb.jdbc.client.socket.impl.PacketReader.readPacket(PacketReader.java:159)
	at org.mariadb.jdbc.client.result.Result.readNext(Result.java:171)
	at org.mariadb.jdbc.client.result.StreamingResult.addStreamingValue(StreamingResult.java:124)
	... 20 common frames omitted

Below is the code: the exception was caught, but the stream processing stops.

// Service class
try (final Stream<Address> candidates = addressRepository.streamAllExceptOutdated(fromIdInclusive, toIdExclusive)) {
  candidates
      .parallel()
      .takeWhile(candidate -> shouldRun)
      .forEach(candidate -> updaterSingle.update(candidate, ctx));
} catch (org.hibernate.sql.exec.ExecutionException e) {
  log.error("Catch you", e);
}

// Repository class
@QueryHints({
    @QueryHint(name = HINT_FETCH_SIZE, value = "1"),
    @QueryHint(name = HINT_CACHEABLE, value = "false"),
    @QueryHint(name = HINT_READ_ONLY, value = "false")
})
@Query("SELECT a FROM Address a WHERE a.id >= :fromId AND a.id < :toId ORDER BY a.id ASC")
Stream<Address> streamAllExceptOutdated(@Param("fromId") Integer fromIdInclusive, @Param("toId") Integer toIdExclusive);

// MySQL driver
runtimeOnly 'org.mariadb.jdbc:mariadb-java-client:3.1.2'

Please try out Hibernate 6.2.0.CR3 and if the problem still persists, create a new JIRA issue with a reproducer for the problem.