This is an automated email from the ASF dual-hosted git repository.

ggregory pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/commons-csv.git


The following commit(s) were added to refs/heads/master by this push:
     new e5bbf94  [CSV-295] Support for parallelism in CSVPrinter.
e5bbf94 is described below

commit e5bbf9423f6670d854e56e10a37dc1545b71f7c8
Author: Gary Gregory <[email protected]>
AuthorDate: Thu Mar 10 17:25:32 2022 -0500

    [CSV-295] Support for parallelism in CSVPrinter.
---
 src/changes/changes.xml                              |  1 +
 src/main/java/org/apache/commons/csv/CSVFormat.java  |  8 ++++----
 src/main/java/org/apache/commons/csv/CSVPrinter.java | 10 +++++-----
 3 files changed, 10 insertions(+), 9 deletions(-)

diff --git a/src/changes/changes.xml b/src/changes/changes.xml
index 720671f..42a0f52 100644
--- a/src/changes/changes.xml
+++ b/src/changes/changes.xml
@@ -47,6 +47,7 @@
       <!-- ADD -->
       <action issue="CSV-291" type="add" dev="ggregory" due-to="Gary 
Gregory">Make CSVRecord#values() public.</action>
       <action issue="CSV-264" type="add" dev="ggregory" due-to="Sagar Tiwari, 
Seth Falco, Alex Herbert, Gary Gregory">Add DuplicateHeaderMode for flexibility 
with header strictness. #114.</action>
+      <action issue="CSV-295" type="add" dev="ggregory" due-to="Gary 
Gregory">Support for parallelism in CSVPrinter.</action>
       <!-- UPDATE -->
       <action                 type="update" dev="ggregory" 
due-to="Dependabot">Bump checkstyle from 8.44 to 9.2.1 #180, #190, #194, #202, 
#207.</action>
       <action                 type="update" dev="ggregory" 
due-to="Dependabot">Bump junit-jupiter from 5.8.0-M1 to 5.8.2 #179, #186, 
#201.</action>
diff --git a/src/main/java/org/apache/commons/csv/CSVFormat.java 
b/src/main/java/org/apache/commons/csv/CSVFormat.java
index 77a009d..27574b2 100644
--- a/src/main/java/org/apache/commons/csv/CSVFormat.java
+++ b/src/main/java/org/apache/commons/csv/CSVFormat.java
@@ -1793,7 +1793,7 @@ public final class CSVFormat implements Serializable {
      * @throws IOException If an I/O error occurs.
      * @since 1.4
      */
-    public void print(final Object value, final Appendable out, final boolean 
newRecord) throws IOException {
+    public synchronized void print(final Object value, final Appendable out, 
final boolean newRecord) throws IOException {
         // null values are considered empty
         // Only call CharSequence.toString() if you have to, helps GC-free use 
cases.
         CharSequence charSequence;
@@ -1818,7 +1818,7 @@ public final class CSVFormat implements Serializable {
         print(value, charSequence, out, newRecord);
     }
 
-    private void print(final Object object, final CharSequence value, final 
Appendable out, final boolean newRecord) throws IOException {
+    private synchronized void print(final Object object, final CharSequence 
value, final Appendable out, final boolean newRecord) throws IOException {
         final int offset = 0;
         final int len = value.length();
         if (!newRecord) {
@@ -1893,7 +1893,7 @@ public final class CSVFormat implements Serializable {
      * @throws IOException If an I/O error occurs.
      * @since 1.4
      */
-    public void println(final Appendable appendable) throws IOException {
+    public synchronized void println(final Appendable appendable) throws 
IOException {
         if (getTrailingDelimiter()) {
             append(getDelimiterString(), appendable);
         }
@@ -1915,7 +1915,7 @@ public final class CSVFormat implements Serializable {
      * @throws IOException If an I/O error occurs.
      * @since 1.4
      */
-    public void printRecord(final Appendable appendable, final Object... 
values) throws IOException {
+    public synchronized void printRecord(final Appendable appendable, final 
Object... values) throws IOException {
         for (int i = 0; i < values.length; i++) {
             print(values[i], appendable, i == 0);
         }
diff --git a/src/main/java/org/apache/commons/csv/CSVPrinter.java 
b/src/main/java/org/apache/commons/csv/CSVPrinter.java
index 171bcff..9dcb95c 100644
--- a/src/main/java/org/apache/commons/csv/CSVPrinter.java
+++ b/src/main/java/org/apache/commons/csv/CSVPrinter.java
@@ -162,7 +162,7 @@ public final class CSVPrinter implements Flushable, 
Closeable {
      * @throws IOException
      *             If an I/O error occurs
      */
-    public void print(final Object value) throws IOException {
+    public synchronized void print(final Object value) throws IOException {
         format.print(value, appendable, newRecord);
         newRecord = false;
     }
@@ -188,7 +188,7 @@ public final class CSVPrinter implements Flushable, 
Closeable {
      * @throws IOException
      *             If an I/O error occurs
      */
-    public void printComment(final String comment) throws IOException {
+    public synchronized void printComment(final String comment) throws 
IOException {
         if (comment == null || !format.isCommentMarkerSet()) {
             return;
         }
@@ -226,7 +226,7 @@ public final class CSVPrinter implements Flushable, 
Closeable {
      * @throws SQLException If a database access error occurs or this method 
is called on a closed result set.
      * @since 1.9.0
      */
-    public void printHeaders(final ResultSet resultSet) throws IOException, 
SQLException {
+    public synchronized void printHeaders(final ResultSet resultSet) throws 
IOException, SQLException {
         printRecord((Object[]) 
format.builder().setHeader(resultSet).build().getHeader());
     }
 
@@ -236,7 +236,7 @@ public final class CSVPrinter implements Flushable, 
Closeable {
      * @throws IOException
      *             If an I/O error occurs
      */
-    public void println() throws IOException {
+    public synchronized void println() throws IOException {
         format.println(appendable);
         newRecord = true;
     }
@@ -254,7 +254,7 @@ public final class CSVPrinter implements Flushable, 
Closeable {
      * @throws IOException
      *             If an I/O error occurs
      */
-    public void printRecord(final Iterable<?> values) throws IOException {
+    public synchronized void printRecord(final Iterable<?> values) throws 
IOException {
         for (final Object value : values) {
             print(value);
         }

Reply via email to