From 18ab09057844a5ca3226f4ea4524b0e47e7e9da6 Mon Sep 17 00:00:00 2001 From: Knut Wannheden Date: Wed, 2 Oct 2019 17:04:45 +0200 Subject: [PATCH] [jOOQ/jOOQ#9295] Use Settings.getQueryTimeout() consistently Use Settings.getQueryTimeout() in `AbstractRoutine`, `BatchMultiple`, and `BatchSingle`. --- jOOQ/src/main/java/org/jooq/impl/AbstractRoutine.java | 6 ++++++ jOOQ/src/main/java/org/jooq/impl/BatchMultiple.java | 6 ++++++ jOOQ/src/main/java/org/jooq/impl/BatchSingle.java | 6 ++++++ 3 files changed, 18 insertions(+) diff --git a/jOOQ/src/main/java/org/jooq/impl/AbstractRoutine.java b/jOOQ/src/main/java/org/jooq/impl/AbstractRoutine.java index d7670b0a24..977794cda6 100644 --- a/jOOQ/src/main/java/org/jooq/impl/AbstractRoutine.java +++ b/jOOQ/src/main/java/org/jooq/impl/AbstractRoutine.java @@ -133,6 +133,7 @@ import org.jooq.UDT; import org.jooq.UDTField; import org.jooq.UDTRecord; import org.jooq.XMLFormat; +import org.jooq.conf.SettingsTools; import org.jooq.exception.ControlFlowSignal; import org.jooq.exception.MappingException; import org.jooq.impl.ResultsImpl.ResultOrRowsImpl; @@ -492,6 +493,11 @@ public abstract class AbstractRoutine extends AbstractNamed implements Routin // [#1856] TODO: Add Statement flags like timeout here listener.prepareEnd(ctx); + // [#9295] use query timeout from settings + int t = SettingsTools.getQueryTimeout(0, ctx.settings()); + if (t != 0) + ctx.statement().setQueryTimeout(t); + listener.bindStart(ctx); using(configuration).bindContext(ctx.statement()).visit(this); registerOutParameters(ctx); diff --git a/jOOQ/src/main/java/org/jooq/impl/BatchMultiple.java b/jOOQ/src/main/java/org/jooq/impl/BatchMultiple.java index c2373e851f..65585ce8d7 100644 --- a/jOOQ/src/main/java/org/jooq/impl/BatchMultiple.java +++ b/jOOQ/src/main/java/org/jooq/impl/BatchMultiple.java @@ -45,6 +45,7 @@ import org.jooq.Configuration; import org.jooq.ExecuteContext; import org.jooq.ExecuteListener; import org.jooq.Query; +import org.jooq.conf.SettingsTools; import org.jooq.exception.ControlFlowSignal; /** @@ -99,6 +100,11 @@ final class BatchMultiple implements Batch { listener.prepareEnd(ctx); } + // [#9295] use query timeout from settings + int t = SettingsTools.getQueryTimeout(0, ctx.settings()); + if (t != 0) + ctx.statement().setQueryTimeout(t); + listener.executeStart(ctx); int[] result = ctx.statement().executeBatch(); diff --git a/jOOQ/src/main/java/org/jooq/impl/BatchSingle.java b/jOOQ/src/main/java/org/jooq/impl/BatchSingle.java index d3f901a323..1a0baebdc2 100644 --- a/jOOQ/src/main/java/org/jooq/impl/BatchSingle.java +++ b/jOOQ/src/main/java/org/jooq/impl/BatchSingle.java @@ -60,6 +60,7 @@ import org.jooq.ExecuteContext; import org.jooq.ExecuteListener; import org.jooq.Param; import org.jooq.Query; +import org.jooq.conf.SettingsTools; import org.jooq.exception.ControlFlowSignal; import org.jooq.tools.JooqLogger; @@ -213,6 +214,11 @@ final class BatchSingle implements BatchBindStep { ctx.statement(connection.prepareStatement(ctx.sql())); listener.prepareEnd(ctx); + // [#9295] use query timeout from settings + int t = SettingsTools.getQueryTimeout(0, ctx.settings()); + if (t != 0) + ctx.statement().setQueryTimeout(t); + for (Object[] bindValues : allBindValues) { listener.bindStart(ctx);