From 0033edad45f2d728c63792096aa77d9d414491e5 Mon Sep 17 00:00:00 2001 From: Juergen Hoeller Date: Fri, 16 Jan 2026 23:12:07 +0100 Subject: [PATCH] Apply transactionIsolationLock in EclipseLinkConnectionHandle as well Closes gh-36165 (cherry picked from commit 2b96a61063f3008ce268271bc947272b178c3bf7) --- .../orm/jpa/vendor/EclipseLinkJpaDialect.java | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/spring-orm/src/main/java/org/springframework/orm/jpa/vendor/EclipseLinkJpaDialect.java b/spring-orm/src/main/java/org/springframework/orm/jpa/vendor/EclipseLinkJpaDialect.java index 20e9393c6f2..744a1a3591e 100644 --- a/spring-orm/src/main/java/org/springframework/orm/jpa/vendor/EclipseLinkJpaDialect.java +++ b/spring-orm/src/main/java/org/springframework/orm/jpa/vendor/EclipseLinkJpaDialect.java @@ -168,7 +168,7 @@ public class EclipseLinkJpaDialect extends DefaultJpaDialect { * This is useful to defer the early transaction begin that obtaining a * JDBC Connection implies within an EclipseLink EntityManager. */ - private static class EclipseLinkConnectionHandle implements ConnectionHandle { + private class EclipseLinkConnectionHandle implements ConnectionHandle { private final EntityManager entityManager; @@ -182,7 +182,13 @@ public class EclipseLinkJpaDialect extends DefaultJpaDialect { @Override public Connection getConnection() { if (this.connection == null) { - this.connection = this.entityManager.unwrap(Connection.class); + transactionIsolationLock.lock(); + try { + this.connection = this.entityManager.unwrap(Connection.class); + } + finally { + transactionIsolationLock.unlock(); + } } return this.connection; }