Hi

I think there may be a checkstyle issues in this commit.

On Tue, Aug 1, 2017 at 1:33 PM,  <acosent...@apache.org> wrote:
> Repository: camel
> Updated Branches:
>   refs/heads/master 3743c2256 -> 94f621d15
>
>
> CAMEL-11609:thread-safety if headers get modified on the fly
>
>
> Project: http://git-wip-us.apache.org/repos/asf/camel/repo
> Commit: http://git-wip-us.apache.org/repos/asf/camel/commit/94f621d1
> Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/94f621d1
> Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/94f621d1
>
> Branch: refs/heads/master
> Commit: 94f621d153ba2db4925950e9fd231f0578fa13a6
> Parents: 3743c22
> Author: Daniel Baldes <dan...@baldes.name>
> Authored: Tue Aug 1 11:24:46 2017 +0200
> Committer: Andrea Cosentino <anco...@gmail.com>
> Committed: Tue Aug 1 13:25:00 2017 +0200
>
> ----------------------------------------------------------------------
>  .../camel/dataformat/univocity/Marshaller.java  | 36 ++++++++++++++------
>  1 file changed, 25 insertions(+), 11 deletions(-)
> ----------------------------------------------------------------------
>
>
> http://git-wip-us.apache.org/repos/asf/camel/blob/94f621d1/components/camel-univocity-parsers/src/main/java/org/apache/camel/dataformat/univocity/Marshaller.java
> ----------------------------------------------------------------------
> diff --git 
> a/components/camel-univocity-parsers/src/main/java/org/apache/camel/dataformat/univocity/Marshaller.java
>  
> b/components/camel-univocity-parsers/src/main/java/org/apache/camel/dataformat/univocity/Marshaller.java
> index 5c113cb..1161559 100644
> --- 
> a/components/camel-univocity-parsers/src/main/java/org/apache/camel/dataformat/univocity/Marshaller.java
> +++ 
> b/components/camel-univocity-parsers/src/main/java/org/apache/camel/dataformat/univocity/Marshaller.java
> @@ -16,17 +16,18 @@
>   */
>  package org.apache.camel.dataformat.univocity;
>
> +import static org.apache.camel.util.ExchangeHelper.convertToMandatoryType;
> +import static org.apache.camel.util.ExchangeHelper.convertToType;
> +
>  import java.util.Arrays;
>  import java.util.LinkedHashSet;
>  import java.util.List;
>  import java.util.Map;
>
> -import com.univocity.parsers.common.AbstractWriter;
>  import org.apache.camel.Exchange;
>  import org.apache.camel.NoTypeConversionAvailableException;
>
> -import static org.apache.camel.util.ExchangeHelper.convertToMandatoryType;
> -import static org.apache.camel.util.ExchangeHelper.convertToType;
> +import com.univocity.parsers.common.AbstractWriter;
>
>  /**
>   * This class marshalls the exchange body using an uniVocity writer. It can 
> automatically generates headers and keep
> @@ -85,16 +86,29 @@ final class Marshaller<W extends AbstractWriter<?>> {
>      private void writeRow(Exchange exchange, Object row, W writer) throws 
> NoTypeConversionAvailableException {
>          Map<?, ?> map = convertToMandatoryType(exchange, Map.class, row);
>          if (adaptHeaders) {
> -            for (Object key : map.keySet()) {
> -                headers.add(convertToMandatoryType(exchange, String.class, 
> key));
> +            synchronized (headers) {
> +                for (Object key : map.keySet()) {
> +                    headers.add(convertToMandatoryType(exchange, 
> String.class, key));
> +                }
> +                writeRow(map, writer);
>              }
> +        } else {
> +            writeRow(map, writer);
>          }
> +    }
>
> -        Object[] values = new Object[headers.size()];
> -        int index = 0;
> -        for (String header : headers) {
> -            values[index++] = map.get(header);
> -        }
> -        writer.writeRow(values);
> +    /**
> +     * Writes the given map as row.
> +     *
> +     * @param map row values by header
> +     * @param writer uniVocity writer to use
> +     */
> +    private void writeRow(Map<?, ?> map, W writer) {
> +      Object[] values = new Object[headers.size()];
> +      int index = 0;
> +      for (String header : headers) {
> +          values[index++] = map.get(header);
> +      }
> +      writer.writeRow(values);
>      }
>  }
>



-- 
Claus Ibsen
-----------------
http://davsclaus.com @davsclaus
Camel in Action 2: https://www.manning.com/ibsen2

Reply via email to