This is an automated email from the ASF dual-hosted git repository. btellier pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/james-mime4j.git
commit c340fe60f2f27d47858c67dbde25387c4d94310c Author: Benoit Tellier <btell...@linagora.com> AuthorDate: Thu Jun 23 16:23:16 2022 +0700 MIME4J-318 Do not use Synchronised byte array output streams --- .../james/mime4j/util/ByteArrayOutputStreamRecycler.java | 15 ++++++++------- .../java/org/apache/james/mime4j/util/ContentUtil.java | 4 ++-- .../org/apache/james/mime4j/message/BasicBodyFactory.java | 1 - 3 files changed, 10 insertions(+), 10 deletions(-) diff --git a/core/src/main/java/org/apache/james/mime4j/util/ByteArrayOutputStreamRecycler.java b/core/src/main/java/org/apache/james/mime4j/util/ByteArrayOutputStreamRecycler.java index d99dda7e..a77d0c50 100644 --- a/core/src/main/java/org/apache/james/mime4j/util/ByteArrayOutputStreamRecycler.java +++ b/core/src/main/java/org/apache/james/mime4j/util/ByteArrayOutputStreamRecycler.java @@ -22,13 +22,14 @@ package org.apache.james.mime4j.util; import java.util.concurrent.ConcurrentLinkedQueue; import org.apache.commons.io.output.ByteArrayOutputStream; +import org.apache.commons.io.output.UnsynchronizedByteArrayOutputStream; public class ByteArrayOutputStreamRecycler { public static class Wrapper { private final ByteArrayOutputStreamRecycler recycler; - private final ByteArrayOutputStream value; + private final UnsynchronizedByteArrayOutputStream value; - public Wrapper(ByteArrayOutputStreamRecycler recycler, ByteArrayOutputStream value) { + public Wrapper(ByteArrayOutputStreamRecycler recycler, UnsynchronizedByteArrayOutputStream value) { this.recycler = recycler; this.value = value; } @@ -37,26 +38,26 @@ public class ByteArrayOutputStreamRecycler { recycler.release(value); } - public ByteArrayOutputStream getValue() { + public UnsynchronizedByteArrayOutputStream getValue() { return value; } } - protected final ConcurrentLinkedQueue<ByteArrayOutputStream> buffers; + protected final ConcurrentLinkedQueue<UnsynchronizedByteArrayOutputStream> buffers; public ByteArrayOutputStreamRecycler() { buffers = new ConcurrentLinkedQueue<>(); } public Wrapper allocOutputStream() { - ByteArrayOutputStream result = buffers.poll(); + UnsynchronizedByteArrayOutputStream result = buffers.poll(); if (result == null) { - result = new ByteArrayOutputStream(); + result = new UnsynchronizedByteArrayOutputStream(); } return new Wrapper(this, result); } - private void release(ByteArrayOutputStream value) { + private void release(UnsynchronizedByteArrayOutputStream value) { if (value != null) { value.reset(); buffers.offer(value); diff --git a/core/src/main/java/org/apache/james/mime4j/util/ContentUtil.java b/core/src/main/java/org/apache/james/mime4j/util/ContentUtil.java index 0e25ce28..d6d2d96e 100644 --- a/core/src/main/java/org/apache/james/mime4j/util/ContentUtil.java +++ b/core/src/main/java/org/apache/james/mime4j/util/ContentUtil.java @@ -31,7 +31,7 @@ import java.nio.ByteBuffer; import java.nio.CharBuffer; import java.nio.charset.Charset; -import org.apache.commons.io.output.ByteArrayOutputStream; +import org.apache.commons.io.output.UnsynchronizedByteArrayOutputStream; import org.apache.james.mime4j.Charsets; /** @@ -106,7 +106,7 @@ public class ContentUtil { if (in == null) { throw new IllegalArgumentException("Input stream may not be null"); } - ByteArrayOutputStream buf = new ByteArrayOutputStream(); + UnsynchronizedByteArrayOutputStream buf = new UnsynchronizedByteArrayOutputStream(); copy(in, buf); return buf.toByteArray(); } diff --git a/dom/src/main/java/org/apache/james/mime4j/message/BasicBodyFactory.java b/dom/src/main/java/org/apache/james/mime4j/message/BasicBodyFactory.java index f3c74043..10df514b 100644 --- a/dom/src/main/java/org/apache/james/mime4j/message/BasicBodyFactory.java +++ b/dom/src/main/java/org/apache/james/mime4j/message/BasicBodyFactory.java @@ -29,7 +29,6 @@ import java.nio.charset.Charset; import java.nio.charset.IllegalCharsetNameException; import java.nio.charset.UnsupportedCharsetException; -import org.apache.commons.io.output.ByteArrayOutputStream; import org.apache.james.mime4j.Charsets; import org.apache.james.mime4j.dom.BinaryBody; import org.apache.james.mime4j.dom.SingleBody; --------------------------------------------------------------------- To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org For additional commands, e-mail: server-dev-h...@james.apache.org