From a90243a27575fd9d88f95bc4db1bbfcbfffcb7ce Mon Sep 17 00:00:00 2001 From: Lukas Eder Date: Tue, 3 Jan 2023 17:17:39 +0100 Subject: [PATCH] [jOOQ/jOOQ#14445] Delay ExecuteContext::connection in BatchMultiple and BatchSingle --- jOOQ/src/main/java/org/jooq/impl/AbstractRoutine.java | 5 +---- jOOQ/src/main/java/org/jooq/impl/BatchMultiple.java | 3 +-- jOOQ/src/main/java/org/jooq/impl/BatchSingle.java | 3 +-- 3 files changed, 3 insertions(+), 8 deletions(-) diff --git a/jOOQ/src/main/java/org/jooq/impl/AbstractRoutine.java b/jOOQ/src/main/java/org/jooq/impl/AbstractRoutine.java index 7597a9bd9d..3e595a20ef 100644 --- a/jOOQ/src/main/java/org/jooq/impl/AbstractRoutine.java +++ b/jOOQ/src/main/java/org/jooq/impl/AbstractRoutine.java @@ -537,9 +537,6 @@ implements try { // [#8968] Keep start() event inside of lifecycle management listener.start(ctx); - - Connection connection = ctx.connection(); - listener.renderStart(ctx); // [#1520] TODO: Should the number of bind values be checked, here? ctx.sql(create(configuration).render(this)); @@ -547,7 +544,7 @@ implements listener.prepareStart(ctx); if (ctx.statement() == null) - ctx.statement(connection.prepareCall(ctx.sql())); + ctx.statement(ctx.connection().prepareCall(ctx.sql())); Tools.setFetchSize(ctx, 0); // [#1856] TODO: Add Statement flags like timeout here listener.prepareEnd(ctx); diff --git a/jOOQ/src/main/java/org/jooq/impl/BatchMultiple.java b/jOOQ/src/main/java/org/jooq/impl/BatchMultiple.java index 71b1b3dc6b..4950c59b59 100644 --- a/jOOQ/src/main/java/org/jooq/impl/BatchMultiple.java +++ b/jOOQ/src/main/java/org/jooq/impl/BatchMultiple.java @@ -92,7 +92,6 @@ final class BatchMultiple extends AbstractBatch { static int[] execute(Configuration configuration, Query[] queries) { DefaultExecuteContext ctx = new DefaultExecuteContext(configuration, BatchMode.MULTIPLE, queries); ExecuteListener listener = ExecuteListeners.get(ctx); - Connection connection = ctx.connection(); try { @@ -101,7 +100,7 @@ final class BatchMultiple extends AbstractBatch { ctx.transformQueries(listener); if (ctx.statement() == null) - ctx.statement(new SettingsEnabledPreparedStatement(connection)); + ctx.statement(new SettingsEnabledPreparedStatement(ctx.connection())); String[] batchSQL = ctx.batchSQL(); for (int i = 0; i < ctx.batchQueries().length; i++) { diff --git a/jOOQ/src/main/java/org/jooq/impl/BatchSingle.java b/jOOQ/src/main/java/org/jooq/impl/BatchSingle.java index b6101ff9db..90695ce82e 100644 --- a/jOOQ/src/main/java/org/jooq/impl/BatchSingle.java +++ b/jOOQ/src/main/java/org/jooq/impl/BatchSingle.java @@ -189,7 +189,6 @@ final class BatchSingle extends AbstractBatch implements BatchBindStep { private final int[] executePrepared() { DefaultExecuteContext ctx = new DefaultExecuteContext(configuration, BatchMode.SINGLE, new Query[] { query }); ExecuteListener listener = ExecuteListeners.get(ctx); - Connection connection = ctx.connection(); Param[] params = extractParams(); @@ -205,7 +204,7 @@ final class BatchSingle extends AbstractBatch implements BatchBindStep { listener.prepareStart(ctx); if (ctx.statement() == null) - ctx.statement(connection.prepareStatement(ctx.sql())); + ctx.statement(ctx.connection().prepareStatement(ctx.sql())); listener.prepareEnd(ctx); // [#9295] use query timeout from settings