Skip to content

Commit 42eb9cf

Browse files
committed
WIP
1 parent e09d58d commit 42eb9cf

File tree

7 files changed

+21
-16
lines changed

7 files changed

+21
-16
lines changed

hibernate-core/src/main/java/org/hibernate/engine/jdbc/mutation/internal/PreparedStatementDetailsStandard.java

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212

1313
import org.hibernate.engine.jdbc.mutation.group.PreparedStatementDetails;
1414
import org.hibernate.engine.jdbc.mutation.group.PreparedStatementGroup;
15+
import org.hibernate.engine.jdbc.spi.JdbcCoordinator;
1516
import org.hibernate.engine.jdbc.spi.JdbcServices;
1617
import org.hibernate.engine.spi.SharedSessionContractImplementor;
1718
import org.hibernate.jdbc.Expectation;
@@ -66,8 +67,10 @@ public TableMapping getMutatingTableDetails() {
6667
@Override
6768
public void releaseStatement(SharedSessionContractImplementor session) {
6869
if ( statement != null ) {
69-
session.getJdbcCoordinator().getLogicalConnection().getResourceRegistry().release( statement );
70+
final JdbcCoordinator jdbcCoordinator = session.getJdbcCoordinator();
71+
jdbcCoordinator.getLogicalConnection().getResourceRegistry().release( statement );
7072
statement = null;
73+
jdbcCoordinator.afterStatementExecution();
7174
}
7275
}
7376

hibernate-core/src/main/java/org/hibernate/id/insert/GetGeneratedKeysDelegate.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -133,6 +133,7 @@ public Object performInsert(
133133
}
134134
finally {
135135
jdbcCoordinator.getLogicalConnection().getResourceRegistry().release( insertStatement );
136+
jdbcCoordinator.afterStatementExecution();
136137
}
137138
}
138139
catch (SQLException e) {

hibernate-core/src/main/java/org/hibernate/procedure/internal/ProcedureCallImpl.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -697,6 +697,7 @@ private ProcedureOutputsImpl buildOutputs() {
697697
}
698698
catch (SQLException e) {
699699
getSession().getJdbcCoordinator().getLogicalConnection().getResourceRegistry().release( statement );
700+
getSession().getJdbcCoordinator().afterStatementExecution();
700701
throw getSession().getJdbcServices().getSqlExceptionHelper().convert(
701702
e,
702703
"Error registering CallableStatement parameters",

hibernate-core/src/main/java/org/hibernate/procedure/internal/ProcedureOutputsImpl.java

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -146,10 +146,4 @@ protected Output buildFunctionReturn() {
146146
return buildResultSetOutput( () -> results );
147147
}
148148
}
149-
150-
@Override
151-
public void release() {
152-
super.release();
153-
getResultContext().getSession().getJdbcCoordinator().getLogicalConnection().getResourceRegistry().release( callableStatement );
154-
}
155149
}

hibernate-core/src/main/java/org/hibernate/result/internal/OutputsImpl.java

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616
import java.util.function.Supplier;
1717

1818
import org.hibernate.JDBCException;
19+
import org.hibernate.engine.jdbc.spi.JdbcCoordinator;
1920
import org.hibernate.engine.spi.SessionFactoryImplementor;
2021
import org.hibernate.internal.CoreLogging;
2122
import org.hibernate.procedure.internal.ProcedureCallImpl;
@@ -131,7 +132,9 @@ public boolean goToNext() {
131132

132133
@Override
133134
public void release() {
134-
context.getSession().getJdbcCoordinator().getLogicalConnection().getResourceRegistry().release( jdbcStatement );
135+
final JdbcCoordinator jdbcCoordinator = context.getSession().getJdbcCoordinator();
136+
jdbcCoordinator.getLogicalConnection().getResourceRegistry().release( jdbcStatement );
137+
jdbcCoordinator.afterStatementExecution();
135138
}
136139

137140
private List<?> extractCurrentResults() {

hibernate-core/src/main/java/org/hibernate/sql/model/jdbc/OptionalTableUpdateOperation.java

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -378,7 +378,8 @@ private boolean performUpdate(
378378
private void performInsert(JdbcValueBindings jdbcValueBindings, SharedSessionContractImplementor session) {
379379
final JdbcInsertMutation jdbcInsert = createJdbcInsert( session );
380380

381-
final PreparedStatement insertStatement = createStatementDetails( jdbcInsert, session );
381+
final JdbcCoordinator jdbcCoordinator = session.getJdbcCoordinator();
382+
final PreparedStatement insertStatement = createStatementDetails( jdbcInsert, jdbcCoordinator );
382383

383384
try {
384385
session.getJdbcServices().getSqlStatementLogger().logStatement( jdbcInsert.getSqlString() );
@@ -404,11 +405,12 @@ private void performInsert(JdbcValueBindings jdbcValueBindings, SharedSessionCon
404405
} );
405406
}
406407

407-
session.getJdbcCoordinator().getResultSetReturn()
408+
jdbcCoordinator.getResultSetReturn()
408409
.executeUpdate( insertStatement, jdbcInsert.getSqlString() );
409410
}
410411
finally {
411-
session.getJdbcCoordinator().getLogicalConnection().getResourceRegistry().release( insertStatement );
412+
jdbcCoordinator.getLogicalConnection().getResourceRegistry().release( insertStatement );
413+
jdbcCoordinator.afterStatementExecution();
412414
}
413415
}
414416

@@ -449,11 +451,10 @@ private JdbcInsertMutation createJdbcInsert(SharedSessionContractImplementor ses
449451

450452
private static PreparedStatement createStatementDetails(
451453
PreparableMutationOperation operation,
452-
SharedSessionContractImplementor session) {
453-
final JdbcCoordinator jdbcCoordinator = session.getJdbcCoordinator();
454+
JdbcCoordinator jdbcCoordinator) {
454455
final MutationStatementPreparer statementPreparer = jdbcCoordinator.getMutationStatementPreparer();
455456
final PreparedStatement statement = statementPreparer.prepareStatement( operation.getSqlString(), false );
456-
session.getJdbcCoordinator().getLogicalConnection().getResourceRegistry().register( null, statement );
457+
jdbcCoordinator.getLogicalConnection().getResourceRegistry().register( null, statement );
457458
return statement;
458459
}
459460

hibernate-core/src/main/java/org/hibernate/sql/results/jdbc/internal/DeferredResultSetAccess.java

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717
import org.hibernate.dialect.Dialect;
1818
import org.hibernate.dialect.pagination.LimitHandler;
1919
import org.hibernate.dialect.pagination.NoopLimitHandler;
20+
import org.hibernate.engine.jdbc.spi.JdbcCoordinator;
2021
import org.hibernate.engine.jdbc.spi.SqlStatementLogger;
2122
import org.hibernate.engine.spi.SessionEventListenerManager;
2223
import org.hibernate.engine.spi.SessionFactoryImplementor;
@@ -321,11 +322,12 @@ public void release() {
321322
}
322323

323324
if ( preparedStatement != null ) {
324-
getPersistenceContext().getJdbcCoordinator()
325-
.getLogicalConnection()
325+
final JdbcCoordinator jdbcCoordinator = getPersistenceContext().getJdbcCoordinator();
326+
jdbcCoordinator.getLogicalConnection()
326327
.getResourceRegistry()
327328
.release( preparedStatement );
328329
preparedStatement = null;
330+
jdbcCoordinator.afterStatementExecution();
329331
}
330332
}
331333
}

0 commit comments

Comments
 (0)