From a94c50e2946257aeda539c6a1082df13c9ee7970 Mon Sep 17 00:00:00 2001 From: Giuseppe Date: Wed, 22 Mar 2023 10:21:03 +0000 Subject: [PATCH] Handle all exceptions for stored proc out param retrieval in SharedEntityManagerCreator Prior to this commit, the EntityManager was not closed in SharedEntityManagerCreator.DeferredQueryInvocationHandler's invoke(Object, Method, Object[]) method if an invocation of getOutputParameterValue(*) threw an exception other than IllegalArgumentException, which could lead to a connection leak. This commit addresses this by catching RuntimeException instead of IllegalArgumentException. Closes gh-30164 --- .../org/springframework/orm/jpa/SharedEntityManagerCreator.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/spring-orm/src/main/java/org/springframework/orm/jpa/SharedEntityManagerCreator.java b/spring-orm/src/main/java/org/springframework/orm/jpa/SharedEntityManagerCreator.java index b20527edf5..42d0288fdf 100644 --- a/spring-orm/src/main/java/org/springframework/orm/jpa/SharedEntityManagerCreator.java +++ b/spring-orm/src/main/java/org/springframework/orm/jpa/SharedEntityManagerCreator.java @@ -436,7 +436,7 @@ public abstract class SharedEntityManagerCreator { entry.setValue(storedProc.getOutputParameterValue(key.toString())); } } - catch (IllegalArgumentException ex) { + catch (RuntimeException ex) { entry.setValue(ex); } }