diff --git a/src/main/java/io/ebean/config/dbplatform/DatabasePlatform.java b/src/main/java/io/ebean/config/dbplatform/DatabasePlatform.java index 2f105e0d6..166a9b5df 100644 --- a/src/main/java/io/ebean/config/dbplatform/DatabasePlatform.java +++ b/src/main/java/io/ebean/config/dbplatform/DatabasePlatform.java @@ -7,7 +7,7 @@ import io.ebean.annotation.Platform; import io.ebean.config.CustomDbTypeMapping; import io.ebean.config.DbTypeConfig; import io.ebean.config.ServerConfig; -import io.ebeaninternal.util.JdbcClose; // FIXME: should not import ebeaninternal here +import io.ebean.util.JdbcClose; import org.slf4j.Logger; import org.slf4j.LoggerFactory; diff --git a/src/main/java/io/ebean/config/dbplatform/SequenceIdGenerator.java b/src/main/java/io/ebean/config/dbplatform/SequenceIdGenerator.java index 985a545c6..44f20e643 100644 --- a/src/main/java/io/ebean/config/dbplatform/SequenceIdGenerator.java +++ b/src/main/java/io/ebean/config/dbplatform/SequenceIdGenerator.java @@ -2,7 +2,7 @@ package io.ebean.config.dbplatform; import io.ebean.BackgroundExecutor; import io.ebean.Transaction; -import io.ebeaninternal.util.JdbcClose; +import io.ebean.util.JdbcClose; import org.slf4j.Logger; import org.slf4j.LoggerFactory; diff --git a/src/main/java/io/ebean/config/dbplatform/SimpleSequenceIdGenerator.java b/src/main/java/io/ebean/config/dbplatform/SimpleSequenceIdGenerator.java index 902579384..95ee33894 100644 --- a/src/main/java/io/ebean/config/dbplatform/SimpleSequenceIdGenerator.java +++ b/src/main/java/io/ebean/config/dbplatform/SimpleSequenceIdGenerator.java @@ -1,6 +1,7 @@ package io.ebean.config.dbplatform; import io.ebean.Transaction; +import io.ebean.util.JdbcClose; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -82,27 +83,9 @@ public class SimpleSequenceIdGenerator implements PlatformIdGenerator { } private void closeResources(ResultSet rset, PreparedStatement pstmt, Connection c) { - try { - if (rset != null) { - rset.close(); - } - } catch (SQLException e) { - logger.error("Error closing ResultSet", e); - } - try { - if (pstmt != null) { - pstmt.close(); - } - } catch (SQLException e) { - logger.error("Error closing PreparedStatement", e); - } - try { - if (c != null) { - c.close(); - } - } catch (SQLException e) { - logger.error("Error closing Connection", e); - } + JdbcClose.close(rset); + JdbcClose.close(pstmt); + JdbcClose.close(c); } } diff --git a/src/main/java/io/ebeaninternal/util/JdbcClose.java b/src/main/java/io/ebean/util/JdbcClose.java similarity index 97% rename from src/main/java/io/ebeaninternal/util/JdbcClose.java rename to src/main/java/io/ebean/util/JdbcClose.java index f74e3dd46..92b3f7e28 100644 --- a/src/main/java/io/ebeaninternal/util/JdbcClose.java +++ b/src/main/java/io/ebean/util/JdbcClose.java @@ -1,4 +1,4 @@ -package io.ebeaninternal.util; +package io.ebean.util; import org.slf4j.Logger; import org.slf4j.LoggerFactory; diff --git a/src/main/java/io/ebeaninternal/server/core/RelationalQueryRequest.java b/src/main/java/io/ebeaninternal/server/core/RelationalQueryRequest.java index 115c7e93c..9461142f0 100644 --- a/src/main/java/io/ebeaninternal/server/core/RelationalQueryRequest.java +++ b/src/main/java/io/ebeaninternal/server/core/RelationalQueryRequest.java @@ -4,6 +4,7 @@ import io.ebean.EbeanServer; import io.ebean.SqlQuery; import io.ebean.SqlRow; import io.ebean.Transaction; +import io.ebean.util.JdbcClose; import io.ebeaninternal.api.BindParams; import io.ebeaninternal.api.SpiEbeanServer; import io.ebeaninternal.api.SpiSqlQuery; @@ -14,8 +15,6 @@ import io.ebeaninternal.server.persist.TrimLogSql; import io.ebeaninternal.server.query.DefaultSqlRow; import io.ebeaninternal.server.transaction.TransactionManager; import io.ebeaninternal.server.util.BindParamsParser; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; import java.sql.Connection; import java.sql.PreparedStatement; @@ -32,8 +31,6 @@ import java.util.function.Predicate; */ public final class RelationalQueryRequest { - private static final Logger logger = LoggerFactory.getLogger(RelationalQueryRequest.class); - private final SpiSqlQuery query; private final RelationalQueryEngine queryEngine; @@ -168,20 +165,8 @@ public final class RelationalQueryRequest { * Close the underlying resources. */ public void close() { - try { - if (resultSet != null) { - resultSet.close(); - } - } catch (SQLException e) { - logger.error(null, e); - } - try { - if (pstmt != null) { - pstmt.close(); - } - } catch (SQLException e) { - logger.error(null, e); - } + JdbcClose.close(resultSet); + JdbcClose.close(pstmt); } /** diff --git a/src/main/java/io/ebeaninternal/server/persist/ExeCallableSql.java b/src/main/java/io/ebeaninternal/server/persist/ExeCallableSql.java index dde0be020..a1e8daa4e 100644 --- a/src/main/java/io/ebeaninternal/server/persist/ExeCallableSql.java +++ b/src/main/java/io/ebeaninternal/server/persist/ExeCallableSql.java @@ -1,12 +1,11 @@ package io.ebeaninternal.server.persist; +import io.ebean.util.JdbcClose; import io.ebeaninternal.api.BindParams; import io.ebeaninternal.api.SpiCallableSql; import io.ebeaninternal.api.SpiTransaction; import io.ebeaninternal.server.core.PersistRequestCallableSql; import io.ebeaninternal.server.util.BindParamsParser; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; import javax.persistence.PersistenceException; import java.sql.CallableStatement; @@ -15,15 +14,13 @@ import java.sql.SQLException; /** * Handles the execution of CallableSql requests. */ -public class ExeCallableSql { - - private static final Logger logger = LoggerFactory.getLogger(ExeCallableSql.class); +class ExeCallableSql { private final Binder binder; private final PstmtFactory pstmtFactory; - public ExeCallableSql(Binder binder) { + ExeCallableSql(Binder binder) { this.binder = binder; this.pstmtFactory = new PstmtFactory(); } @@ -54,12 +51,8 @@ public class ExeCallableSql { throw new PersistenceException(ex); } finally { - if (!batchThisRequest && cstmt != null) { - try { - cstmt.close(); - } catch (SQLException e) { - logger.error(null, e); - } + if (!batchThisRequest) { + JdbcClose.close(cstmt); } } } diff --git a/src/main/java/io/ebeaninternal/server/persist/ExeOrmUpdate.java b/src/main/java/io/ebeaninternal/server/persist/ExeOrmUpdate.java index 3830096a6..32faa0924 100644 --- a/src/main/java/io/ebeaninternal/server/persist/ExeOrmUpdate.java +++ b/src/main/java/io/ebeaninternal/server/persist/ExeOrmUpdate.java @@ -1,13 +1,12 @@ package io.ebeaninternal.server.persist; +import io.ebean.util.JdbcClose; import io.ebeaninternal.api.BindParams; import io.ebeaninternal.api.SpiTransaction; import io.ebeaninternal.api.SpiUpdate; import io.ebeaninternal.server.core.PersistRequestOrmUpdate; import io.ebeaninternal.server.deploy.BeanDescriptor; import io.ebeaninternal.server.util.BindParamsParser; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; import javax.persistence.PersistenceException; import java.sql.PreparedStatement; @@ -18,8 +17,6 @@ import java.sql.SQLException; */ class ExeOrmUpdate { - private static final Logger logger = LoggerFactory.getLogger(ExeOrmUpdate.class); - private final Binder binder; private final PstmtFactory pstmtFactory; @@ -61,12 +58,8 @@ class ExeOrmUpdate { throw new PersistenceException("Error executing: " + request.getOrmUpdate().getGeneratedSql(), ex); } finally { - if (!batchThisRequest && pstmt != null) { - try { - pstmt.close(); - } catch (SQLException e) { - logger.error(null, e); - } + if (!batchThisRequest) { + JdbcClose.close(pstmt); } } } diff --git a/src/main/java/io/ebeaninternal/server/persist/ExeUpdateSql.java b/src/main/java/io/ebeaninternal/server/persist/ExeUpdateSql.java index b8e050783..fd1f0c7d4 100644 --- a/src/main/java/io/ebeaninternal/server/persist/ExeUpdateSql.java +++ b/src/main/java/io/ebeaninternal/server/persist/ExeUpdateSql.java @@ -1,14 +1,12 @@ package io.ebeaninternal.server.persist; +import io.ebean.util.JdbcClose; import io.ebeaninternal.api.BindParams; import io.ebeaninternal.api.SpiSqlUpdate; import io.ebeaninternal.api.SpiTransaction; import io.ebeaninternal.server.core.PersistRequestUpdateSql; import io.ebeaninternal.server.core.PersistRequestUpdateSql.SqlType; import io.ebeaninternal.server.util.BindParamsParser; -import io.ebeaninternal.util.JdbcClose; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; import javax.persistence.PersistenceException; import java.sql.PreparedStatement; @@ -20,8 +18,6 @@ import java.sql.SQLException; */ class ExeUpdateSql { - private static final Logger logger = LoggerFactory.getLogger(ExeUpdateSql.class); - private final Binder binder; private final PstmtFactory pstmtFactory; @@ -63,12 +59,8 @@ class ExeUpdateSql { throw new PersistenceException(ex); } finally { - if (!batchThisRequest && pstmt != null) { - try { - pstmt.close(); - } catch (SQLException e) { - logger.error(null, e); - } + if (!batchThisRequest) { + JdbcClose.close(pstmt); } } } diff --git a/src/main/java/io/ebeaninternal/server/persist/dml/InsertHandler.java b/src/main/java/io/ebeaninternal/server/persist/dml/InsertHandler.java index df8b82d5c..ec8cdd7df 100644 --- a/src/main/java/io/ebeaninternal/server/persist/dml/InsertHandler.java +++ b/src/main/java/io/ebeaninternal/server/persist/dml/InsertHandler.java @@ -1,13 +1,12 @@ package io.ebeaninternal.server.persist.dml; import io.ebean.bean.EntityBean; +import io.ebean.util.JdbcClose; import io.ebeaninternal.api.SpiTransaction; import io.ebeaninternal.server.core.Message; import io.ebeaninternal.server.core.PersistRequestBean; import io.ebeaninternal.server.deploy.BeanDescriptor; import io.ebeaninternal.server.persist.DmlUtil; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; import javax.persistence.OptimisticLockException; import javax.persistence.PersistenceException; @@ -21,8 +20,6 @@ import java.sql.SQLException; */ public class InsertHandler extends DmlHandler { - private static final Logger logger = LoggerFactory.getLogger(InsertHandler.class); - /** * The associated InsertMeta data. */ @@ -142,12 +139,7 @@ public class InsertHandler extends DmlHandler { try { setGeneratedKey(rset); } finally { - try { - rset.close(); - } catch (SQLException ex) { - String msg = "Error closing rset for returning generatedKeys?"; - logger.warn(msg, ex); - } + JdbcClose.close(rset); } } @@ -178,20 +170,8 @@ public class InsertHandler extends DmlHandler { rset = stmt.executeQuery(); setGeneratedKey(rset); } finally { - try { - if (rset != null) { - rset.close(); - } - } catch (SQLException ex) { - logger.warn("Error closing ResultSet for fetchGeneratedKeyUsingSelect?", ex); - } - try { - if (stmt != null) { - stmt.close(); - } - } catch (SQLException ex) { - logger.warn("Error closing Statement for fetchGeneratedKeyUsingSelect?", ex); - } + JdbcClose.close(rset); + JdbcClose.close(stmt); } } diff --git a/src/main/java/io/ebeaninternal/server/query/CQuery.java b/src/main/java/io/ebeaninternal/server/query/CQuery.java index 95c3d9767..6ab29d742 100644 --- a/src/main/java/io/ebeaninternal/server/query/CQuery.java +++ b/src/main/java/io/ebeaninternal/server/query/CQuery.java @@ -10,10 +10,11 @@ import io.ebean.bean.NodeUsageListener; import io.ebean.bean.ObjectGraphNode; import io.ebean.bean.PersistenceContext; import io.ebean.event.readaudit.ReadEvent; +import io.ebean.util.JdbcClose; +import io.ebeaninternal.api.SpiProfileTransactionEvent; import io.ebeaninternal.api.SpiQuery; import io.ebeaninternal.api.SpiQuery.Mode; import io.ebeaninternal.api.SpiTransaction; -import io.ebeaninternal.api.SpiProfileTransactionEvent; import io.ebeaninternal.server.autotune.ProfilingListener; import io.ebeaninternal.server.core.OrmQueryRequest; import io.ebeaninternal.server.core.SpiOrmQueryRequest; @@ -381,14 +382,8 @@ public class CQuery implements DbReadContext, CancelableQuery, SpiProfileTran } catch (SQLException e) { logger.error("Error closing dataReader", e); } - try { - if (pstmt != null) { - pstmt.close(); - pstmt = null; - } - } catch (SQLException e) { - logger.error("Error closing preparedStatement", e); - } + JdbcClose.close(pstmt); + pstmt = null; } /** diff --git a/src/main/java/io/ebeaninternal/server/query/CQueryFetchSingleAttribute.java b/src/main/java/io/ebeaninternal/server/query/CQueryFetchSingleAttribute.java index af6420980..8ea69624c 100644 --- a/src/main/java/io/ebeaninternal/server/query/CQueryFetchSingleAttribute.java +++ b/src/main/java/io/ebeaninternal/server/query/CQueryFetchSingleAttribute.java @@ -1,5 +1,6 @@ package io.ebeaninternal.server.query; +import io.ebean.util.JdbcClose; import io.ebeaninternal.api.SpiProfileTransactionEvent; import io.ebeaninternal.api.SpiQuery; import io.ebeaninternal.api.SpiTransaction; @@ -169,14 +170,8 @@ class CQueryFetchSingleAttribute implements SpiProfileTransactionEvent { } catch (SQLException e) { logger.error("Error closing DataReader", e); } - try { - if (pstmt != null) { - pstmt.close(); - pstmt = null; - } - } catch (SQLException e) { - logger.error("Error closing PreparedStatement", e); - } + JdbcClose.close(pstmt); + pstmt = null; } @Override diff --git a/src/main/java/io/ebeaninternal/server/query/CQueryRowCount.java b/src/main/java/io/ebeaninternal/server/query/CQueryRowCount.java index efa590883..5ddfe7b02 100644 --- a/src/main/java/io/ebeaninternal/server/query/CQueryRowCount.java +++ b/src/main/java/io/ebeaninternal/server/query/CQueryRowCount.java @@ -1,5 +1,6 @@ package io.ebeaninternal.server.query; +import io.ebean.util.JdbcClose; import io.ebeaninternal.api.SpiProfileTransactionEvent; import io.ebeaninternal.api.SpiQuery; import io.ebeaninternal.api.SpiTransaction; @@ -141,8 +142,8 @@ class CQueryRowCount implements SpiProfileTransactionEvent { * Close the resources. */ private void close() { - UtilJdbc.close(rset); - UtilJdbc.close(pstmt); + JdbcClose.close(rset); + JdbcClose.close(pstmt); rset = null; pstmt = null; } diff --git a/src/main/java/io/ebeaninternal/server/query/CQueryUpdate.java b/src/main/java/io/ebeaninternal/server/query/CQueryUpdate.java index a64738f0a..6331c1cb6 100644 --- a/src/main/java/io/ebeaninternal/server/query/CQueryUpdate.java +++ b/src/main/java/io/ebeaninternal/server/query/CQueryUpdate.java @@ -1,5 +1,6 @@ package io.ebeaninternal.server.query; +import io.ebean.util.JdbcClose; import io.ebeaninternal.api.SpiProfileTransactionEvent; import io.ebeaninternal.api.SpiQuery; import io.ebeaninternal.api.SpiTransaction; @@ -127,7 +128,7 @@ class CQueryUpdate implements SpiProfileTransactionEvent { * Close the resources. */ private void close() { - UtilJdbc.close(pstmt); + JdbcClose.close(pstmt); pstmt = null; } diff --git a/src/main/java/io/ebeaninternal/server/query/UtilJdbc.java b/src/main/java/io/ebeaninternal/server/query/UtilJdbc.java deleted file mode 100644 index 56cec9d40..000000000 --- a/src/main/java/io/ebeaninternal/server/query/UtilJdbc.java +++ /dev/null @@ -1,34 +0,0 @@ -package io.ebeaninternal.server.query; - -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -import java.sql.PreparedStatement; -import java.sql.ResultSet; -import java.sql.SQLException; - -public class UtilJdbc { - - private static final Logger logger = LoggerFactory.getLogger(UtilJdbc.class); - - public static void close(ResultSet resultSet) { - try { - if (resultSet != null) { - resultSet.close(); - } - } catch (SQLException e) { - logger.error("Error closing ResultSet", e); - } - } - - public static void close(PreparedStatement statement) { - try { - if (statement != null) { - statement.close(); - } - } catch (SQLException e) { - logger.error("Error closing PreparedStatement", e); - } - } - -} diff --git a/src/main/java/io/ebeaninternal/server/transaction/JtaTransactionManager.java b/src/main/java/io/ebeaninternal/server/transaction/JtaTransactionManager.java index 1a0c0043c..1933b10c6 100644 --- a/src/main/java/io/ebeaninternal/server/transaction/JtaTransactionManager.java +++ b/src/main/java/io/ebeaninternal/server/transaction/JtaTransactionManager.java @@ -1,6 +1,7 @@ package io.ebeaninternal.server.transaction; import io.ebean.config.ExternalTransactionManager; +import io.ebean.util.JdbcClose; import io.ebeaninternal.api.SpiTransaction; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -18,7 +19,6 @@ import javax.transaction.Synchronization; import javax.transaction.SystemException; import javax.transaction.TransactionSynchronizationRegistry; import javax.transaction.UserTransaction; -import io.ebeaninternal.util.JdbcClose; /** * Hook into external JTA transaction manager. diff --git a/src/main/java/io/ebeaninternal/server/transaction/TransactionFactory.java b/src/main/java/io/ebeaninternal/server/transaction/TransactionFactory.java index a1593736d..c30a430ba 100644 --- a/src/main/java/io/ebeaninternal/server/transaction/TransactionFactory.java +++ b/src/main/java/io/ebeaninternal/server/transaction/TransactionFactory.java @@ -1,7 +1,7 @@ package io.ebeaninternal.server.transaction; +import io.ebean.util.JdbcClose; import io.ebeaninternal.api.SpiTransaction; -import io.ebeaninternal.util.JdbcClose; import org.slf4j.Logger; import javax.persistence.PersistenceException; diff --git a/src/main/java/io/ebeaninternal/server/transaction/TransactionFactoryBasic.java b/src/main/java/io/ebeaninternal/server/transaction/TransactionFactoryBasic.java index 3b552bf27..88959e921 100644 --- a/src/main/java/io/ebeaninternal/server/transaction/TransactionFactoryBasic.java +++ b/src/main/java/io/ebeaninternal/server/transaction/TransactionFactoryBasic.java @@ -1,7 +1,7 @@ package io.ebeaninternal.server.transaction; +import io.ebean.util.JdbcClose; import io.ebeaninternal.api.SpiTransaction; -import io.ebeaninternal.util.JdbcClose; import javax.persistence.PersistenceException; import javax.sql.DataSource; diff --git a/src/main/java/io/ebeaninternal/server/transaction/TransactionFactoryBasicWithRead.java b/src/main/java/io/ebeaninternal/server/transaction/TransactionFactoryBasicWithRead.java index 19926ffea..dbab9e870 100644 --- a/src/main/java/io/ebeaninternal/server/transaction/TransactionFactoryBasicWithRead.java +++ b/src/main/java/io/ebeaninternal/server/transaction/TransactionFactoryBasicWithRead.java @@ -1,7 +1,7 @@ package io.ebeaninternal.server.transaction; +import io.ebean.util.JdbcClose; import io.ebeaninternal.api.SpiTransaction; -import io.ebeaninternal.util.JdbcClose; import javax.persistence.PersistenceException; import javax.sql.DataSource; diff --git a/src/main/java/io/ebeaninternal/server/transaction/TransactionFactoryTenant.java b/src/main/java/io/ebeaninternal/server/transaction/TransactionFactoryTenant.java index c1fa5f670..fdb76e23e 100644 --- a/src/main/java/io/ebeaninternal/server/transaction/TransactionFactoryTenant.java +++ b/src/main/java/io/ebeaninternal/server/transaction/TransactionFactoryTenant.java @@ -1,8 +1,8 @@ package io.ebeaninternal.server.transaction; import io.ebean.config.CurrentTenantProvider; +import io.ebean.util.JdbcClose; import io.ebeaninternal.api.SpiTransaction; -import io.ebeaninternal.util.JdbcClose; import javax.persistence.PersistenceException; import java.sql.Connection; diff --git a/src/main/java/io/ebeaninternal/server/transaction/TransactionFactoryTenantWithRead.java b/src/main/java/io/ebeaninternal/server/transaction/TransactionFactoryTenantWithRead.java index 94f83d5fd..77bec4413 100644 --- a/src/main/java/io/ebeaninternal/server/transaction/TransactionFactoryTenantWithRead.java +++ b/src/main/java/io/ebeaninternal/server/transaction/TransactionFactoryTenantWithRead.java @@ -1,8 +1,8 @@ package io.ebeaninternal.server.transaction; import io.ebean.config.CurrentTenantProvider; +import io.ebean.util.JdbcClose; import io.ebeaninternal.api.SpiTransaction; -import io.ebeaninternal.util.JdbcClose; import javax.persistence.PersistenceException; import java.sql.Connection;