[jOOQ/jOOQ#9295] Use Settings.getQueryTimeout() consistently

Use Settings.getQueryTimeout() in `AbstractRoutine`, `BatchMultiple`,
and `BatchSingle`.
This commit is contained in:
Knut Wannheden 2019-10-02 17:04:45 +02:00
parent b2a90be054
commit 18ab090578
3 changed files with 18 additions and 0 deletions

View File

@ -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<T> 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);

View File

@ -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();

View File

@ -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);