From 32c5838a8d81bf0e39a0333cebe28ec19308d6a7 Mon Sep 17 00:00:00 2001 From: Jacky Date: Fri, 23 Feb 2018 11:15:56 -0500 Subject: [PATCH] Fix issue #1509 --- .../refine/importing/ImportingUtilities.java | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/main/src/com/google/refine/importing/ImportingUtilities.java b/main/src/com/google/refine/importing/ImportingUtilities.java index 5f67fcb57..dc638aaf9 100644 --- a/main/src/com/google/refine/importing/ImportingUtilities.java +++ b/main/src/com/google/refine/importing/ImportingUtilities.java @@ -92,6 +92,7 @@ import com.google.refine.ProjectManager; import com.google.refine.RefineServlet; import com.google.refine.importing.ImportingManager.Format; import com.google.refine.importing.UrlRewriter.Result; +import com.google.refine.model.Cell; import com.google.refine.model.Column; import com.google.refine.model.ColumnModel; import com.google.refine.model.Project; @@ -1131,8 +1132,19 @@ public class ImportingUtilities { List rows = project.rows .stream() .limit(INFER_ROW_LIMIT) + .map(Row::dup) .collect(Collectors.toList()); - rows.forEach(r->listCells.add(r.cells.toArray())); + // convert the null object to prevent the NPE + for (Row row : rows) { + for (int i = 0; i < row.cells.size(); i++) { + Cell cell = row.cells.get(i); + if (cell == null) { + row.cells.set(i, new Cell(StringUtils.EMPTY, null)); + } + } + listCells.add(row.cells.toArray()); + } + try { JSONObject fieldsJSON = TypeInferrer.getInstance().infer(listCells, project.columnModel.getColumnNames().toArray(new String[0]),