List of usage examples for org.springframework.batch.core.step.item SkippableException SkippableException
public SkippableException(String message)
From source file:org.springframework.batch.core.step.item.FaultTolerantStepFactoryBeanRollbackTests.java
@Test public void testNonDefaultRollbackRules() throws Exception { TransactionAttributeEditor editor = new TransactionAttributeEditor(); editor.setAsText("+RuntimeException,+SkippableException"); RuleBasedTransactionAttribute attr = (RuleBasedTransactionAttribute) editor.getValue(); attr.getRollbackRules().add(new RollbackRuleAttribute(Exception.class)); assertTrue(attr.rollbackOn(new Exception(""))); assertFalse(attr.rollbackOn(new RuntimeException(""))); assertFalse(attr.rollbackOn(new SkippableException(""))); }
From source file:org.springframework.batch.core.step.item.FaultTolerantStepFactoryBeanTests.java
@Test public void testAutoRegisterItemListeners() throws Exception { reader.setFailures("2"); final List<Integer> listenerCalls = new ArrayList<Integer>(); class TestItemListenerWriter implements ItemWriter<String>, ItemReadListener<String>, ItemWriteListener<String>, ItemProcessListener<String, String>, SkipListener<String, String>, ChunkListener { @Override//from w ww . jav a2s. c o m public void write(List<? extends String> items) throws Exception { if (items.contains("4")) { throw new SkippableException("skippable"); } } @Override public void afterRead(String item) { listenerCalls.add(1); } @Override public void beforeRead() { } @Override public void onReadError(Exception ex) { } @Override public void afterWrite(List<? extends String> items) { listenerCalls.add(2); } @Override public void beforeWrite(List<? extends String> items) { } @Override public void onWriteError(Exception exception, List<? extends String> items) { } @Override public void afterProcess(String item, String result) { listenerCalls.add(3); } @Override public void beforeProcess(String item) { } @Override public void onProcessError(String item, Exception e) { } @Override public void afterChunk(ChunkContext context) { listenerCalls.add(4); } @Override public void beforeChunk(ChunkContext context) { } @Override public void onSkipInProcess(String item, Throwable t) { } @Override public void onSkipInRead(Throwable t) { listenerCalls.add(6); } @Override public void onSkipInWrite(String item, Throwable t) { listenerCalls.add(5); } @Override public void afterChunkError(ChunkContext context) { } } factory.setItemWriter(new TestItemListenerWriter()); Step step = factory.getObject(); step.execute(stepExecution); assertEquals(BatchStatus.COMPLETED, stepExecution.getStatus()); for (int i = 1; i <= 6; i++) { assertTrue("didn't call listener " + i, listenerCalls.contains(i)); } }