itemReader = () -> {
+ // Trigger a rollback
+ throw new RuntimeException("Foo");
};
step.setTasklet(new TestingChunkOrientedTasklet<>(itemReader, itemWriter));
step.setTransactionManager(new ResourcelessTransactionManager() {
diff --git a/spring-batch-infrastructure/src/main/java/org/springframework/batch/item/Chunk.java b/spring-batch-infrastructure/src/main/java/org/springframework/batch/item/Chunk.java
index 52895ca79d..c8347996db 100644
--- a/spring-batch-infrastructure/src/main/java/org/springframework/batch/item/Chunk.java
+++ b/spring-batch-infrastructure/src/main/java/org/springframework/batch/item/Chunk.java
@@ -26,7 +26,7 @@
/**
* Encapsulation of a list of items to be processed and possibly a list of failed items to
- * be skipped. To mark an item as skipped clients should iterate over the chunk using the
+ * be skipped. To mark an item as skipped, clients should iterate over the chunk using the
* {@link #iterator()} method, and if there is a failure call
* {@link Chunk.ChunkIterator#remove()} on the iterator. The skipped items are then
* available through the chunk.
@@ -130,7 +130,7 @@ public void skip(Exception e) {
}
/**
- * @return true if there are no items in the chunk
+ * @return {@code true} if there are no items in the chunk
*/
public boolean isEmpty() {
return items.isEmpty();
diff --git a/spring-batch-infrastructure/src/main/java/org/springframework/batch/item/adapter/AbstractMethodInvokingDelegator.java b/spring-batch-infrastructure/src/main/java/org/springframework/batch/item/adapter/AbstractMethodInvokingDelegator.java
index c60d31ef34..4a0665ab12 100644
--- a/spring-batch-infrastructure/src/main/java/org/springframework/batch/item/adapter/AbstractMethodInvokingDelegator.java
+++ b/spring-batch-infrastructure/src/main/java/org/springframework/batch/item/adapter/AbstractMethodInvokingDelegator.java
@@ -29,9 +29,9 @@
import org.springframework.util.StringUtils;
/**
- * Superclass for delegating classes which dynamically call a custom method of injected
- * object. Provides convenient API for dynamic method invocation shielding subclasses from
- * low-level details and exception handling.
+ * Superclass for delegating classes which dynamically call a custom method of an injected
+ * object. Provides a convenient API for dynamic method invocation shielding subclasses
+ * from low-level details and exception handling.
*
* {@link Exception}s thrown by a successfully invoked delegate method are re-thrown
* without wrapping. In case the delegate method throws a {@link Throwable} that doesn't
@@ -164,7 +164,7 @@ private boolean targetClassDeclaresTargetMethod() {
if (arguments[j] == null) {
continue;
}
- if (!(ClassUtils.isAssignableValue(params[j], arguments[j]))) {
+ if (!ClassUtils.isAssignableValue(params[j], arguments[j])) {
argumentsMatchParameters = false;
}
}
@@ -205,7 +205,7 @@ public void setTargetMethod(String targetMethod) {
* will be supplied at runtime.
*/
public void setArguments(Object[] arguments) {
- this.arguments = arguments == null ? null : Arrays.asList(arguments).toArray();
+ this.arguments = arguments == null ? null : arguments.clone();
}
/**
diff --git a/spring-batch-infrastructure/src/main/java/org/springframework/batch/item/adapter/PropertyExtractingDelegatingItemWriter.java b/spring-batch-infrastructure/src/main/java/org/springframework/batch/item/adapter/PropertyExtractingDelegatingItemWriter.java
index 75b35c7dab..ea1be22468 100644
--- a/spring-batch-infrastructure/src/main/java/org/springframework/batch/item/adapter/PropertyExtractingDelegatingItemWriter.java
+++ b/spring-batch-infrastructure/src/main/java/org/springframework/batch/item/adapter/PropertyExtractingDelegatingItemWriter.java
@@ -77,8 +77,7 @@ public void afterPropertiesSet() throws Exception {
* e.g. address.city
*/
public void setFieldsUsedAsTargetMethodArguments(String[] fieldsUsedAsMethodArguments) {
- this.fieldsUsedAsTargetMethodArguments = Arrays.asList(fieldsUsedAsMethodArguments)
- .toArray(new String[fieldsUsedAsMethodArguments.length]);
+ this.fieldsUsedAsTargetMethodArguments = fieldsUsedAsMethodArguments.clone();
}
}
diff --git a/spring-batch-infrastructure/src/main/java/org/springframework/batch/item/data/RepositoryItemReader.java b/spring-batch-infrastructure/src/main/java/org/springframework/batch/item/data/RepositoryItemReader.java
index 98ce9941f3..2e12b299c0 100644
--- a/spring-batch-infrastructure/src/main/java/org/springframework/batch/item/data/RepositoryItemReader.java
+++ b/spring-batch-infrastructure/src/main/java/org/springframework/batch/item/data/RepositoryItemReader.java
@@ -44,7 +44,7 @@
/**
*
* A {@link org.springframework.batch.item.ItemReader} that reads records utilizing a
- * {@link org.springframework.data.repository.PagingAndSortingRepository}.
+ * {@link PagingAndSortingRepository}.
*
*
*
@@ -54,9 +54,8 @@
*
*
*
- * The reader must be configured with a
- * {@link org.springframework.data.repository.PagingAndSortingRepository}, a
- * {@link org.springframework.data.domain.Sort}, and a pageSize greater than 0.
+ * The reader must be configured with a {@link PagingAndSortingRepository}, a
+ * {@link Sort}, and a pageSize greater than 0.
*
*
*
@@ -134,8 +133,7 @@ public void setPageSize(int pageSize) {
}
/**
- * The {@link org.springframework.data.repository.PagingAndSortingRepository}
- * implementation used to read input from.
+ * The {@link PagingAndSortingRepository} implementation used to read input from.
* @param repository underlying repository for input to be read from.
*/
public void setRepository(PagingAndSortingRepository, ?> repository) {
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 92e23beb83..534339748d 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
@@ -400,8 +400,8 @@ protected void doClose() throws Exception {
this.con.setAutoCommit(this.initialConnectionAutoCommit);
}
- if (useSharedExtendedConnection && dataSource instanceof ExtendedConnectionDataSourceProxy) {
- ((ExtendedConnectionDataSourceProxy) dataSource).stopCloseSuppression(this.con);
+ if (useSharedExtendedConnection && dataSource instanceof ExtendedConnectionDataSourceProxy dataSourceProxy) {
+ dataSourceProxy.stopCloseSuppression(this.con);
if (!TransactionSynchronizationManager.isActualTransactionActive()) {
DataSourceUtils.releaseConnection(con, dataSource);
}
diff --git a/spring-batch-infrastructure/src/main/java/org/springframework/batch/item/database/support/AbstractSqlPagingQueryProvider.java b/spring-batch-infrastructure/src/main/java/org/springframework/batch/item/database/support/AbstractSqlPagingQueryProvider.java
index dc78066fc5..b60cdfadf9 100644
--- a/spring-batch-infrastructure/src/main/java/org/springframework/batch/item/database/support/AbstractSqlPagingQueryProvider.java
+++ b/spring-batch-infrastructure/src/main/java/org/springframework/batch/item/database/support/AbstractSqlPagingQueryProvider.java
@@ -146,7 +146,7 @@ public void setSortKeys(Map sortKeys) {
/**
* A Map<String, Boolean> of sort columns as the key and boolean for
* ascending/descending (ascending = true).
- * @return sortKey key to use to sort and limit page content
+ * @return keys to use to sort and limit page content
*/
@Override
public Map getSortKeys() {
@@ -214,7 +214,7 @@ public void init(DataSource dataSource) throws Exception {
/**
* Method generating the query string to be used for retrieving the pages following
- * the first page. This method must be implemented in sub classes.
+ * the first page. This method must be implemented in subclasses.
* @param pageSize number of rows to read per page
* @return query string
*/
diff --git a/spring-batch-infrastructure/src/main/java/org/springframework/batch/item/database/support/Db2PagingQueryProvider.java b/spring-batch-infrastructure/src/main/java/org/springframework/batch/item/database/support/Db2PagingQueryProvider.java
index 660eb430b9..8bafc6906f 100644
--- a/spring-batch-infrastructure/src/main/java/org/springframework/batch/item/database/support/Db2PagingQueryProvider.java
+++ b/spring-batch-infrastructure/src/main/java/org/springframework/batch/item/database/support/Db2PagingQueryProvider.java
@@ -45,7 +45,7 @@ public String generateRemainingPagesQuery(int pageSize) {
}
private String buildLimitClause(int pageSize) {
- return new StringBuilder().append("FETCH FIRST ").append(pageSize).append(" ROWS ONLY").toString();
+ return "FETCH FIRST " + pageSize + " ROWS ONLY";
}
}
diff --git a/spring-batch-infrastructure/src/main/java/org/springframework/batch/item/database/support/DerbyPagingQueryProvider.java b/spring-batch-infrastructure/src/main/java/org/springframework/batch/item/database/support/DerbyPagingQueryProvider.java
index 015454f90e..ec640e0088 100644
--- a/spring-batch-infrastructure/src/main/java/org/springframework/batch/item/database/support/DerbyPagingQueryProvider.java
+++ b/spring-batch-infrastructure/src/main/java/org/springframework/batch/item/database/support/DerbyPagingQueryProvider.java
@@ -46,7 +46,7 @@ public String generateRemainingPagesQuery(int pageSize) {
}
private String buildLimitClause(int pageSize) {
- return new StringBuilder("FETCH FIRST ").append(pageSize).append(" ROWS ONLY").toString();
+ return "FETCH FIRST " + pageSize + " ROWS ONLY";
}
}
diff --git a/spring-batch-infrastructure/src/main/java/org/springframework/batch/item/database/support/H2PagingQueryProvider.java b/spring-batch-infrastructure/src/main/java/org/springframework/batch/item/database/support/H2PagingQueryProvider.java
index 5f358b7cd2..3de7e01f9a 100644
--- a/spring-batch-infrastructure/src/main/java/org/springframework/batch/item/database/support/H2PagingQueryProvider.java
+++ b/spring-batch-infrastructure/src/main/java/org/springframework/batch/item/database/support/H2PagingQueryProvider.java
@@ -38,7 +38,7 @@ public String generateRemainingPagesQuery(int pageSize) {
}
private String buildLimitClause(int pageSize) {
- return new StringBuilder().append("FETCH NEXT ").append(pageSize).append(" ROWS ONLY").toString();
+ return "FETCH NEXT " + pageSize + " ROWS ONLY";
}
}
diff --git a/spring-batch-infrastructure/src/main/java/org/springframework/batch/item/database/support/HanaPagingQueryProvider.java b/spring-batch-infrastructure/src/main/java/org/springframework/batch/item/database/support/HanaPagingQueryProvider.java
index 54bd06d23d..c74298b300 100644
--- a/spring-batch-infrastructure/src/main/java/org/springframework/batch/item/database/support/HanaPagingQueryProvider.java
+++ b/spring-batch-infrastructure/src/main/java/org/springframework/batch/item/database/support/HanaPagingQueryProvider.java
@@ -44,7 +44,7 @@ public String generateRemainingPagesQuery(int pageSize) {
}
private String buildLimitClause(int pageSize) {
- return new StringBuilder().append("LIMIT ").append(pageSize).toString();
+ return "LIMIT " + pageSize;
}
}
diff --git a/spring-batch-infrastructure/src/main/java/org/springframework/batch/item/database/support/HsqlPagingQueryProvider.java b/spring-batch-infrastructure/src/main/java/org/springframework/batch/item/database/support/HsqlPagingQueryProvider.java
index 49e3741a4f..94d17b3257 100644
--- a/spring-batch-infrastructure/src/main/java/org/springframework/batch/item/database/support/HsqlPagingQueryProvider.java
+++ b/spring-batch-infrastructure/src/main/java/org/springframework/batch/item/database/support/HsqlPagingQueryProvider.java
@@ -46,7 +46,7 @@ public String generateRemainingPagesQuery(int pageSize) {
}
private String buildTopClause(int pageSize) {
- return new StringBuilder().append("TOP ").append(pageSize).toString();
+ return "TOP " + pageSize;
}
}
diff --git a/spring-batch-infrastructure/src/main/java/org/springframework/batch/item/database/support/MariaDBPagingQueryProvider.java b/spring-batch-infrastructure/src/main/java/org/springframework/batch/item/database/support/MariaDBPagingQueryProvider.java
index 25f47b1506..cdbf4eb9d2 100644
--- a/spring-batch-infrastructure/src/main/java/org/springframework/batch/item/database/support/MariaDBPagingQueryProvider.java
+++ b/spring-batch-infrastructure/src/main/java/org/springframework/batch/item/database/support/MariaDBPagingQueryProvider.java
@@ -44,7 +44,7 @@ public String generateRemainingPagesQuery(int pageSize) {
}
private String buildLimitClause(int pageSize) {
- return new StringBuilder().append("LIMIT ").append(pageSize).toString();
+ return "LIMIT " + pageSize;
}
}
diff --git a/spring-batch-infrastructure/src/main/java/org/springframework/batch/item/database/support/MySqlPagingQueryProvider.java b/spring-batch-infrastructure/src/main/java/org/springframework/batch/item/database/support/MySqlPagingQueryProvider.java
index ad2eba7cf4..0b8448d4ca 100644
--- a/spring-batch-infrastructure/src/main/java/org/springframework/batch/item/database/support/MySqlPagingQueryProvider.java
+++ b/spring-batch-infrastructure/src/main/java/org/springframework/batch/item/database/support/MySqlPagingQueryProvider.java
@@ -45,7 +45,7 @@ public String generateRemainingPagesQuery(int pageSize) {
}
private String buildLimitClause(int pageSize) {
- return new StringBuilder().append("LIMIT ").append(pageSize).toString();
+ return "LIMIT " + pageSize;
}
}
diff --git a/spring-batch-infrastructure/src/main/java/org/springframework/batch/item/database/support/OraclePagingQueryProvider.java b/spring-batch-infrastructure/src/main/java/org/springframework/batch/item/database/support/OraclePagingQueryProvider.java
index 9958727437..5fd902821d 100644
--- a/spring-batch-infrastructure/src/main/java/org/springframework/batch/item/database/support/OraclePagingQueryProvider.java
+++ b/spring-batch-infrastructure/src/main/java/org/springframework/batch/item/database/support/OraclePagingQueryProvider.java
@@ -38,7 +38,7 @@ public String generateRemainingPagesQuery(int pageSize) {
}
private String buildRowNumClause(int pageSize) {
- return new StringBuilder().append("ROWNUM <= ").append(pageSize).toString();
+ return "ROWNUM <= " + pageSize;
}
}
diff --git a/spring-batch-infrastructure/src/main/java/org/springframework/batch/item/database/support/PostgresPagingQueryProvider.java b/spring-batch-infrastructure/src/main/java/org/springframework/batch/item/database/support/PostgresPagingQueryProvider.java
index 4b65d2e3d9..fb3406180f 100644
--- a/spring-batch-infrastructure/src/main/java/org/springframework/batch/item/database/support/PostgresPagingQueryProvider.java
+++ b/spring-batch-infrastructure/src/main/java/org/springframework/batch/item/database/support/PostgresPagingQueryProvider.java
@@ -50,7 +50,7 @@ public String generateRemainingPagesQuery(int pageSize) {
}
private String buildLimitClause(int pageSize) {
- return new StringBuilder().append("LIMIT ").append(pageSize).toString();
+ return "LIMIT " + pageSize;
}
}
diff --git a/spring-batch-infrastructure/src/main/java/org/springframework/batch/item/database/support/SqlServerPagingQueryProvider.java b/spring-batch-infrastructure/src/main/java/org/springframework/batch/item/database/support/SqlServerPagingQueryProvider.java
index b1c79763b1..5d0989f73d 100644
--- a/spring-batch-infrastructure/src/main/java/org/springframework/batch/item/database/support/SqlServerPagingQueryProvider.java
+++ b/spring-batch-infrastructure/src/main/java/org/springframework/batch/item/database/support/SqlServerPagingQueryProvider.java
@@ -46,7 +46,7 @@ public String generateRemainingPagesQuery(int pageSize) {
}
private String buildTopClause(int pageSize) {
- return new StringBuilder().append("TOP ").append(pageSize).toString();
+ return "TOP " + pageSize;
}
}
diff --git a/spring-batch-infrastructure/src/main/java/org/springframework/batch/item/database/support/SqlitePagingQueryProvider.java b/spring-batch-infrastructure/src/main/java/org/springframework/batch/item/database/support/SqlitePagingQueryProvider.java
index cc44ef6a4a..01406388a6 100644
--- a/spring-batch-infrastructure/src/main/java/org/springframework/batch/item/database/support/SqlitePagingQueryProvider.java
+++ b/spring-batch-infrastructure/src/main/java/org/springframework/batch/item/database/support/SqlitePagingQueryProvider.java
@@ -45,7 +45,7 @@ public String generateRemainingPagesQuery(int pageSize) {
}
private String buildLimitClause(int pageSize) {
- return new StringBuilder().append("LIMIT ").append(pageSize).toString();
+ return "LIMIT " + pageSize;
}
}
diff --git a/spring-batch-infrastructure/src/main/java/org/springframework/batch/item/database/support/SybasePagingQueryProvider.java b/spring-batch-infrastructure/src/main/java/org/springframework/batch/item/database/support/SybasePagingQueryProvider.java
index ade0af5266..26261d1246 100644
--- a/spring-batch-infrastructure/src/main/java/org/springframework/batch/item/database/support/SybasePagingQueryProvider.java
+++ b/spring-batch-infrastructure/src/main/java/org/springframework/batch/item/database/support/SybasePagingQueryProvider.java
@@ -46,7 +46,7 @@ public String generateRemainingPagesQuery(int pageSize) {
}
private String buildTopClause(int pageSize) {
- return new StringBuilder().append("TOP ").append(pageSize).toString();
+ return "TOP " + pageSize;
}
}
diff --git a/spring-batch-infrastructure/src/main/java/org/springframework/batch/item/file/MultiResourceItemReader.java b/spring-batch-infrastructure/src/main/java/org/springframework/batch/item/file/MultiResourceItemReader.java
index 341f4222eb..63ebf7617e 100644
--- a/spring-batch-infrastructure/src/main/java/org/springframework/batch/item/file/MultiResourceItemReader.java
+++ b/spring-batch-infrastructure/src/main/java/org/springframework/batch/item/file/MultiResourceItemReader.java
@@ -141,8 +141,8 @@ private T readNextItem() throws Exception {
private T readFromDelegate() throws Exception {
T item = delegate.read();
- if (item instanceof ResourceAware) {
- ((ResourceAware) item).setResource(resources[currentResource]);
+ if (item instanceof ResourceAware resourceAware) {
+ resourceAware.setResource(resources[currentResource]);
}
return item;
}
@@ -222,7 +222,7 @@ public void setDelegate(ResourceAwareItemReaderItemStream extends T> delegate)
}
/**
- * Set the boolean indicating whether or not state should be saved in the provided
+ * Set the boolean indicating whether state should be saved in the provided
* {@link ExecutionContext} during the {@link ItemStream} call to update.
* @param saveState true to update ExecutionContext. False do not update
* ExecutionContext.
@@ -244,7 +244,7 @@ public void setComparator(Comparator comparator) {
*/
public void setResources(Resource[] resources) {
Assert.notNull(resources, "The resources must not be null");
- this.resources = Arrays.asList(resources).toArray(new Resource[resources.length]);
+ this.resources = resources.clone();
}
}
diff --git a/spring-batch-infrastructure/src/main/java/org/springframework/batch/item/file/SimpleBinaryBufferedReaderFactory.java b/spring-batch-infrastructure/src/main/java/org/springframework/batch/item/file/SimpleBinaryBufferedReaderFactory.java
index 6b8fede984..f41f4d1d8f 100644
--- a/spring-batch-infrastructure/src/main/java/org/springframework/batch/item/file/SimpleBinaryBufferedReaderFactory.java
+++ b/spring-batch-infrastructure/src/main/java/org/springframework/batch/item/file/SimpleBinaryBufferedReaderFactory.java
@@ -53,7 +53,7 @@ public void setLineEnding(String lineEnding) {
}
@Override
- public BufferedReader create(Resource resource, String encoding) throws UnsupportedEncodingException, IOException {
+ public BufferedReader create(Resource resource, String encoding) throws IOException {
return new BinaryBufferedReader(new InputStreamReader(resource.getInputStream(), encoding), lineEnding);
}
diff --git a/spring-batch-infrastructure/src/main/java/org/springframework/batch/item/file/mapping/BeanWrapperFieldSetMapper.java b/spring-batch-infrastructure/src/main/java/org/springframework/batch/item/file/mapping/BeanWrapperFieldSetMapper.java
index 1364f71445..81bfa97739 100644
--- a/spring-batch-infrastructure/src/main/java/org/springframework/batch/item/file/mapping/BeanWrapperFieldSetMapper.java
+++ b/spring-batch-infrastructure/src/main/java/org/springframework/batch/item/file/mapping/BeanWrapperFieldSetMapper.java
@@ -291,7 +291,7 @@ private String findPropertyName(Object bean, String key) {
// looking for a match.
if (index > 0) {
prefix = key.substring(0, index);
- suffix = key.substring(index + 1, key.length());
+ suffix = key.substring(index + 1);
String nestedName = findPropertyName(bean, prefix);
if (nestedName == null) {
return null;
@@ -424,9 +424,7 @@ public boolean equals(Object obj) {
}
else if (!cls.equals(other.cls))
return false;
- if (distance != other.distance)
- return false;
- return true;
+ return distance == other.distance;
}
}
diff --git a/spring-batch-infrastructure/src/main/java/org/springframework/batch/item/file/transform/AbstractLineTokenizer.java b/spring-batch-infrastructure/src/main/java/org/springframework/batch/item/file/transform/AbstractLineTokenizer.java
index 5f53e851d7..b4fa1572fe 100644
--- a/spring-batch-infrastructure/src/main/java/org/springframework/batch/item/file/transform/AbstractLineTokenizer.java
+++ b/spring-batch-infrastructure/src/main/java/org/springframework/batch/item/file/transform/AbstractLineTokenizer.java
@@ -96,7 +96,7 @@ public void setNames(String... names) {
}
/**
- * @return true
if column names have been specified
+ * @return {@code true} if column names have been specified
* @see #setNames(String[])
*/
public boolean hasNames() {
@@ -121,7 +121,7 @@ public FieldSet tokenize(@Nullable String line) {
List tokens = new ArrayList<>(doTokenize(line));
// if names are set and strict flag is false
- if ((names.length != 0) && (!strict)) {
+ if (names.length != 0 && !strict) {
adjustTokenCountIfNecessary(tokens);
}
diff --git a/spring-batch-infrastructure/src/main/java/org/springframework/batch/item/file/transform/BeanWrapperFieldExtractor.java b/spring-batch-infrastructure/src/main/java/org/springframework/batch/item/file/transform/BeanWrapperFieldExtractor.java
index 083839d2ca..278e902bd4 100644
--- a/spring-batch-infrastructure/src/main/java/org/springframework/batch/item/file/transform/BeanWrapperFieldExtractor.java
+++ b/spring-batch-infrastructure/src/main/java/org/springframework/batch/item/file/transform/BeanWrapperFieldExtractor.java
@@ -41,12 +41,9 @@ public class BeanWrapperFieldExtractor implements FieldExtractor, Initiali
*/
public void setNames(String[] names) {
Assert.notNull(names, "Names must be non-null");
- this.names = Arrays.asList(names).toArray(new String[names.length]);
+ this.names = names.clone();
}
- /**
- * @see org.springframework.batch.item.file.transform.FieldExtractor#extract(java.lang.Object)
- */
@Override
public Object[] extract(T item) {
List