You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cayenne.apache.org by aa...@apache.org on 2026/06/07 15:20:59 UTC

(cayenne) 03/23: Cleanup: clearing redundant SQLException declarations

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

asf-gitbox-commits pushed a commit to branch past-M2
in repository https://gitbox.apache.org/repos/asf/cayenne.git

commit 22a578e131bc399ab17ea85b46e32d10730f2f9e
Author: Andrus Adamchik <an...@objectstyle.com>
AuthorDate: Sat May 30 20:42:27 2026 -0400

    Cleanup: clearing redundant SQLException declarations
    
    other trivial cleanup
---
 .../apache/cayenne/access/jdbc/BaseSQLAction.java  |  9 +++--
 .../apache/cayenne/access/jdbc/BatchAction.java    |  2 +-
 .../cayenne/access/jdbc/ProcedureAction.java       | 16 ++++-----
 .../cayenne/access/jdbc/SQLTemplateAction.java     | 26 +++++++-------
 .../apache/cayenne/access/jdbc/SelectAction.java   | 24 ++++++-------
 .../java/org/apache/cayenne/dba/AutoAdapter.java   | 12 +++----
 .../java/org/apache/cayenne/dba/DbAdapter.java     | 11 +++---
 .../java/org/apache/cayenne/dba/JdbcAdapter.java   | 20 +++++------
 .../apache/cayenne/dba/db2/DB2ProcedureAction.java | 11 +++---
 .../cayenne/dba/mysql/MySQLProcedureAction.java    | 14 ++++----
 .../cayenne/dba/oracle/Oracle8LOBBatchAction.java  | 40 ++++++++++------------
 .../dba/oracle/Oracle8SQLTemplateAction.java       | 13 ++++---
 .../dba/sqlite/SQLiteSQLTemplateAction.java        | 15 ++++----
 .../dba/sqlserver/SQLServerBatchAction.java        | 10 +++---
 .../dba/sqlserver/SQLServerProcedureAction.java    |  3 +-
 .../java/org/apache/cayenne/query/SQLAction.java   |  8 ++---
 16 files changed, 111 insertions(+), 123 deletions(-)

diff --git a/cayenne/src/main/java/org/apache/cayenne/access/jdbc/BaseSQLAction.java b/cayenne/src/main/java/org/apache/cayenne/access/jdbc/BaseSQLAction.java
index c2fcf78f1..d81eb258e 100644
--- a/cayenne/src/main/java/org/apache/cayenne/access/jdbc/BaseSQLAction.java
+++ b/cayenne/src/main/java/org/apache/cayenne/access/jdbc/BaseSQLAction.java
@@ -19,10 +19,6 @@
 
 package org.apache.cayenne.access.jdbc;
 
-import java.sql.ResultSet;
-import java.sql.SQLException;
-import java.util.List;
-
 import org.apache.cayenne.access.DataNode;
 import org.apache.cayenne.access.OperationObserver;
 import org.apache.cayenne.access.jdbc.reader.RowReader;
@@ -30,6 +26,9 @@ import org.apache.cayenne.query.Query;
 import org.apache.cayenne.query.QueryMetadata;
 import org.apache.cayenne.query.SQLAction;
 
+import java.sql.ResultSet;
+import java.util.List;
+
 /**
  * A convenience superclass for SQLAction implementations.
  * 
@@ -51,7 +50,7 @@ public abstract class BaseSQLAction implements SQLAction {
      */
     @SuppressWarnings({ "rawtypes", "unchecked" })
     protected void readResultSet(ResultSet resultSet, RowDescriptor descriptor, Query query, OperationObserver delegate)
-            throws SQLException, Exception {
+            throws Exception {
 
         long t1 = System.currentTimeMillis();
 
diff --git a/cayenne/src/main/java/org/apache/cayenne/access/jdbc/BatchAction.java b/cayenne/src/main/java/org/apache/cayenne/access/jdbc/BatchAction.java
index 92e8917af..58fdae47d 100644
--- a/cayenne/src/main/java/org/apache/cayenne/access/jdbc/BatchAction.java
+++ b/cayenne/src/main/java/org/apache/cayenne/access/jdbc/BatchAction.java
@@ -168,7 +168,7 @@ public class BatchAction extends BaseSQLAction {
 	 * Executes batch as individual queries over the same prepared statement.
 	 */
 	protected void runAsIndividualQueries(Connection connection, BatchTranslator translator,
-			OperationObserver delegate, boolean generatesKeys) throws SQLException, Exception {
+			OperationObserver delegate, boolean generatesKeys) throws Exception {
 
 		if(query.getRows().isEmpty()) {
 			return;
diff --git a/cayenne/src/main/java/org/apache/cayenne/access/jdbc/ProcedureAction.java b/cayenne/src/main/java/org/apache/cayenne/access/jdbc/ProcedureAction.java
index 7af5142bf..31e661090 100644
--- a/cayenne/src/main/java/org/apache/cayenne/access/jdbc/ProcedureAction.java
+++ b/cayenne/src/main/java/org/apache/cayenne/access/jdbc/ProcedureAction.java
@@ -19,13 +19,6 @@
 
 package org.apache.cayenne.access.jdbc;
 
-import java.sql.CallableStatement;
-import java.sql.Connection;
-import java.sql.ResultSet;
-import java.sql.SQLException;
-import java.util.Collections;
-import java.util.List;
-
 import org.apache.cayenne.CayenneRuntimeException;
 import org.apache.cayenne.DataRow;
 import org.apache.cayenne.access.DataNode;
@@ -37,6 +30,13 @@ import org.apache.cayenne.map.ProcedureParameter;
 import org.apache.cayenne.query.ProcedureQuery;
 import org.apache.cayenne.query.QueryMetadata;
 
+import java.sql.CallableStatement;
+import java.sql.Connection;
+import java.sql.ResultSet;
+import java.sql.SQLException;
+import java.util.Collections;
+import java.util.List;
+
 /**
  * A SQLAction that runs a stored procedure. Note that ProcedureAction has
  * internal state and is not thread-safe.
@@ -62,7 +62,7 @@ public class ProcedureAction extends BaseSQLAction {
 	}
 
 	@Override
-	public void performAction(Connection connection, OperationObserver observer) throws SQLException, Exception {
+	public void performAction(Connection connection, OperationObserver observer) throws Exception {
 
 		processedResultSets = 0;
 
diff --git a/cayenne/src/main/java/org/apache/cayenne/access/jdbc/SQLTemplateAction.java b/cayenne/src/main/java/org/apache/cayenne/access/jdbc/SQLTemplateAction.java
index 40cc7cba3..a3e7c0e22 100644
--- a/cayenne/src/main/java/org/apache/cayenne/access/jdbc/SQLTemplateAction.java
+++ b/cayenne/src/main/java/org/apache/cayenne/access/jdbc/SQLTemplateAction.java
@@ -19,18 +19,6 @@
 
 package org.apache.cayenne.access.jdbc;
 
-import java.sql.Connection;
-import java.sql.PreparedStatement;
-import java.sql.ResultSet;
-import java.sql.SQLException;
-import java.sql.Statement;
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Map;
-
 import org.apache.cayenne.CayenneRuntimeException;
 import org.apache.cayenne.ResultIterator;
 import org.apache.cayenne.access.DataNode;
@@ -52,6 +40,18 @@ import org.apache.cayenne.query.SQLAction;
 import org.apache.cayenne.query.SQLTemplate;
 import org.apache.cayenne.util.Util;
 
+import java.sql.Connection;
+import java.sql.PreparedStatement;
+import java.sql.ResultSet;
+import java.sql.SQLException;
+import java.sql.Statement;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+
 /**
  * Implements a strategy for execution of SQLTemplates.
  *
@@ -183,7 +183,7 @@ public class SQLTemplateAction implements SQLAction {
 	}
 
 	protected void execute(Connection connection, OperationObserver callback, SQLStatement compiled,
-						   Collection<Number> updateCounts) throws SQLException, Exception {
+						   Collection<Number> updateCounts) throws Exception {
 
 		long t1 = System.currentTimeMillis();
 		boolean iteratedResult = callback.isIteratedResult();
diff --git a/cayenne/src/main/java/org/apache/cayenne/access/jdbc/SelectAction.java b/cayenne/src/main/java/org/apache/cayenne/access/jdbc/SelectAction.java
index 4f640a9ef..8373095dc 100644
--- a/cayenne/src/main/java/org/apache/cayenne/access/jdbc/SelectAction.java
+++ b/cayenne/src/main/java/org/apache/cayenne/access/jdbc/SelectAction.java
@@ -19,11 +19,6 @@
 
 package org.apache.cayenne.access.jdbc;
 
-import java.sql.Connection;
-import java.sql.PreparedStatement;
-import java.sql.ResultSet;
-import java.util.List;
-
 import org.apache.cayenne.ResultIterator;
 import org.apache.cayenne.access.DataNode;
 import org.apache.cayenne.access.OperationObserver;
@@ -37,6 +32,11 @@ import org.apache.cayenne.query.PrefetchTreeNode;
 import org.apache.cayenne.query.QueryMetadata;
 import org.apache.cayenne.query.Select;
 
+import java.sql.Connection;
+import java.sql.PreparedStatement;
+import java.sql.ResultSet;
+import java.util.List;
+
 /**
  * A SQLAction that handles SelectQuery execution.
  * 
@@ -153,13 +153,13 @@ public class SelectAction extends BaseSQLAction {
 			return iterator;
 		}
 
-		return new ConnectionAwareResultIterator<T>(iterator, connection) {
-			@Override
-			protected void doClose() {
-				dataNode.getJdbcEventLogger().logSelectCount(rowCounter, System.currentTimeMillis() - queryStartedAt, sql);
-				super.doClose();
-			}
-		};
+		return new ConnectionAwareResultIterator<>(iterator, connection) {
+            @Override
+            protected void doClose() {
+                dataNode.getJdbcEventLogger().logSelectCount(rowCounter, System.currentTimeMillis() - queryStartedAt, sql);
+                super.doClose();
+            }
+        };
 	}
 
 	private <T> ResultIterator<T> forFetchLimit(ResultIterator<T> iterator, SelectTranslator translator) {
diff --git a/cayenne/src/main/java/org/apache/cayenne/dba/AutoAdapter.java b/cayenne/src/main/java/org/apache/cayenne/dba/AutoAdapter.java
index 93a3679f6..aa097f51a 100644
--- a/cayenne/src/main/java/org/apache/cayenne/dba/AutoAdapter.java
+++ b/cayenne/src/main/java/org/apache/cayenne/dba/AutoAdapter.java
@@ -19,11 +19,6 @@
 
 package org.apache.cayenne.dba;
 
-import java.sql.PreparedStatement;
-import java.sql.SQLException;
-import java.util.Collection;
-import java.util.List;
-
 import org.apache.cayenne.CayenneRuntimeException;
 import org.apache.cayenne.access.DataNode;
 import org.apache.cayenne.access.sqlbuilder.sqltree.SQLTreeProcessor;
@@ -41,6 +36,10 @@ import org.apache.cayenne.query.FluentSelect;
 import org.apache.cayenne.query.Query;
 import org.apache.cayenne.query.SQLAction;
 
+import java.sql.PreparedStatement;
+import java.util.Collection;
+import java.util.List;
+
 /**
  * A DbAdapter that automatically detects the kind of database it is running on
  * and instantiates an appropriate DB-specific adapter, delegating all
@@ -215,8 +214,7 @@ public class AutoAdapter implements DbAdapter {
 	}
 
 	@Override
-	public void bindParameter(PreparedStatement statement, ParameterBinding parameterBinding)
-			throws SQLException, Exception {
+	public void bindParameter(PreparedStatement statement, ParameterBinding parameterBinding) throws Exception {
 		getAdapter().bindParameter(statement, parameterBinding);
 	}
 
diff --git a/cayenne/src/main/java/org/apache/cayenne/dba/DbAdapter.java b/cayenne/src/main/java/org/apache/cayenne/dba/DbAdapter.java
index f2007ea2a..25a8ade9b 100644
--- a/cayenne/src/main/java/org/apache/cayenne/dba/DbAdapter.java
+++ b/cayenne/src/main/java/org/apache/cayenne/dba/DbAdapter.java
@@ -18,11 +18,6 @@
  ****************************************************************/
 package org.apache.cayenne.dba;
 
-import java.sql.PreparedStatement;
-import java.sql.SQLException;
-import java.util.Collection;
-import java.util.List;
-
 import org.apache.cayenne.access.DataNode;
 import org.apache.cayenne.access.sqlbuilder.sqltree.SQLTreeProcessor;
 import org.apache.cayenne.access.translator.ParameterBinding;
@@ -37,6 +32,10 @@ import org.apache.cayenne.query.FluentSelect;
 import org.apache.cayenne.query.Query;
 import org.apache.cayenne.query.SQLAction;
 
+import java.sql.PreparedStatement;
+import java.util.Collection;
+import java.util.List;
+
 /**
  * A Cayenne extension point that abstracts the differences between specifics of
  * JDBC interfaces to various databases. Cayenne already ships with a number of
@@ -195,7 +194,7 @@ public interface DbAdapter {
 	/**
 	 * Binds an object value to PreparedStatement's parameter.
 	 */
-	void bindParameter(PreparedStatement statement, ParameterBinding parameterBinding) throws SQLException, Exception;
+	void bindParameter(PreparedStatement statement, ParameterBinding parameterBinding) throws Exception;
 
 	/**
 	 * Returns the name of the table type (as returned by
diff --git a/cayenne/src/main/java/org/apache/cayenne/dba/JdbcAdapter.java b/cayenne/src/main/java/org/apache/cayenne/dba/JdbcAdapter.java
index f859bb830..0b404badf 100644
--- a/cayenne/src/main/java/org/apache/cayenne/dba/JdbcAdapter.java
+++ b/cayenne/src/main/java/org/apache/cayenne/dba/JdbcAdapter.java
@@ -19,15 +19,6 @@
 
 package org.apache.cayenne.dba;
 
-import java.net.URL;
-import java.sql.PreparedStatement;
-import java.sql.Types;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.Comparator;
-import java.util.Iterator;
-import java.util.List;
-
 import org.apache.cayenne.CayenneRuntimeException;
 import org.apache.cayenne.access.DataNode;
 import org.apache.cayenne.access.sqlbuilder.sqltree.SQLTreeProcessor;
@@ -57,6 +48,15 @@ import org.apache.cayenne.resource.Resource;
 import org.apache.cayenne.resource.ResourceLocator;
 import org.apache.cayenne.util.Util;
 
+import java.net.URL;
+import java.sql.PreparedStatement;
+import java.sql.Types;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.Comparator;
+import java.util.Iterator;
+import java.util.List;
+
 /**
  * A generic DbAdapter implementation. Can be used as a default adapter or as a
  * superclass of a concrete adapter implementation.
@@ -468,7 +468,7 @@ public class JdbcAdapter implements DbAdapter {
 
         buf.append(quotingStrategy.quotedFullyQualifiedName(rel.getTargetEntity()));
 
-        buf.append(" (").append(refBuf.toString()).append(')');
+        buf.append(" (").append(refBuf).append(')');
         return buf.toString();
     }
 
diff --git a/cayenne/src/main/java/org/apache/cayenne/dba/db2/DB2ProcedureAction.java b/cayenne/src/main/java/org/apache/cayenne/dba/db2/DB2ProcedureAction.java
index 11d4245fc..79f304be4 100644
--- a/cayenne/src/main/java/org/apache/cayenne/dba/db2/DB2ProcedureAction.java
+++ b/cayenne/src/main/java/org/apache/cayenne/dba/db2/DB2ProcedureAction.java
@@ -18,11 +18,6 @@
  ****************************************************************/
 package org.apache.cayenne.dba.db2;
 
-import java.sql.CallableStatement;
-import java.sql.Connection;
-import java.sql.ResultSet;
-import java.sql.SQLException;
-
 import org.apache.cayenne.access.DataNode;
 import org.apache.cayenne.access.OperationObserver;
 import org.apache.cayenne.access.jdbc.ProcedureAction;
@@ -30,6 +25,10 @@ import org.apache.cayenne.access.jdbc.RowDescriptor;
 import org.apache.cayenne.access.translator.procedure.ProcedureTranslator;
 import org.apache.cayenne.query.ProcedureQuery;
 
+import java.sql.CallableStatement;
+import java.sql.Connection;
+import java.sql.ResultSet;
+
 /**
  * @since 3.1
  */
@@ -40,7 +39,7 @@ class DB2ProcedureAction extends ProcedureAction {
 	}
 
 	@Override
-	public void performAction(Connection connection, OperationObserver observer) throws SQLException, Exception {
+	public void performAction(Connection connection, OperationObserver observer) throws Exception {
 
 		// cloned from super except for result processing consistent with
 		// CAY-1874
diff --git a/cayenne/src/main/java/org/apache/cayenne/dba/mysql/MySQLProcedureAction.java b/cayenne/src/main/java/org/apache/cayenne/dba/mysql/MySQLProcedureAction.java
index 9d2c2fbda..694d3728b 100644
--- a/cayenne/src/main/java/org/apache/cayenne/dba/mysql/MySQLProcedureAction.java
+++ b/cayenne/src/main/java/org/apache/cayenne/dba/mysql/MySQLProcedureAction.java
@@ -18,12 +18,6 @@
  ****************************************************************/
 package org.apache.cayenne.dba.mysql;
 
-import java.sql.CallableStatement;
-import java.sql.Connection;
-import java.sql.ResultSet;
-import java.sql.SQLException;
-import java.util.Objects;
-
 import org.apache.cayenne.access.DataNode;
 import org.apache.cayenne.access.OperationObserver;
 import org.apache.cayenne.access.jdbc.ProcedureAction;
@@ -31,6 +25,12 @@ import org.apache.cayenne.access.jdbc.RowDescriptor;
 import org.apache.cayenne.access.translator.procedure.ProcedureTranslator;
 import org.apache.cayenne.query.ProcedureQuery;
 
+import java.sql.CallableStatement;
+import java.sql.Connection;
+import java.sql.ResultSet;
+import java.sql.SQLException;
+import java.util.Objects;
+
 /**
  * @since 3.0
  */
@@ -41,7 +41,7 @@ class MySQLProcedureAction extends ProcedureAction {
 	}
 
 	@Override
-	public void performAction(Connection connection, OperationObserver observer) throws SQLException, Exception {
+	public void performAction(Connection connection, OperationObserver observer) throws Exception {
 
 		processedResultSets = 0;
 
diff --git a/cayenne/src/main/java/org/apache/cayenne/dba/oracle/Oracle8LOBBatchAction.java b/cayenne/src/main/java/org/apache/cayenne/dba/oracle/Oracle8LOBBatchAction.java
index c1fb19d2c..f19c35124 100644
--- a/cayenne/src/main/java/org/apache/cayenne/dba/oracle/Oracle8LOBBatchAction.java
+++ b/cayenne/src/main/java/org/apache/cayenne/dba/oracle/Oracle8LOBBatchAction.java
@@ -19,18 +19,6 @@
 
 package org.apache.cayenne.dba.oracle;
 
-import java.io.OutputStream;
-import java.io.Writer;
-import java.lang.reflect.Method;
-import java.sql.Blob;
-import java.sql.Clob;
-import java.sql.Connection;
-import java.sql.PreparedStatement;
-import java.sql.ResultSet;
-import java.sql.SQLException;
-import java.sql.Types;
-import java.util.List;
-
 import org.apache.cayenne.CayenneRuntimeException;
 import org.apache.cayenne.access.OperationObserver;
 import org.apache.cayenne.access.translator.DbAttributeBinding;
@@ -45,17 +33,27 @@ import org.apache.cayenne.query.SQLAction;
 import org.apache.cayenne.query.UpdateBatchQuery;
 import org.apache.cayenne.util.Util;
 
+import java.io.OutputStream;
+import java.io.Writer;
+import java.lang.reflect.Method;
+import java.sql.Blob;
+import java.sql.Clob;
+import java.sql.Connection;
+import java.sql.PreparedStatement;
+import java.sql.ResultSet;
+import java.sql.Types;
+import java.util.List;
+
 /**
  * @since 3.0
  */
 class Oracle8LOBBatchAction implements SQLAction {
 
-	private BatchQuery query;
-	private DbAdapter adapter;
-	private JdbcEventLogger logger;
+	private final BatchQuery query;
+	private final DbAdapter adapter;
+	private final JdbcEventLogger logger;
 
-	private static void bind(DbAdapter adapter, PreparedStatement statement, DbAttributeBinding[] bindings)
-			throws SQLException, Exception {
+	private static void bind(DbAdapter adapter, PreparedStatement statement, DbAttributeBinding[] bindings) throws Exception {
 
 		for (DbAttributeBinding b : bindings) {
 			DbAttributeBinding binding = new DbAttributeBinding(b.getAttribute());
@@ -70,7 +68,7 @@ class Oracle8LOBBatchAction implements SQLAction {
 	}
 
 	@Override
-	public void performAction(Connection connection, OperationObserver observer) throws SQLException, Exception {
+	public void performAction(Connection connection, OperationObserver observer) throws Exception {
 
 		Oracle8LOBBatchTranslator translator;
 		if (query instanceof InsertBatchQuery) {
@@ -123,10 +121,10 @@ class Oracle8LOBBatchAction implements SQLAction {
 	}
 
 	void processLOBRow(Connection con, Oracle8LOBBatchTranslator queryBuilder, Oracle8LOBBatchQueryWrapper selectQuery,
-			List<DbAttribute> qualifierAttributes, BatchQueryRow row) throws SQLException, Exception {
+			List<DbAttribute> qualifierAttributes, BatchQueryRow row) throws Exception {
 
 		List<DbAttribute> lobAttributes = selectQuery.getDbAttributesForUpdatedLOBColumns();
-		if (lobAttributes.size() == 0) {
+		if (lobAttributes.isEmpty()) {
 			return;
 		}
 
@@ -147,7 +145,7 @@ class Oracle8LOBBatchAction implements SQLAction {
 			for (int i = 0; i < parametersSize; i++) {
 				DbAttribute attribute = qualifierAttributes.get(i);
 				Object value = qualifierValues.get(i);
-				ExtendedType extendedType = value != null
+				ExtendedType<?> extendedType = value != null
 						? adapter.getExtendedTypes().getRegisteredType(value.getClass())
 						: adapter.getExtendedTypes().getDefaultType();
 
diff --git a/cayenne/src/main/java/org/apache/cayenne/dba/oracle/Oracle8SQLTemplateAction.java b/cayenne/src/main/java/org/apache/cayenne/dba/oracle/Oracle8SQLTemplateAction.java
index 178125fca..5413906de 100644
--- a/cayenne/src/main/java/org/apache/cayenne/dba/oracle/Oracle8SQLTemplateAction.java
+++ b/cayenne/src/main/java/org/apache/cayenne/dba/oracle/Oracle8SQLTemplateAction.java
@@ -19,18 +19,17 @@
 
 package org.apache.cayenne.dba.oracle;
 
-import java.sql.Connection;
-import java.sql.PreparedStatement;
-import java.sql.ResultSet;
-import java.sql.SQLException;
-import java.util.Collection;
-
 import org.apache.cayenne.access.DataNode;
 import org.apache.cayenne.access.OperationObserver;
 import org.apache.cayenne.access.jdbc.SQLStatement;
 import org.apache.cayenne.access.jdbc.SQLTemplateAction;
 import org.apache.cayenne.query.SQLTemplate;
 
+import java.sql.Connection;
+import java.sql.PreparedStatement;
+import java.sql.ResultSet;
+import java.util.Collection;
+
 /**
  * A SQLTemplateAction that addresses Oracle 8 driver limitations.
  * 
@@ -50,7 +49,7 @@ class Oracle8SQLTemplateAction extends SQLTemplateAction {
      */
     @Override
     protected void execute(Connection connection, OperationObserver callback, SQLStatement compiled,
-            Collection updateCounts) throws SQLException, Exception {
+                           Collection<Number> updateCounts) throws Exception {
 
         String sql = compiled.sql().trim();
         boolean select = sql.length() > "SELECT".length()
diff --git a/cayenne/src/main/java/org/apache/cayenne/dba/sqlite/SQLiteSQLTemplateAction.java b/cayenne/src/main/java/org/apache/cayenne/dba/sqlite/SQLiteSQLTemplateAction.java
index 505a8ff2e..21b1997ed 100644
--- a/cayenne/src/main/java/org/apache/cayenne/dba/sqlite/SQLiteSQLTemplateAction.java
+++ b/cayenne/src/main/java/org/apache/cayenne/dba/sqlite/SQLiteSQLTemplateAction.java
@@ -18,18 +18,17 @@
  ****************************************************************/
 package org.apache.cayenne.dba.sqlite;
 
-import java.sql.Connection;
-import java.sql.PreparedStatement;
-import java.sql.ResultSet;
-import java.sql.SQLException;
-import java.util.Collection;
-
 import org.apache.cayenne.access.DataNode;
 import org.apache.cayenne.access.OperationObserver;
 import org.apache.cayenne.access.jdbc.SQLStatement;
 import org.apache.cayenne.access.jdbc.SQLTemplateAction;
 import org.apache.cayenne.query.SQLTemplate;
 
+import java.sql.Connection;
+import java.sql.PreparedStatement;
+import java.sql.ResultSet;
+import java.util.Collection;
+
 /**
  * @since 3.0
  */
@@ -49,7 +48,7 @@ class SQLiteSQLTemplateAction extends SQLTemplateAction {
             Connection connection,
             OperationObserver callback,
             SQLStatement compiled,
-            Collection<Number> updateCounts) throws SQLException, Exception {
+            Collection<Number> updateCounts) throws Exception {
 
         String sql = compiled.sql().trim();
         boolean select = sql.length() > "SELECT".length()
@@ -82,7 +81,7 @@ class SQLiteSQLTemplateAction extends SQLTemplateAction {
             }
             else {
                 int updateCount = statement.executeUpdate();
-                updateCounts.add(Integer.valueOf(updateCount));
+                updateCounts.add(updateCount);
                 dataNode.getJdbcEventLogger().logUpdateCount(updateCount);
             }
 
diff --git a/cayenne/src/main/java/org/apache/cayenne/dba/sqlserver/SQLServerBatchAction.java b/cayenne/src/main/java/org/apache/cayenne/dba/sqlserver/SQLServerBatchAction.java
index 708cb0f3a..1f82eb365 100644
--- a/cayenne/src/main/java/org/apache/cayenne/dba/sqlserver/SQLServerBatchAction.java
+++ b/cayenne/src/main/java/org/apache/cayenne/dba/sqlserver/SQLServerBatchAction.java
@@ -19,10 +19,6 @@
 
 package org.apache.cayenne.dba.sqlserver;
 
-import java.sql.Connection;
-import java.sql.SQLException;
-import java.sql.Statement;
-
 import org.apache.cayenne.access.DataNode;
 import org.apache.cayenne.access.OperationObserver;
 import org.apache.cayenne.access.jdbc.BatchAction;
@@ -30,6 +26,10 @@ import org.apache.cayenne.map.DbAttribute;
 import org.apache.cayenne.query.BatchQuery;
 import org.apache.cayenne.query.InsertBatchQuery;
 
+import java.sql.Connection;
+import java.sql.SQLException;
+import java.sql.Statement;
+
 /**
  * @since 1.2
  */
@@ -40,7 +40,7 @@ public class SQLServerBatchAction extends BatchAction {
 	}
 
 	@Override
-	public void performAction(Connection connection, OperationObserver observer) throws SQLException, Exception {
+	public void performAction(Connection connection, OperationObserver observer) throws Exception {
 
 		// this condition checks if identity columns are present in the query
 		// and adapter
diff --git a/cayenne/src/main/java/org/apache/cayenne/dba/sqlserver/SQLServerProcedureAction.java b/cayenne/src/main/java/org/apache/cayenne/dba/sqlserver/SQLServerProcedureAction.java
index 2f5022a8c..0ea3e0cd4 100644
--- a/cayenne/src/main/java/org/apache/cayenne/dba/sqlserver/SQLServerProcedureAction.java
+++ b/cayenne/src/main/java/org/apache/cayenne/dba/sqlserver/SQLServerProcedureAction.java
@@ -32,7 +32,6 @@ import org.apache.cayenne.query.Query;
 import java.sql.CallableStatement;
 import java.sql.Connection;
 import java.sql.ResultSet;
-import java.sql.SQLException;
 import java.util.ArrayList;
 import java.util.List;
 
@@ -56,7 +55,7 @@ public class SQLServerProcedureAction extends ProcedureAction {
 	}
 
 	@Override
-	public void performAction(Connection connection, OperationObserver observer) throws SQLException, Exception {
+	public void performAction(Connection connection, OperationObserver observer) throws Exception {
 
 		ProcedureTranslator transl = createTranslator(connection);
 
diff --git a/cayenne/src/main/java/org/apache/cayenne/query/SQLAction.java b/cayenne/src/main/java/org/apache/cayenne/query/SQLAction.java
index 1c3d6065b..1f8c97015 100644
--- a/cayenne/src/main/java/org/apache/cayenne/query/SQLAction.java
+++ b/cayenne/src/main/java/org/apache/cayenne/query/SQLAction.java
@@ -19,11 +19,10 @@
 
 package org.apache.cayenne.query;
 
-import java.sql.Connection;
-import java.sql.SQLException;
-
 import org.apache.cayenne.access.OperationObserver;
 
+import java.sql.Connection;
+
 /**
  * Defines API for query execution strategy over JDBC connection (as in Strategy Pattern).
  * SQLAction unified interface allows a high degree of customization for JDBC
@@ -36,6 +35,5 @@ public interface SQLAction {
     /**
      * Executes a query using a strategy defined by the implementation.
      */
-    void performAction(Connection connection, OperationObserver observer)
-            throws SQLException, Exception;
+    void performAction(Connection connection, OperationObserver observer) throws Exception;
 }