diff --git a/spring-batch-integration/src/main/java/org/springframework/batch/integration/async/AsyncItemWriter.java b/spring-batch-integration/src/main/java/org/springframework/batch/integration/async/AsyncItemWriter.java index 1df06bff1c..415d3ad4cf 100644 --- a/spring-batch-integration/src/main/java/org/springframework/batch/integration/async/AsyncItemWriter.java +++ b/spring-batch-integration/src/main/java/org/springframework/batch/integration/async/AsyncItemWriter.java @@ -65,13 +65,13 @@ public void write(List> items) throws Exception { T item = future.get(); if(item != null) { - list.add(future.get()); + list.add(item); } } catch (ExecutionException e) { Throwable cause = e.getCause(); - if(cause != null && cause instanceof Exception) { + if(cause instanceof Exception) { logger.debug("An exception was thrown while processing an item", e); throw (Exception) cause; @@ -81,8 +81,10 @@ public void write(List> items) throws Exception { } } } - - delegate.write(list); + + if (!list.isEmpty()) { + delegate.write(list); + } } @Override