You are viewing a plain text version of this content. The canonical link for it is here.
Posted to server-dev@james.apache.org by rc...@apache.org on 2019/11/26 10:41:26 UTC

[james-project] 05/06: JAMES-2110 Use IOUtils::copy in more places

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

rcordier pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/james-project.git

commit 98034ed4ea6fc3224f84bdac856adab708f4aa3d
Author: Benoit Tellier <bt...@linagora.com>
AuthorDate: Fri Nov 22 09:02:48 2019 +0700

    JAMES-2110 Use IOUtils::copy in more places
---
 .../james/mailbox/maildir/mail/MaildirMessageMapper.java  |  6 ++----
 .../apache/james/imap/decode/ImapRequestLineReader.java   | 13 ++++---------
 .../imap/decode/main/OutputStreamImapResponseWriter.java  | 15 +++------------
 3 files changed, 9 insertions(+), 25 deletions(-)

diff --git a/mailbox/maildir/src/main/java/org/apache/james/mailbox/maildir/mail/MaildirMessageMapper.java b/mailbox/maildir/src/main/java/org/apache/james/mailbox/maildir/mail/MaildirMessageMapper.java
index 6bbddaa..b9d29fb 100644
--- a/mailbox/maildir/src/main/java/org/apache/james/mailbox/maildir/mail/MaildirMessageMapper.java
+++ b/mailbox/maildir/src/main/java/org/apache/james/mailbox/maildir/mail/MaildirMessageMapper.java
@@ -36,6 +36,7 @@ import javax.mail.Flags;
 import javax.mail.Flags.Flag;
 
 import org.apache.commons.io.FileUtils;
+import org.apache.commons.io.IOUtils;
 import org.apache.james.mailbox.MailboxSession;
 import org.apache.james.mailbox.MessageUid;
 import org.apache.james.mailbox.ModSeq;
@@ -310,10 +311,7 @@ public class MaildirMessageMapper extends AbstractMessageMapper {
             try (FileOutputStream fos = new FileOutputStream(messageFile);
                 InputStream input = message.getFullContent()) {
                 byte[] b = new byte[BUF_SIZE];
-                int len = 0;
-                while ((len = input.read(b)) != -1) {
-                    fos.write(b, 0, len);
-                }
+                IOUtils.copy(input, fos, BUF_SIZE);
             }
         } catch (IOException ioe) {
             throw new MailboxException("Failure while save MailboxMessage " + message + " in Mailbox " + mailbox, ioe);
diff --git a/protocols/imap/src/main/java/org/apache/james/imap/decode/ImapRequestLineReader.java b/protocols/imap/src/main/java/org/apache/james/imap/decode/ImapRequestLineReader.java
index 9c86626..ab65ce3 100644
--- a/protocols/imap/src/main/java/org/apache/james/imap/decode/ImapRequestLineReader.java
+++ b/protocols/imap/src/main/java/org/apache/james/imap/decode/ImapRequestLineReader.java
@@ -34,6 +34,7 @@ import java.util.List;
 
 import javax.mail.Flags;
 
+import org.apache.commons.io.IOUtils;
 import org.apache.james.imap.api.ImapConstants;
 import org.apache.james.imap.api.Tag;
 import org.apache.james.imap.api.display.HumanReadableText;
@@ -370,16 +371,10 @@ public abstract class ImapRequestLineReader {
         } else {
             try (FastByteArrayOutputStream out = new FastByteArrayOutputStream();
                  InputStream in = consumeLiteral(false)) {
-                byte[] buf = new byte[0xFFFF];
-
-                for (int len; (len = in.read(buf)) != -1; ) {
-                    out.write(buf, 0, len);
-                }
-
-                final byte[] bytes = out.toByteArray();
-                final ByteBuffer buffer = ByteBuffer.wrap(bytes);
+                IOUtils.copy(in, out, 0xFFFF);
+                byte[] bytes = out.toByteArray();
+                ByteBuffer buffer = ByteBuffer.wrap(bytes);
                 return decode(charset, buffer);
-
             } catch (IOException e) {
                 throw new DecodingException(HumanReadableText.BAD_IO_ENCODING, "Bad character encoding", e);
             }
diff --git a/protocols/imap/src/main/java/org/apache/james/imap/decode/main/OutputStreamImapResponseWriter.java b/protocols/imap/src/main/java/org/apache/james/imap/decode/main/OutputStreamImapResponseWriter.java
index 27539bd..271698f 100644
--- a/protocols/imap/src/main/java/org/apache/james/imap/decode/main/OutputStreamImapResponseWriter.java
+++ b/protocols/imap/src/main/java/org/apache/james/imap/decode/main/OutputStreamImapResponseWriter.java
@@ -23,6 +23,7 @@ import java.io.IOException;
 import java.io.InputStream;
 import java.io.OutputStream;
 
+import org.apache.commons.io.IOUtils;
 import org.apache.james.imap.encode.ImapResponseWriter;
 import org.apache.james.imap.message.response.Literal;
 
@@ -32,28 +33,18 @@ import org.apache.james.imap.message.response.Literal;
  */
 public class OutputStreamImapResponseWriter implements ImapResponseWriter {
 
+    public static final int BUFFER_SIZE = 1024;
     private final OutputStream output;
 
     public OutputStreamImapResponseWriter(OutputStream output) {
         this.output = output;
     }
 
-    public void flush() throws IOException {
-        output.flush();
-    }
-
-
-
     @Override
     public void write(Literal literal) throws IOException {
         try (InputStream in = literal.getInputStream()) {
-
-            byte[] buffer = new byte[1024];
-            for (int len; (len = in.read(buffer)) != -1; ) {
-                output.write(buffer, 0, len);
-            }
+            IOUtils.copy(in, output, BUFFER_SIZE);
         }
-
     }
 
     @Override


---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org