diff --git a/spring-batch-infrastructure/src/main/java/org/springframework/batch/item/database/AbstractCursorItemReader.java b/spring-batch-infrastructure/src/main/java/org/springframework/batch/item/database/AbstractCursorItemReader.java index 17f5ac9a9..2c4aead01 100644 --- a/spring-batch-infrastructure/src/main/java/org/springframework/batch/item/database/AbstractCursorItemReader.java +++ b/spring-batch-infrastructure/src/main/java/org/springframework/batch/item/database/AbstractCursorItemReader.java @@ -135,7 +135,7 @@ implements InitializingBean { private boolean useSharedExtendedConnection = false; - private boolean connectionAutoCommit; + private Boolean connectionAutoCommit; private boolean initialConnectionAutoCommit; @@ -396,7 +396,9 @@ implements InitializingBean { rs = null; cleanupOnClose(); - this.con.setAutoCommit(initialConnectionAutoCommit); + if(this.con != null) { + this.con.setAutoCommit(this.initialConnectionAutoCommit); + } if (useSharedExtendedConnection && dataSource instanceof ExtendedConnectionDataSourceProxy) { ((ExtendedConnectionDataSourceProxy)dataSource).stopCloseSuppression(this.con); @@ -445,7 +447,7 @@ implements InitializingBean { this.initialConnectionAutoCommit = this.con.getAutoCommit(); - if (this.con.getAutoCommit() != this.connectionAutoCommit) { + if (this.connectionAutoCommit != null && this.con.getAutoCommit() != this.connectionAutoCommit) { this.con.setAutoCommit(this.connectionAutoCommit); } } diff --git a/spring-batch-infrastructure/src/test/java/org/springframework/batch/item/database/JdbcCursorItemReaderCommonTests.java b/spring-batch-infrastructure/src/test/java/org/springframework/batch/item/database/JdbcCursorItemReaderCommonTests.java index 04670fe60..ee1b7adfd 100644 --- a/spring-batch-infrastructure/src/test/java/org/springframework/batch/item/database/JdbcCursorItemReaderCommonTests.java +++ b/spring-batch-infrastructure/src/test/java/org/springframework/batch/item/database/JdbcCursorItemReaderCommonTests.java @@ -29,7 +29,7 @@ public class JdbcCursorItemReaderCommonTests extends AbstractDatabaseItemStreamI @Override protected ItemReader getItemReader() throws Exception { - JdbcCursorItemReader result = new JdbcCursorItemReader(); + JdbcCursorItemReader result = new JdbcCursorItemReader<>(); result.setDataSource(getDataSource()); result.setSql("select ID, NAME, VALUE from T_FOOS"); result.setIgnoreWarnings(true);