diff --git a/jOOQ/src/main/java/org/jooq/impl/AbstractQuery.java b/jOOQ/src/main/java/org/jooq/impl/AbstractQuery.java index a8c157561c..36a86a9ae0 100644 --- a/jOOQ/src/main/java/org/jooq/impl/AbstractQuery.java +++ b/jOOQ/src/main/java/org/jooq/impl/AbstractQuery.java @@ -430,7 +430,7 @@ abstract class AbstractQuery extends AbstractQueryPart implements Query { return result; } - // [#3011] [#3054] Consume additional exceptions if there are any + // [#3011] [#3054] [#6390] Consume additional exceptions if there are any catch (SQLException e) { consumeExceptions(ctx.configuration(), stmt, e); throw e; diff --git a/jOOQ/src/main/java/org/jooq/impl/AbstractRoutine.java b/jOOQ/src/main/java/org/jooq/impl/AbstractRoutine.java index c17a7c8d89..b6fc92f41f 100644 --- a/jOOQ/src/main/java/org/jooq/impl/AbstractRoutine.java +++ b/jOOQ/src/main/java/org/jooq/impl/AbstractRoutine.java @@ -506,7 +506,7 @@ public abstract class AbstractRoutine extends AbstractQueryPart implements Ro listener.executeEnd(ctx); } - // [#3011] [#3054] Consume additional exceptions if there are any + // [#3011] [#3054] [#6390] Consume additional exceptions if there are any catch (SQLException e) { consumeExceptions(ctx.configuration(), ctx.statement(), e); throw e; diff --git a/jOOQ/src/main/java/org/jooq/impl/Tools.java b/jOOQ/src/main/java/org/jooq/impl/Tools.java index 260575c84a..198e55c390 100644 --- a/jOOQ/src/main/java/org/jooq/impl/Tools.java +++ b/jOOQ/src/main/java/org/jooq/impl/Tools.java @@ -3038,8 +3038,8 @@ final class Tools { // ------------------------------------------------------------------------ /** - * [#3011] [#3054] Consume additional exceptions if there are any and append - * them to the previous exception's + * [#3011] [#3054] [#6390] Consume additional exceptions if there are any + * and append them to the previous exception's * {@link SQLException#getNextException()} list. */ static final void consumeExceptions(Configuration configuration, PreparedStatement stmt, SQLException previous) { @@ -3193,31 +3193,39 @@ final class Tools { int rows = (ctx.resultSet() == null) ? ctx.rows() : 0; for (i = 0; i < maxConsumedResults; i++) { - if (ctx.resultSet() != null) { - anyResults = true; + try { + if (ctx.resultSet() != null) { + anyResults = true; - Field[] fields = new MetaDataFieldProvider(ctx.configuration(), ctx.resultSet().getMetaData()).getFields(); - Cursor c = new CursorImpl(ctx, listener, fields, intern != null ? intern.internIndexes(fields) : null, true, false); - results.resultsOrRows().add(new ResultsImpl.ResultOrRowsImpl(c.fetch())); - } - else { - if (rows != -1) - results.resultsOrRows().add(new ResultsImpl.ResultOrRowsImpl(rows)); - else - break; + Field[] fields = new MetaDataFieldProvider(ctx.configuration(), ctx.resultSet().getMetaData()).getFields(); + Cursor c = new CursorImpl(ctx, listener, fields, intern != null ? intern.internIndexes(fields) : null, true, false); + results.resultsOrRows().add(new ResultsImpl.ResultOrRowsImpl(c.fetch())); + } + else { + if (rows != -1) + results.resultsOrRows().add(new ResultsImpl.ResultOrRowsImpl(rows)); + else + break; + } + + if (ctx.statement().getMoreResults()) { + ctx.resultSet(ctx.statement().getResultSet()); + } + else { + rows = ctx.statement().getUpdateCount(); + ctx.rows(rows); + + if (rows != -1) + ctx.resultSet(null); + else + break; + } } - if (ctx.statement().getMoreResults()) { - ctx.resultSet(ctx.statement().getResultSet()); - } - else { - rows = ctx.statement().getUpdateCount(); - ctx.rows(rows); - - if (rows != -1) - ctx.resultSet(null); - else - break; + // [#3011] [#3054] [#6390] Consume additional exceptions if there are any + catch (SQLException e) { + consumeExceptions(ctx.configuration(), ctx.statement(), e); + throw e; } }