This is an automated email from the ASF dual-hosted git repository.

davsclaus pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/camel.git


The following commit(s) were added to refs/heads/master by this push:
     new e65e2fe  CAMEL-14761 JPAMessageIdRepository.contains() release db 
connection fix (#3662)
e65e2fe is described below

commit e65e2fee469c370980de0af9b0c8b10ef0095f8c
Author: kosciej <zabielski.mic...@gmail.com>
AuthorDate: Sat Mar 21 13:33:56 2020 +0100

    CAMEL-14761 JPAMessageIdRepository.contains() release db connection fix 
(#3662)
---
 .../idempotent/jpa/JpaMessageIdRepository.java     | 24 ++++++++++++++++------
 1 file changed, 18 insertions(+), 6 deletions(-)

diff --git 
a/components/camel-jpa/src/main/java/org/apache/camel/processor/idempotent/jpa/JpaMessageIdRepository.java
 
b/components/camel-jpa/src/main/java/org/apache/camel/processor/idempotent/jpa/JpaMessageIdRepository.java
index c3b0b84..a88d186 100644
--- 
a/components/camel-jpa/src/main/java/org/apache/camel/processor/idempotent/jpa/JpaMessageIdRepository.java
+++ 
b/components/camel-jpa/src/main/java/org/apache/camel/processor/idempotent/jpa/JpaMessageIdRepository.java
@@ -145,12 +145,24 @@ public class JpaMessageIdRepository extends 
ServiceSupport implements Idempotent
                 if (isJoinTransaction()) {
                     entityManager.joinTransaction();
                 }
-
-                List<?> list = query(entityManager, messageId);
-                if (list.isEmpty()) {
-                    return Boolean.FALSE;
-                } else {
-                    return Boolean.TRUE;
+                try {
+                    List<?> list = query(entityManager, messageId);
+                    if (list.isEmpty()) {
+                        return Boolean.FALSE;
+                    } else {
+                        return Boolean.TRUE;
+                    }
+                } catch (Exception ex) {
+                    LOG.error("Something went wrong trying to check message in 
repository {}", ex);
+                    throw new PersistenceException(ex);
+                } finally {
+                    try {
+                        if (entityManager.isOpen()) {
+                            entityManager.close();
+                        }
+                    } catch (Exception e) {
+                        // ignore
+                    }
                 }
             }
         });

Reply via email to