HI, I'm getting the this weird exception when I call update() on UpdatableRecord after creating it.
org.jooq.exception.DataAccessException: SQL [update "public"."job" set "context" = ?, "modified_at" = cast(? as timestamp) where ("public"."job"."id" = ? and "public"."job"."modified_at" = cast(? as timestamp))]; Connection is closed
at org.jooq_3.11.5.POSTGRES_9_4.debug(Unknown Source)
at org.jooq.impl.Tools.translate(Tools.java:2384)
at org.jooq.impl.DefaultExecuteContext.sqlException(DefaultExecuteContext.java:811)
at org.jooq.impl.AbstractQuery.execute(AbstractQuery.java:364)
at org.jooq.impl.UpdatableRecordImpl.storeUpdate0(UpdatableRecordImpl.java:253)
at org.jooq.impl.UpdatableRecordImpl.access$100(UpdatableRecordImpl.java:84)
at org.jooq.impl.UpdatableRecordImpl$2.operate(UpdatableRecordImpl.java:209)
at org.jooq.impl.RecordDelegate.operate(RecordDelegate.java:125)
at org.jooq.impl.UpdatableRecordImpl.storeUpdate(UpdatableRecordImpl.java:205)
at org.jooq.impl.UpdatableRecordImpl.update(UpdatableRecordImpl.java:155)
at org.jooq.impl.UpdatableRecordImpl.update(UpdatableRecordImpl.java:150)
at channellister.jobs.JobManager.submitJob(JobManager.java:91)
at channellister.jobs.JobDefinition.submit(JobDefinition.java:58)
at channellister.clutil.commands.JobsSubmit.lambda$processCommand$0(JobsCommand.java:95)
at infomorph.dbconnection.DbThrowingConsumer.accept(DbThrowingConsumer.java:20)
at infomorph.dbconnection.DbConnection.dbAction(DbConnection.java:61)
at channellister.clutil.commands.JobsSubmit.processCommand(JobsCommand.java:94)
at channellister.clutil.ClAbstractCommand.processSubCommand(ClAbstractCommand.java:69)
at channellister.clutil.ClAbstractCommand.processCommand(ClAbstractCommand.java:55)
at channellister.clutil.ClAbstractCommand.processSubCommand(ClAbstractCommand.java:69)
at channellister.clutil.ClUtil.processCommand(ClUtil.java:76)
at channellister.clutil.ClUtil.main(ClUtil.java:91)
Caused by: java.sql.SQLException: Connection is closed
at com.zaxxer.hikari.pool.ProxyConnection$ClosedConnection$1.invoke(ProxyConnection.java:469)
at com.sun.proxy.$Proxy1.prepareStatement(Unknown Source)
at com.zaxxer.hikari.pool.ProxyConnection.prepareStatement(ProxyConnection.java:310)
at com.zaxxer.hikari.pool.HikariProxyConnection.prepareStatement(HikariProxyConnection.java)
at org.jooq.impl.ProviderEnabledConnection.prepareStatement(ProviderEnabledConnection.java:109)
at org.jooq.impl.SettingsEnabledConnection.prepareStatement(SettingsEnabledConnection.java:73)
at org.jooq.impl.ProviderEnabledConnection.prepareStatement(ProviderEnabledConnection.java:109)
at org.jooq.impl.SettingsEnabledConnection.prepareStatement(SettingsEnabledConnection.java:73)
at org.jooq.impl.AbstractQuery.prepare(AbstractQuery.java:416)
at org.jooq.impl.AbstractDMLQuery.prepare(AbstractDMLQuery.java:512)
at org.jooq.impl.AbstractQuery.execute(AbstractQuery.java:322)
... 18 more
Simplified Example code:
JobRecord job = db.insertInto( JOB, JOB.CODE, JOB.DESCRIPTION, JOB.STATUS, JOB.CONTEXT, JOB.STEP )
.values( jobCode, jobDescription, jobStatus, jobContext, jobStep )
.returning()
.fetchOne();
// Create Job Execution Context
int jobId = jobRecord.getId();
JSONObject executionContext = new JSONObject();
executionContext.put("id", String.valueOf( jobId ) );
String executionContextString = executionContext.toString();
// Set the Execution Context on the Job Record
jobRecord.setContext( executionContextString );
jobRecord.update();
Environment:
Jooq 3.11.5, Postgres 9.4, Java 10
Thanks in advance for any assistance you can offer.