diff --git a/openmetadata-service/src/main/java/org/openmetadata/service/jdbi3/unitofwork/HttpGetRequestJdbiUnitOfWorkEventListener.java b/openmetadata-service/src/main/java/org/openmetadata/service/jdbi3/unitofwork/HttpGetRequestJdbiUnitOfWorkEventListener.java deleted file mode 100644 index 7c169d356c4..00000000000 --- a/openmetadata-service/src/main/java/org/openmetadata/service/jdbi3/unitofwork/HttpGetRequestJdbiUnitOfWorkEventListener.java +++ /dev/null @@ -1,22 +0,0 @@ -package org.openmetadata.service.jdbi3.unitofwork; - -import lombok.extern.slf4j.Slf4j; -import org.glassfish.jersey.server.monitoring.RequestEvent; -import org.glassfish.jersey.server.monitoring.RequestEventListener; - -@Slf4j -class HttpGetRequestJdbiUnitOfWorkEventListener implements RequestEventListener { - - HttpGetRequestJdbiUnitOfWorkEventListener() {} - - @Override - public void onEvent(RequestEvent event) { - RequestEvent.Type type = event.getType(); - LOG.debug("Handling GET Request Event {} {}", type, Thread.currentThread().getId()); - if (type == RequestEvent.Type.RESOURCE_METHOD_START) { - JdbiTransactionManager.getInstance().begin(true); - } else if (type == RequestEvent.Type.FINISHED) { - JdbiTransactionManager.getInstance().terminateHandle(); - } - } -} diff --git a/openmetadata-service/src/main/java/org/openmetadata/service/jdbi3/unitofwork/JdbiTransactionManager.java b/openmetadata-service/src/main/java/org/openmetadata/service/jdbi3/unitofwork/JdbiTransactionManager.java index 80d559aaa01..76ad37a36ab 100644 --- a/openmetadata-service/src/main/java/org/openmetadata/service/jdbi3/unitofwork/JdbiTransactionManager.java +++ b/openmetadata-service/src/main/java/org/openmetadata/service/jdbi3/unitofwork/JdbiTransactionManager.java @@ -34,8 +34,8 @@ public class JdbiTransactionManager { public void begin(boolean autoCommit) { try { Handle handle = handleManager.get(); - if (autoCommit) { - handle.getConnection().setAutoCommit(autoCommit); + if (!autoCommit) { + handle.getConnection().setAutoCommit(false); handle.getConfig(Handles.class).setForceEndTransactions(false); handle.begin(); IN_TRANSACTION_HANDLES.add(handle.hashCode()); @@ -52,23 +52,19 @@ public class JdbiTransactionManager { } public void commit() { - Handle handle = handleManager.get(); - if (handle == null) { - LOG.debug( - "Handle was found to be null during commit for Thread Id [{}]. It might have already been closed", - Thread.currentThread().getId()); - return; - } - try { - handle.getConnection().commit(); - LOG.debug( - "Performing commit Thread Id [{}] has handle id [{}] Transaction {} Level {}", - Thread.currentThread().getId(), - handle.hashCode(), - handle.isInTransaction(), - handle.getTransactionIsolationLevel()); - } catch (Exception ex) { - rollback(); + if (handleManager.handleExists()) { + Handle handle = handleManager.get(); + try { + handle.getConnection().commit(); + LOG.debug( + "Performing commit Thread Id [{}] has handle id [{}] Transaction {} Level {}", + Thread.currentThread().getId(), + handle.hashCode(), + handle.isInTransaction(), + handle.getTransactionIsolationLevel()); + } catch (Exception ex) { + rollback(); + } } } diff --git a/openmetadata-service/src/main/java/org/openmetadata/service/jdbi3/unitofwork/JdbiUnitOfWorkApplicationEventListener.java b/openmetadata-service/src/main/java/org/openmetadata/service/jdbi3/unitofwork/JdbiUnitOfWorkApplicationEventListener.java index 209f86a3f80..e006042da65 100644 --- a/openmetadata-service/src/main/java/org/openmetadata/service/jdbi3/unitofwork/JdbiUnitOfWorkApplicationEventListener.java +++ b/openmetadata-service/src/main/java/org/openmetadata/service/jdbi3/unitofwork/JdbiUnitOfWorkApplicationEventListener.java @@ -2,7 +2,6 @@ package org.openmetadata.service.jdbi3.unitofwork; import java.util.Set; import javax.annotation.Nullable; -import javax.ws.rs.HttpMethod; import lombok.extern.slf4j.Slf4j; import org.glassfish.jersey.server.monitoring.ApplicationEvent; import org.glassfish.jersey.server.monitoring.ApplicationEventListener; @@ -29,9 +28,6 @@ public class JdbiUnitOfWorkApplicationEventListener implements ApplicationEventL if (excludedPaths.stream().anyMatch(path::contains)) { return null; } - if (event.getContainerRequest().getMethod().equals(HttpMethod.GET)) { - return new HttpGetRequestJdbiUnitOfWorkEventListener(); - } return new NonHttpGetRequestJdbiUnitOfWorkEventListener(); } } diff --git a/openmetadata-service/src/main/java/org/openmetadata/service/jdbi3/unitofwork/ManagedHandleInvocationHandler.java b/openmetadata-service/src/main/java/org/openmetadata/service/jdbi3/unitofwork/ManagedHandleInvocationHandler.java index c4230179653..d54e347df5f 100644 --- a/openmetadata-service/src/main/java/org/openmetadata/service/jdbi3/unitofwork/ManagedHandleInvocationHandler.java +++ b/openmetadata-service/src/main/java/org/openmetadata/service/jdbi3/unitofwork/ManagedHandleInvocationHandler.java @@ -58,10 +58,11 @@ public class ManagedHandleInvocationHandler implements InvocationHandler { } else { // This is non-transactional request Handle handle = JdbiUnitOfWorkProvider.getInstance().getHandleManager().getJdbi().open(); - handle.getConnection().setAutoCommit(true); - dao = handle.attach(underlying); - result = invokeMethod(method, dao, args); - handle.close(); + try (handle) { + handle.getConnection().setAutoCommit(true); + dao = handle.attach(underlying); + result = invokeMethod(method, dao, args); + } } return result; } diff --git a/openmetadata-service/src/main/java/org/openmetadata/service/util/NotificationHandler.java b/openmetadata-service/src/main/java/org/openmetadata/service/util/NotificationHandler.java index 9060b48cac1..7c2e3a42528 100644 --- a/openmetadata-service/src/main/java/org/openmetadata/service/util/NotificationHandler.java +++ b/openmetadata-service/src/main/java/org/openmetadata/service/util/NotificationHandler.java @@ -41,7 +41,6 @@ import org.openmetadata.schema.type.Relationship; import org.openmetadata.service.Entity; import org.openmetadata.service.jdbi3.CollectionDAO; import org.openmetadata.service.jdbi3.UserRepository; -import org.openmetadata.service.jdbi3.unitofwork.JdbiUnitOfWorkProvider; import org.openmetadata.service.resources.feeds.MessageParser; import org.openmetadata.service.socket.WebSocketManager; @@ -63,8 +62,6 @@ public class NotificationHandler { handleNotifications(responseContext, collectionDAO); } catch (Exception ex) { LOG.error("[NotificationHandler] Failed to use mapper in converting to Json", ex); - } finally { - JdbiUnitOfWorkProvider.getInstance().getHandleManager().clear(); } }); } diff --git a/openmetadata-service/src/main/resources/elasticsearch/en/chart_Index_mapping.json b/openmetadata-service/src/main/resources/elasticsearch/en/chart_index_mapping.json similarity index 100% rename from openmetadata-service/src/main/resources/elasticsearch/en/chart_Index_mapping.json rename to openmetadata-service/src/main/resources/elasticsearch/en/chart_index_mapping.json