You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@metamodel.apache.org by ka...@apache.org on 2019/06/20 10:01:27 UTC
[metamodel] 02/07: com.opencsv.CSVParser doesn't provide thread
safety, so we need to make sure it is accessed in a thread-safe manner.
This is an automated email from the ASF dual-hosted git repository.
kaspersor pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/metamodel.git
commit e2b6d3773b7ce922bb6123aad93673d0a0a9d5e0
Author: Arjan Seijkens <a....@quadient.com>
AuthorDate: Wed Jun 12 10:31:20 2019 +0200
com.opencsv.CSVParser doesn't provide thread safety, so we need to make sure it is accessed in a thread-safe manner.
---
csv/src/main/java/org/apache/metamodel/csv/SingleLineCsvRow.java | 7 ++++++-
1 file changed, 6 insertions(+), 1 deletion(-)
diff --git a/csv/src/main/java/org/apache/metamodel/csv/SingleLineCsvRow.java b/csv/src/main/java/org/apache/metamodel/csv/SingleLineCsvRow.java
index fe9fda5..64ff013 100644
--- a/csv/src/main/java/org/apache/metamodel/csv/SingleLineCsvRow.java
+++ b/csv/src/main/java/org/apache/metamodel/csv/SingleLineCsvRow.java
@@ -29,6 +29,8 @@ import org.apache.metamodel.schema.Column;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
+import com.opencsv.ICSVParser;
+
/**
* Specialized row implementation for single-line CSV values
*/
@@ -99,7 +101,10 @@ final class SingleLineCsvRow extends AbstractRow {
private String[] parseLine() {
try {
- return _dataSet.getCsvParser().parseLine(_line);
+ final ICSVParser csvParser = _dataSet.getCsvParser();
+ synchronized (csvParser) {
+ return csvParser.parseLine(_line);
+ }
} catch (IOException e) {
if (_failOnInconsistentRowLength) {
throw new MetaModelException("Failed to parse CSV line no. " + _rowNumber + ": " + _line, e);