From 9315e65fc0abef79f141d4bbeaf218d3b596e672 Mon Sep 17 00:00:00 2001 From: Nick Robison Date: Wed, 20 Apr 2016 15:24:01 -0700 Subject: [PATCH] Fixes concurrent modification exception when iterating through the list of input files. --- .../java/com/esri/mapreduce/AbstractInputFormat.java | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/src/main/java/com/esri/mapreduce/AbstractInputFormat.java b/src/main/java/com/esri/mapreduce/AbstractInputFormat.java index 1d0d1e4..93d572e 100644 --- a/src/main/java/com/esri/mapreduce/AbstractInputFormat.java +++ b/src/main/java/com/esri/mapreduce/AbstractInputFormat.java @@ -11,6 +11,7 @@ import org.apache.hadoop.mapreduce.lib.input.FileInputFormat; import java.io.IOException; +import java.util.ArrayList; import java.util.List; /** @@ -21,12 +22,13 @@ abstract class AbstractInputFormat @Override protected List listStatus(final JobContext job) throws IOException { - final List list = super.listStatus(job); - for (final FileStatus fileStatus : list) + final List orig = super.listStatus(job); + final List list = new ArrayList(); + for (final FileStatus fileStatus : orig) { - if (!fileStatus.getPath().getName().toLowerCase().endsWith(".shp")) + if (fileStatus.getPath().getName().toLowerCase().endsWith(".shp")) { - list.remove(fileStatus); + list.add(fileStatus); } } return list;