#1293 - Refactor - move JdbcClose into io.ebean.util ... from io.ebeaninternal.util as it is used in public API (platform code, sequences etc)

This commit is contained in:
Rob Bygrave committed 2018-02-27 12:56:20 +13:00
1 parent 3dfdd0e2e8
commit 06bce35f5a
20 files changed
+43 -159

No files matched your search

@@ -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;
@@ -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;
@@ -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);
}
}
@@ -1,4 +1,4 @@
package io.ebeaninternal.util;
package io.ebean.util;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -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);
}
/**
@@ -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);
}
}
}
@@ -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);
}
}
}
@@ -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);
}
}
}
@@ -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);
}
}
@@ -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<T> 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;
}
/**
@@ -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
@@ -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;
}
@@ -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;
}
@@ -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);
}
}
}
@@ -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.
@@ -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;
@@ -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;
@@ -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;
@@ -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;
@@ -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;