diff --git a/core/.classpath b/core/.classpath
index 06a9ed43d..f561ddc6f 100644
--- a/core/.classpath
+++ b/core/.classpath
@@ -26,7 +26,8 @@
-
+
+
diff --git a/core/build.xml b/core/build.xml
index 6ff2e33d6..007c10508 100644
--- a/core/build.xml
+++ b/core/build.xml
@@ -53,8 +53,8 @@
- Java/JVM version: ${ant.java.version}
- Java/JVM detail version: ${java.version}
+ Java/JVM version: ${ant.java.version}
+ Java/JVM detail version: ${java.version}
Compiling main classes
@@ -88,15 +88,15 @@
- Building unit tests
- Java/JVM version: ${ant.java.version}
- Java/JVM detail version: ${java.version}
+ Building unit tests
+ Java/JVM version: ${ant.java.version}
+ Java/JVM detail version: ${java.version}
Running unit tests
- Java/JVM version: ${ant.java.version}
- Java/JVM detail version: ${java.version}
+ Java/JVM version: ${ant.java.version}
+ Java/JVM detail version: ${java.version}
diff --git a/core/lib/commons-lang3-3.12.0.jar b/core/lib/commons-lang3-3.12.0.jar
new file mode 100644
index 000000000..4d434a2a4
Binary files /dev/null and b/core/lib/commons-lang3-3.12.0.jar differ
diff --git a/core/lib/opencsv-4.3.2.jar b/core/lib/opencsv-4.3.2.jar
deleted file mode 100644
index 3e00a6ea3..000000000
Binary files a/core/lib/opencsv-4.3.2.jar and /dev/null differ
diff --git a/core/lib/opencsv-5.7.1.jar b/core/lib/opencsv-5.7.1.jar
new file mode 100644
index 000000000..ea50aa6d7
Binary files /dev/null and b/core/lib/opencsv-5.7.1.jar differ
diff --git a/core/src/net/sf/openrocket/preset/loader/RocksimComponentFileLoader.java b/core/src/net/sf/openrocket/preset/loader/RocksimComponentFileLoader.java
index 3126766c1..7845ee3c8 100644
--- a/core/src/net/sf/openrocket/preset/loader/RocksimComponentFileLoader.java
+++ b/core/src/net/sf/openrocket/preset/loader/RocksimComponentFileLoader.java
@@ -9,10 +9,15 @@ import java.io.InputStreamReader;
import java.io.PrintStream;
import java.util.List;
+import com.opencsv.CSVParser;
+import com.opencsv.CSVParserBuilder;
+import com.opencsv.CSVReaderBuilder;
+import com.opencsv.exceptions.CsvValidationException;
import net.sf.openrocket.preset.TypedPropertyMap;
import net.sf.openrocket.unit.Unit;
import net.sf.openrocket.unit.UnitGroup;
import net.sf.openrocket.util.ArrayList;
+import net.sf.openrocket.util.BugException;
import net.sf.openrocket.util.StringUtil;
import com.opencsv.CSVReader;
@@ -115,11 +120,18 @@ public abstract class RocksimComponentFileLoader {
r = new InputStreamReader(is);
// Create the CSV reader. Use comma separator.
- CSVReader reader = new CSVReader(r, ',', '\'', '\\');
-
+ CSVParser parser = new CSVParserBuilder()
+ .withSeparator(',')
+ .withQuoteChar('\'')
+ .withEscapeChar('\\')
+ .build();
+ CSVReader reader = new CSVReaderBuilder(r)
+ .withCSVParser(parser)
+ .build();
+
//Read and throw away the header row.
parseHeaders(reader.readNext());
-
+
String[] data = null;
while ((data = reader.readNext()) != null) {
// detect empty lines and skip:
@@ -133,13 +145,13 @@ public abstract class RocksimComponentFileLoader {
}
//Read the rest of the file as data rows.
return;
- } catch (IOException e) {
+ } catch (IOException | CsvValidationException e) {
+ throw new BugException("Could not read component file", e);
} finally {
if (r != null) {
try {
r.close();
- } catch (IOException e) {
- }
+ } catch (IOException ignored) { }
}
}
diff --git a/swing/.classpath b/swing/.classpath
index 6878da13d..4cb3e712c 100644
--- a/swing/.classpath
+++ b/swing/.classpath
@@ -31,7 +31,8 @@
-
+
+
diff --git a/swing/build.xml b/swing/build.xml
index 91ce8c675..fdb211e29 100644
--- a/swing/build.xml
+++ b/swing/build.xml
@@ -70,8 +70,8 @@
- Java/JVM version: ${ant.java.version}
- Java/JVM detail version: ${java.version}
+ Java/JVM version: ${ant.java.version}
+ Java/JVM detail version: ${java.version}
Compiling main classes
@@ -116,7 +116,8 @@
-
+
+
@@ -317,15 +318,15 @@ ${nonascii}
- Building unit tests
- Java/JVM version: ${ant.java.version}
- Java/JVM detail version: ${java.version}
+ Building unit tests
+ Java/JVM version: ${ant.java.version}
+ Java/JVM detail version: ${java.version}
- Running unit tests
- Java/JVM version: ${ant.java.version}
- Java/JVM detail version: ${java.version}
+ Running unit tests
+ Java/JVM version: ${ant.java.version}
+ Java/JVM detail version: ${java.version}