diff --git a/spring-batch-core/src/main/java/org/springframework/batch/core/repository/support/SimpleJobRepository.java b/spring-batch-core/src/main/java/org/springframework/batch/core/repository/support/SimpleJobRepository.java index 9163f39d3..2ef58f282 100644 --- a/spring-batch-core/src/main/java/org/springframework/batch/core/repository/support/SimpleJobRepository.java +++ b/spring-batch-core/src/main/java/org/springframework/batch/core/repository/support/SimpleJobRepository.java @@ -64,7 +64,7 @@ public class SimpleJobRepository implements JobRepository { /** * Provide default constructor with low visibility in case user wants to use - * use aop:proxy-target-class="true" for transaction interceptor. + * use aop:proxy-target-class="true" for AOP interceptor. */ SimpleJobRepository() { } diff --git a/spring-batch-infrastructure/.classpath b/spring-batch-infrastructure/.classpath index 04b4a0962..9dc3052d5 100644 --- a/spring-batch-infrastructure/.classpath +++ b/spring-batch-infrastructure/.classpath @@ -1,9 +1,9 @@ - - + + diff --git a/spring-batch-infrastructure/src/main/java/org/springframework/batch/item/database/AbstractTransactionalResourceItemWriter.java b/spring-batch-infrastructure/src/main/java/org/springframework/batch/item/database/AbstractTransactionalResourceItemWriter.java index c5b314249..72c91c111 100644 --- a/spring-batch-infrastructure/src/main/java/org/springframework/batch/item/database/AbstractTransactionalResourceItemWriter.java +++ b/spring-batch-infrastructure/src/main/java/org/springframework/batch/item/database/AbstractTransactionalResourceItemWriter.java @@ -47,7 +47,7 @@ public abstract class AbstractTransactionalResourceItemWriter implements Item * * @see org.springframework.batch.item.ItemWriter#flush() */ - public void flush() throws FlushFailedException { + public final void flush() throws FlushFailedException { bindTransactionResources(); try { doFlush(); @@ -73,35 +73,18 @@ public abstract class AbstractTransactionalResourceItemWriter implements Item * * @see org.springframework.batch.item.ItemWriter#write(Object) */ - public void write(T output) throws Exception { + public final void write(T output) throws Exception { bindTransactionResources(); getProcessed().add(output); doWrite(output); flushIfNecessary(output); } - private void flushIfNecessary(Object output) { - boolean flush; - synchronized (failed) { - flush = failed.contains(output); - } - if (flush) { - // Force early completion to commit aggressively if we encounter a - // failed item (from a failed chunk but we don't know which one was - // the problem). - RepeatSynchronizationManager.setCompleteOnly(); - // Flush now, so that if there is a failure this record can be - // skipped. - flush(); - } - - } - /** * Delegate to subclass and unbind transactional resources, effectively * clearing the item buffer. */ - public void clear() throws ClearFailedException { + public final void clear() throws ClearFailedException { try { doClear(); } @@ -131,6 +114,23 @@ public abstract class AbstractTransactionalResourceItemWriter implements Item */ protected abstract String getResourceKey(); + private void flushIfNecessary(Object output) { + boolean flush; + synchronized (failed) { + flush = failed.contains(output); + } + if (flush) { + // Force early completion to commit aggressively if we encounter a + // failed item (from a failed chunk but we don't know which one was + // the problem). + RepeatSynchronizationManager.setCompleteOnly(); + // Flush now, so that if there is a failure this record can be + // skipped. + flush(); + } + + } + /** * Set up the {@link RepeatContext} as a transaction resource. * diff --git a/spring-batch-infrastructure/src/test/java/org/springframework/batch/item/xml/StaxEventItemReaderCommonTests.java b/spring-batch-infrastructure/src/test/java/org/springframework/batch/item/xml/StaxEventItemReaderCommonTests.java index 066cb8dda..fca5057f5 100644 --- a/spring-batch-infrastructure/src/test/java/org/springframework/batch/item/xml/StaxEventItemReaderCommonTests.java +++ b/spring-batch-infrastructure/src/test/java/org/springframework/batch/item/xml/StaxEventItemReaderCommonTests.java @@ -13,7 +13,7 @@ import org.springframework.core.io.ByteArrayResource; public class StaxEventItemReaderCommonTests extends CommonItemStreamItemReaderTests { - private final String FOOS = " "; + private final static String FOOS = " "; protected ItemReader getItemReader() throws Exception { StaxEventItemReader reader = new StaxEventItemReader(); diff --git a/spring-batch-infrastructure/src/test/java/org/springframework/batch/repeat/ExitStatusTests.java b/spring-batch-infrastructure/src/test/java/org/springframework/batch/repeat/ExitStatusTests.java index b996de30d..befb46ee9 100644 --- a/spring-batch-infrastructure/src/test/java/org/springframework/batch/repeat/ExitStatusTests.java +++ b/spring-batch-infrastructure/src/test/java/org/springframework/batch/repeat/ExitStatusTests.java @@ -110,8 +110,8 @@ public class ExitStatusTests extends TestCase { public void testAndExitStatusStillContinuable() { assertTrue(ExitStatus.CONTINUABLE.and(ExitStatus.CONTINUABLE).isContinuable()); assertFalse(ExitStatus.CONTINUABLE.and(ExitStatus.FINISHED).isContinuable()); - assertTrue(ExitStatus.CONTINUABLE.and(ExitStatus.CONTINUABLE).getExitCode() == ExitStatus.CONTINUABLE - .getExitCode()); + assertTrue(ExitStatus.CONTINUABLE.and(ExitStatus.CONTINUABLE).getExitCode().equals( + ExitStatus.CONTINUABLE.getExitCode())); } /** @@ -144,8 +144,8 @@ public class ExitStatusTests extends TestCase { * {@link org.springframework.batch.repeat.ExitStatus#and(org.springframework.batch.repeat.ExitStatus)}. */ public void testAndExitStatusWhenCustomContinuableAddedToFinished() { - assertEquals(ExitStatus.FINISHED.getExitCode(), ExitStatus.FINISHED.and(ExitStatus.CONTINUABLE.replaceExitCode("CUSTOM")) - .getExitCode()); + assertEquals(ExitStatus.FINISHED.getExitCode(), ExitStatus.FINISHED.and( + ExitStatus.CONTINUABLE.replaceExitCode("CUSTOM")).getExitCode()); } public void testAddExitCode() throws Exception { diff --git a/spring-batch-samples/src/main/resources/jobs/fixedLengthImportJob.xml b/spring-batch-samples/src/main/resources/jobs/fixedLengthImportJob.xml index a57a6f840..4709efa44 100644 --- a/spring-batch-samples/src/main/resources/jobs/fixedLengthImportJob.xml +++ b/spring-batch-samples/src/main/resources/jobs/fixedLengthImportJob.xml @@ -1,9 +1,7 @@ - - + - - + + - + @@ -34,30 +29,25 @@ - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + @@ -67,8 +57,7 @@ - + @@ -78,7 +67,6 @@ - + \ No newline at end of file