Skip to content

Commit e6e3d0d

Browse files
author
Dai MIKURUBE
committed
Throw ConfigException when failing to build CsvTokenizer
1 parent ca96121 commit e6e3d0d

File tree

1 file changed

+17
-13
lines changed

1 file changed

+17
-13
lines changed

embulk-parser-csv/src/main/java/org/embulk/parser/csv/CsvParserPlugin.java

Lines changed: 17 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -472,20 +472,24 @@ static class CsvRecordValidateException extends DataException {
472472
}
473473

474474
private static CsvTokenizer.Builder buildCsvTokenizerBuilder(final PluginTask task) {
475-
final CsvTokenizer.Builder builder = CsvTokenizer.builder(task.getDelimiter());
476-
task.getQuoteChar().ifPresent(q -> builder.setQuote(q.getCharacter()));
477-
task.getEscapeChar().ifPresent(e -> builder.setEscape(e.getCharacter()));
478-
builder.setNewline(task.getNewline().getString());
479-
if (task.getTrimIfNotQuoted()) {
480-
builder.enableTrimIfNotQuoted();
481-
}
482-
if (task.getQuotesInQuotedFields() == QuotesInQuotedFields.ACCEPT_STRAY_QUOTES_ASSUMING_NO_DELIMITERS_IN_FIELDS) {
483-
builder.acceptStrayQuotesAssumingNoDelimitersInFields();
475+
try {
476+
final CsvTokenizer.Builder builder = CsvTokenizer.builder(task.getDelimiter());
477+
task.getQuoteChar().ifPresent(q -> builder.setQuote(q.getCharacter()));
478+
task.getEscapeChar().ifPresent(e -> builder.setEscape(e.getCharacter()));
479+
builder.setNewline(task.getNewline().getString());
480+
if (task.getTrimIfNotQuoted()) {
481+
builder.enableTrimIfNotQuoted();
482+
}
483+
if (task.getQuotesInQuotedFields() == QuotesInQuotedFields.ACCEPT_STRAY_QUOTES_ASSUMING_NO_DELIMITERS_IN_FIELDS) {
484+
builder.acceptStrayQuotesAssumingNoDelimitersInFields();
485+
}
486+
builder.setMaxQuotedFieldLength(task.getMaxQuotedSizeLimit());
487+
task.getCommentLineMarker().ifPresent(m -> builder.setCommentLineMarker(m));
488+
task.getNullString().ifPresent(n -> builder.setNullString(n));
489+
return builder;
490+
} catch (final RuntimeException ex) {
491+
throw new ConfigException(ex);
484492
}
485-
builder.setMaxQuotedFieldLength(task.getMaxQuotedSizeLimit());
486-
task.getCommentLineMarker().ifPresent(m -> builder.setCommentLineMarker(m));
487-
task.getNullString().ifPresent(n -> builder.setNullString(n));
488-
return builder;
489493
}
490494

491495
@SuppressWarnings("deprecation") // For the use of new PageBuilder().

0 commit comments

Comments
 (0)