diff --git a/spring-batch-infrastructure/src/main/java/org/springframework/batch/item/file/transform/Range.java b/spring-batch-infrastructure/src/main/java/org/springframework/batch/item/file/transform/Range.java index cd13489dd..337a7ea34 100644 --- a/spring-batch-infrastructure/src/main/java/org/springframework/batch/item/file/transform/Range.java +++ b/spring-batch-infrastructure/src/main/java/org/springframework/batch/item/file/transform/Range.java @@ -14,11 +14,13 @@ public class Range { public final static int UPPER_BORDER_NOT_DEFINED = Integer.MAX_VALUE; - final private int min; - final private int max; + private int min; + private int max; public Range(int min) { - this(min,UPPER_BORDER_NOT_DEFINED); + checkMinMaxValues(min, UPPER_BORDER_NOT_DEFINED); + this.min = min; + this.max = UPPER_BORDER_NOT_DEFINED; } public Range(int min, int max) { @@ -35,6 +37,16 @@ public class Range { return min; } + public void setMax(int max) { + checkMinMaxValues(this.min, max); + this.max = max; + } + + public void setMin(int min) { + checkMinMaxValues(min, this.max); + this.min = min; + } + public boolean hasMaxValue() { return max != UPPER_BORDER_NOT_DEFINED; } diff --git a/spring-batch-infrastructure/src/main/java/org/springframework/batch/item/file/transform/RangeArrayPropertyEditor.java b/spring-batch-infrastructure/src/main/java/org/springframework/batch/item/file/transform/RangeArrayPropertyEditor.java index 2b5fa5322..568bd8779 100644 --- a/spring-batch-infrastructure/src/main/java/org/springframework/batch/item/file/transform/RangeArrayPropertyEditor.java +++ b/spring-batch-infrastructure/src/main/java/org/springframework/batch/item/file/transform/RangeArrayPropertyEditor.java @@ -110,7 +110,7 @@ public class RangeArrayPropertyEditor extends PropertyEditorSupport { for (int i = 0; i < c.length - 1; i++) { if (!c[i].hasMaxValue()) { //set max value to (min value - 1) of the next range - c[i] = new Range(c[i].getMin(),c[i+1].getMin() - 1); + c[i].setMax(c[i+1].getMin() - 1); } }