From 8e821fe1c5177f0d4b27c9d658be3825f22ae07a Mon Sep 17 00:00:00 2001 From: Parikshit Dutta Date: Wed, 23 Sep 2020 20:14:26 +0530 Subject: [PATCH] Fix for setting name of StaxEventItemReader at build --- .../batch/item/xml/builder/StaxEventItemReaderBuilder.java | 4 +--- .../item/xml/builder/StaxEventItemReaderBuilderTests.java | 4 ++++ 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/spring-batch-infrastructure/src/main/java/org/springframework/batch/item/xml/builder/StaxEventItemReaderBuilder.java b/spring-batch-infrastructure/src/main/java/org/springframework/batch/item/xml/builder/StaxEventItemReaderBuilder.java index 374f893f6..ebaee4163 100644 --- a/spring-batch-infrastructure/src/main/java/org/springframework/batch/item/xml/builder/StaxEventItemReaderBuilder.java +++ b/spring-batch-infrastructure/src/main/java/org/springframework/batch/item/xml/builder/StaxEventItemReaderBuilder.java @@ -215,12 +215,10 @@ public class StaxEventItemReaderBuilder { if (this.saveState) { Assert.state(StringUtils.hasText(this.name), "A name is required when saveState is set to true."); } - else { - reader.setName(this.name); - } Assert.notEmpty(this.fragmentRootElements, "At least one fragment root element is required"); + reader.setName(this.name); reader.setSaveState(this.saveState); reader.setResource(this.resource); reader.setFragmentRootElementNames( diff --git a/spring-batch-infrastructure/src/test/java/org/springframework/batch/item/xml/builder/StaxEventItemReaderBuilderTests.java b/spring-batch-infrastructure/src/test/java/org/springframework/batch/item/xml/builder/StaxEventItemReaderBuilderTests.java index b5bf35022..478c621d2 100644 --- a/spring-batch-infrastructure/src/test/java/org/springframework/batch/item/xml/builder/StaxEventItemReaderBuilderTests.java +++ b/spring-batch-infrastructure/src/test/java/org/springframework/batch/item/xml/builder/StaxEventItemReaderBuilderTests.java @@ -34,6 +34,7 @@ import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertNull; import static org.junit.Assert.assertNotNull; import static org.junit.Assert.fail; +import static org.springframework.test.util.ReflectionTestUtils.getField; /** * @author Michael Minella @@ -119,6 +120,9 @@ public class StaxEventItemReaderBuilderTests { assertEquals("five", item.getSecond()); assertEquals("six", item.getThird()); assertEquals(2, executionContext.size()); + + Object executionContextUserSupport = getField(reader, "executionContextUserSupport"); + assertEquals("fooReader", getField(executionContextUserSupport, "name")); } @Test(expected = ItemStreamException.class)