diff --git a/main/src/com/google/refine/importers/ExcelImporter.java b/main/src/com/google/refine/importers/ExcelImporter.java index 7ef471a48..802344bcc 100644 --- a/main/src/com/google/refine/importers/ExcelImporter.java +++ b/main/src/com/google/refine/importers/ExcelImporter.java @@ -43,6 +43,7 @@ import java.util.HashMap; import java.util.List; import java.util.Map; +import org.apache.poi.POIXMLException; import org.apache.poi.common.usermodel.Hyperlink; import org.apache.poi.hssf.usermodel.HSSFDateUtil; import org.apache.poi.hssf.usermodel.HSSFWorkbook; @@ -117,6 +118,8 @@ public class ExcelImporter extends TabularImportingParserBase { logger.error("Error generating parser UI initialization data for Excel file", e); } catch (IllegalArgumentException e) { logger.error("Error generating parser UI initialization data for Excel file (only Excel 97 & later supported)", e); + } catch (POIXMLException e) { + logger.error("Error generating parser UI initialization data for Excel file - invalid XML", e); } return options; @@ -162,6 +165,13 @@ public class ExcelImporter extends TabularImportingParserBase { e )); return; + } catch (POIXMLException e) { + exceptions.add(new ImportException( + "Attempted to parse as an Excel file but failed. " + + "Invalid XML.", + e + )); + return; } int[] sheets = JSONUtilities.getIntArray(options, "sheets"); diff --git a/main/src/com/google/refine/importers/RdfTripleImporter.java b/main/src/com/google/refine/importers/RdfTripleImporter.java index bfa22bc4a..ed9d7dbae 100644 --- a/main/src/com/google/refine/importers/RdfTripleImporter.java +++ b/main/src/com/google/refine/importers/RdfTripleImporter.java @@ -86,18 +86,23 @@ public class RdfTripleImporter extends ImportingParserBase { JSONObject options, List exceptions) { Graph graph; - switch (mode) { - case NT: - graph = rdfReader.parseNTriples(input); - break; - case N3: - graph = rdfReader.parseN3(input); - break; - case RDFXML: - graph = rdfReader.parseRdfXml(input); - break; - default: - throw new IllegalArgumentException("Unknown parsing mode"); + try { + switch (mode) { + case NT: + graph = rdfReader.parseNTriples(input); + break; + case N3: + graph = rdfReader.parseN3(input); + break; + case RDFXML: + graph = rdfReader.parseRdfXml(input); + break; + default: + throw new IllegalArgumentException("Unknown parsing mode"); + } + } catch (Exception e) { + exceptions.add(e); + return; } ClosableIterable triples = graph.find(ANY_SUBJECT_NODE, ANY_PREDICATE_NODE, ANY_OBJECT_NODE);