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 ma...@apache.org on 2018/07/20 08:05:13 UTC

[12/19] james-project git commit: JAMES-2472 Upgrade commons-io

http://git-wip-us.apache.org/repos/asf/james-project/blob/8b94fa51/server/data/data-hbase/src/main/java/org/apache/james/user/hbase/HBaseUsersRepository.java
----------------------------------------------------------------------
diff --git a/server/data/data-hbase/src/main/java/org/apache/james/user/hbase/HBaseUsersRepository.java b/server/data/data-hbase/src/main/java/org/apache/james/user/hbase/HBaseUsersRepository.java
index c69b2cc..b3001c5 100644
--- a/server/data/data-hbase/src/main/java/org/apache/james/user/hbase/HBaseUsersRepository.java
+++ b/server/data/data-hbase/src/main/java/org/apache/james/user/hbase/HBaseUsersRepository.java
@@ -26,7 +26,6 @@ import java.util.Locale;
 
 import org.apache.commons.configuration.ConfigurationException;
 import org.apache.commons.configuration.HierarchicalConfiguration;
-import org.apache.commons.io.IOUtils;
 import org.apache.hadoop.hbase.KeyValue;
 import org.apache.hadoop.hbase.client.Delete;
 import org.apache.hadoop.hbase.client.Get;
@@ -92,17 +91,13 @@ public class HBaseUsersRepository extends AbstractUsersRepository {
 
     @Override
     public void removeUser(String name) throws UsersRepositoryException {
-        HTableInterface table = null;
-        try {
-            table = TablePool.getInstance().getUsersRepositoryTable();
+        try (HTableInterface table = TablePool.getInstance().getUsersRepositoryTable()) {
             Delete delete = new Delete(Bytes.toBytes(name));
             table.delete(delete);
             table.flushCommits();
         } catch (IOException e) {
             log.error("Error while deleting user from HBase", e);
             throw new UsersRepositoryException("Error while deleting user from HBase", e);
-        } finally {
-            IOUtils.closeQuietly(table);
         }
     }
 
@@ -125,49 +120,39 @@ public class HBaseUsersRepository extends AbstractUsersRepository {
 
     @Override
     public int countUsers() throws UsersRepositoryException {
-        HTableInterface table = null;
-        ResultScanner resultScanner = null;
-        try {
-            table = TablePool.getInstance().getUsersRepositoryTable();
+        try (HTableInterface table = TablePool.getInstance().getUsersRepositoryTable()) {
             Scan scan = new Scan();
             scan.addFamily(HUsersRepository.COLUMN_FAMILY_NAME);
             scan.setCaching(table.getConfiguration().getInt("hbase.client.scanner.caching", 1) * 2);
-            resultScanner = table.getScanner(scan);
-            int resultCount = 0;
-            while (resultScanner.next() != null) {
-                resultCount++;
+            try (ResultScanner resultScanner = table.getScanner(scan)) {
+                int resultCount = 0;
+                while (resultScanner.next() != null) {
+                    resultCount++;
+                }
+                return resultCount;
             }
-            return resultCount;
         } catch (IOException e) {
             log.error("Error while counting users from HBase", e);
             throw new UsersRepositoryException("Error while counting users from HBase", e);
-        } finally {
-            IOUtils.closeQuietly(resultScanner);
-            IOUtils.closeQuietly(table);
         }
     }
 
     @Override
     public Iterator<String> list() throws UsersRepositoryException {
         List<String> list = new ArrayList<>();
-        HTableInterface table = null;
-        ResultScanner resultScanner = null;
-        try {
-            table = TablePool.getInstance().getUsersRepositoryTable();
+        try (HTableInterface table = TablePool.getInstance().getUsersRepositoryTable()) {
             Scan scan = new Scan();
             scan.addFamily(HUsersRepository.COLUMN_FAMILY_NAME);
             scan.setCaching(table.getConfiguration().getInt("hbase.client.scanner.caching", 1) * 2);
-            resultScanner = table.getScanner(scan);
-            Result result;
-            while ((result = resultScanner.next()) != null) {
-                list.add(Bytes.toString(result.getRow()));
+            try (ResultScanner resultScanner = table.getScanner(scan)) {
+                Result result;
+                while ((result = resultScanner.next()) != null) {
+                    list.add(Bytes.toString(result.getRow()));
+                }
             }
         } catch (IOException e) {
             log.error("Error while scanning users from HBase", e);
             throw new UsersRepositoryException("Error while scanning users from HBase", e);
-        } finally {
-            IOUtils.closeQuietly(resultScanner);
-            IOUtils.closeQuietly(table);
         }
         return list.iterator();
     }
@@ -187,9 +172,7 @@ public class HBaseUsersRepository extends AbstractUsersRepository {
      * @throws UsersRepositoryException
      */
     private KeyValue getKeyValue(String username) throws UsersRepositoryException {
-        HTableInterface table = null;
-        try {
-            table = TablePool.getInstance().getUsersRepositoryTable();
+        try (HTableInterface table = TablePool.getInstance().getUsersRepositoryTable()) {
             Get get = new Get(Bytes.toBytes(username));
             Result result = table.get(get);
             KeyValue keyValue = result.getColumnLatest(HUsersRepository.COLUMN_FAMILY_NAME, HUsersRepository.COLUMN.PWD);
@@ -197,8 +180,6 @@ public class HBaseUsersRepository extends AbstractUsersRepository {
         } catch (IOException e) {
             log.error("Error while counting users from HBase", e);
             throw new UsersRepositoryException("Error while counting users from HBase", e);
-        } finally {
-            IOUtils.closeQuietly(table);
         }
     }
 
@@ -216,9 +197,7 @@ public class HBaseUsersRepository extends AbstractUsersRepository {
                 throw new UsersRepositoryException(username + " already exists.");
             }
         }
-        HTableInterface table = null;
-        try {
-            table = TablePool.getInstance().getUsersRepositoryTable();
+        try (HTableInterface table = TablePool.getInstance().getUsersRepositoryTable()) {
             Put put = new Put(Bytes.toBytes(username));
             put.add(HUsersRepository.COLUMN_FAMILY_NAME, HUsersRepository.COLUMN.PWD, 
                     Bytes.toBytes(user.getHashedPassword()));
@@ -227,8 +206,6 @@ public class HBaseUsersRepository extends AbstractUsersRepository {
         } catch (IOException e) {
             log.error("Error while adding user in HBase", e);
             throw new UsersRepositoryException("Error while adding user in HBase", e);
-        } finally {
-            IOUtils.closeQuietly(table);
         }
     }
 }

http://git-wip-us.apache.org/repos/asf/james-project/blob/8b94fa51/server/data/data-jcr/src/main/java/org/apache/james/mailrepository/jcr/JCRMailRepository.java
----------------------------------------------------------------------
diff --git a/server/data/data-jcr/src/main/java/org/apache/james/mailrepository/jcr/JCRMailRepository.java b/server/data/data-jcr/src/main/java/org/apache/james/mailrepository/jcr/JCRMailRepository.java
index 0f57114..c2f8218 100644
--- a/server/data/data-jcr/src/main/java/org/apache/james/mailrepository/jcr/JCRMailRepository.java
+++ b/server/data/data-jcr/src/main/java/org/apache/james/mailrepository/jcr/JCRMailRepository.java
@@ -54,7 +54,6 @@ import javax.mail.internet.MimeMessage;
 
 import org.apache.commons.configuration.ConfigurationException;
 import org.apache.commons.configuration.HierarchicalConfiguration;
-import org.apache.commons.io.IOUtils;
 import org.apache.jackrabbit.commons.cnd.CndImporter;
 import org.apache.jackrabbit.util.ISO9075;
 import org.apache.jackrabbit.util.Text;
@@ -520,14 +519,12 @@ public class JCRMailRepository extends AbstractMailRepository implements MailRep
         }
 
         PipedInputStream input = new PipedInputStream();
-        final PipedOutputStream output = new PipedOutputStream(input);
+        PipedOutputStream output = new PipedOutputStream(input);
         new Thread(() -> {
-            try {
-                message.writeTo(output);
+            try (PipedOutputStream stream = output) {
+                message.writeTo(stream);
             } catch (Exception e) {
                 LOGGER.info("Exception ignored", e);
-            } finally {
-                IOUtils.closeQuietly(output);
             }
         }).start();
         node.setProperty("jcr:data", input);

http://git-wip-us.apache.org/repos/asf/james-project/blob/8b94fa51/server/protocols/jmap/src/test/java/org/apache/james/jmap/crypto/JamesSignatureHandlerTest.java
----------------------------------------------------------------------
diff --git a/server/protocols/jmap/src/test/java/org/apache/james/jmap/crypto/JamesSignatureHandlerTest.java b/server/protocols/jmap/src/test/java/org/apache/james/jmap/crypto/JamesSignatureHandlerTest.java
index 9c2723e..8dc44de 100644
--- a/server/protocols/jmap/src/test/java/org/apache/james/jmap/crypto/JamesSignatureHandlerTest.java
+++ b/server/protocols/jmap/src/test/java/org/apache/james/jmap/crypto/JamesSignatureHandlerTest.java
@@ -21,9 +21,7 @@ package org.apache.james.jmap.crypto;
 
 import static org.assertj.core.api.Assertions.assertThat;
 
-import java.nio.charset.StandardCharsets;
 import java.security.KeyStoreException;
-import java.util.Base64;
 
 import org.apache.james.jmap.JMAPConfiguration;
 import org.junit.Before;

http://git-wip-us.apache.org/repos/asf/james-project/blob/8b94fa51/server/protocols/protocols-imap4/src/main/java/org/apache/james/imapserver/netty/ImapRequestFrameDecoder.java
----------------------------------------------------------------------
diff --git a/server/protocols/protocols-imap4/src/main/java/org/apache/james/imapserver/netty/ImapRequestFrameDecoder.java b/server/protocols/protocols-imap4/src/main/java/org/apache/james/imapserver/netty/ImapRequestFrameDecoder.java
index ec6c2d8..7a631f3 100644
--- a/server/protocols/protocols-imap4/src/main/java/org/apache/james/imapserver/netty/ImapRequestFrameDecoder.java
+++ b/server/protocols/protocols-imap4/src/main/java/org/apache/james/imapserver/netty/ImapRequestFrameDecoder.java
@@ -28,7 +28,6 @@ import java.util.HashMap;
 import java.util.Map;
 
 import org.apache.commons.io.FileUtils;
-import org.apache.commons.io.IOUtils;
 import org.apache.james.imap.api.ImapMessage;
 import org.apache.james.imap.api.ImapSessionState;
 import org.apache.james.imap.api.process.ImapSession;
@@ -117,12 +116,20 @@ public class ImapRequestFrameDecoder extends FrameDecoder implements NettyConsta
                         buffer.readBytes(out, amount);
                         written += amount;
                     } catch (Exception e) {
-                        IOUtils.closeQuietly(out);
+                        try {
+                            out.close();
+                        } catch (IOException ignored) {
+                            //ignore exception during close
+                        }
                         throw e;
                     }
                     // Check if all needed data was streamed to the file.
                     if (written == size) {
-                        IOUtils.closeQuietly(out);
+                        try {
+                            out.close();
+                        } catch (IOException ignored) {
+                            //ignore exception during close
+                        }
 
                         reader = new NettyStreamImapRequestLineReader(channel, new FileInputStream(f) {
                             /**

http://git-wip-us.apache.org/repos/asf/james-project/blob/8b94fa51/server/queue/queue-file/src/main/java/org/apache/james/queue/file/FileMailQueue.java
----------------------------------------------------------------------
diff --git a/server/queue/queue-file/src/main/java/org/apache/james/queue/file/FileMailQueue.java b/server/queue/queue-file/src/main/java/org/apache/james/queue/file/FileMailQueue.java
index 4c1363e..cc82148 100644
--- a/server/queue/queue-file/src/main/java/org/apache/james/queue/file/FileMailQueue.java
+++ b/server/queue/queue-file/src/main/java/org/apache/james/queue/file/FileMailQueue.java
@@ -47,7 +47,6 @@ import javax.mail.MessagingException;
 import javax.mail.util.SharedFileInputStream;
 
 import org.apache.commons.io.FileUtils;
-import org.apache.commons.io.IOUtils;
 import org.apache.james.lifecycle.api.Disposable;
 import org.apache.james.lifecycle.api.LifecycleUtil;
 import org.apache.james.queue.api.MailQueueItemDecoratorFactory;
@@ -173,9 +172,6 @@ public class FileMailQueue implements ManageableMailQueue {
     @Override
     public void enQueue(Mail mail, long delay, TimeUnit unit) throws MailQueueException {
         final String key = mail.getName() + "-" + COUNTER.incrementAndGet();
-        FileOutputStream out = null;
-        FileOutputStream foout = null;
-        ObjectOutputStream oout = null;
         try {
             int i = RANDOM.nextInt(SPLITCOUNT) + 1;
 
@@ -185,19 +181,20 @@ public class FileMailQueue implements ManageableMailQueue {
             if (delay > 0) {
                 mail.setAttribute(NEXT_DELIVERY, System.currentTimeMillis() + unit.toMillis(delay));
             }
-            foout = new FileOutputStream(item.getObjectFile());
-            oout = new ObjectOutputStream(foout);
-            oout.writeObject(mail);
-            oout.flush();
-            if (sync) {
-                foout.getFD().sync();
+            try (FileOutputStream foout = new FileOutputStream(item.getObjectFile());
+                ObjectOutputStream oout = new ObjectOutputStream(foout)) {
+                oout.writeObject(mail);
+                oout.flush();
+                if (sync) {
+                    foout.getFD().sync();
+                }
             }
-            out = new FileOutputStream(item.getMessageFile());
-
-            mail.getMessage().writeTo(out);
-            out.flush();
-            if (sync) {
-                out.getFD().sync();
+            try (FileOutputStream out = new FileOutputStream(item.getMessageFile())) {
+                mail.getMessage().writeTo(out);
+                out.flush();
+                if (sync) {
+                    out.getFD().sync();
+                }
             }
 
             keyMappings.put(key, item);
@@ -221,10 +218,6 @@ public class FileMailQueue implements ManageableMailQueue {
             //TODO: Think about exception handling in detail
         } catch (IOException | MessagingException | InterruptedException e) {
             throw new MailQueueException("Unable to enqueue mail", e);
-        } finally {
-            IOUtils.closeQuietly(out);
-            IOUtils.closeQuietly(oout);
-            IOUtils.closeQuietly(foout);
         }
 
     }
@@ -247,44 +240,41 @@ public class FileMailQueue implements ManageableMailQueue {
             }
             final String key = k;
             final FileItem fitem = item;
-            ObjectInputStream oin = null;
             try {
                 final File objectFile = new File(fitem.getObjectFile());
                 final File msgFile = new File(fitem.getMessageFile());
-                oin = new ObjectInputStream(new FileInputStream(objectFile));
-                final Mail mail = (Mail) oin.readObject();
-                mail.setMessage(new MimeMessageCopyOnWriteProxy(new FileMimeMessageSource(msgFile)));
-                MailQueueItem fileMailQueueItem = new MailQueueItem() {
-
-                    @Override
-                    public Mail getMail() {
-                        return mail;
-                    }
-
-                    @Override
-                    public void done(boolean success) throws MailQueueException {
-                        if (!success) {
-                            try {
-                                inmemoryQueue.put(key);
-                            } catch (InterruptedException e) {
-                                Thread.currentThread().interrupt();
-                                throw new MailQueueException("Unable to rollback", e);
-                            }
-                        } else {
-                            fitem.delete();
-                            keyMappings.remove(key);
+                try (ObjectInputStream oin = new ObjectInputStream(new FileInputStream(objectFile))) {
+                    final Mail mail = (Mail) oin.readObject();
+                    mail.setMessage(new MimeMessageCopyOnWriteProxy(new FileMimeMessageSource(msgFile)));
+                    MailQueueItem fileMailQueueItem = new MailQueueItem() {
+
+                        @Override
+                        public Mail getMail() {
+                            return mail;
                         }
 
-                        LifecycleUtil.dispose(mail);
-                    }
-                };
-                return mailQueueItemDecoratorFactory.decorate(fileMailQueueItem);
+                        @Override
+                        public void done(boolean success) throws MailQueueException {
+                            if (!success) {
+                                try {
+                                    inmemoryQueue.put(key);
+                                } catch (InterruptedException e) {
+                                    Thread.currentThread().interrupt();
+                                    throw new MailQueueException("Unable to rollback", e);
+                                }
+                            } else {
+                                fitem.delete();
+                                keyMappings.remove(key);
+                            }
 
+                            LifecycleUtil.dispose(mail);
+                        }
+                    };
+                    return mailQueueItemDecoratorFactory.decorate(fileMailQueueItem);
+                }
                 // TODO: Think about exception handling in detail
             } catch (IOException | ClassNotFoundException | MessagingException e) {
                 throw new MailQueueException("Unable to dequeue", e);
-            } finally {
-                IOUtils.closeQuietly(oin);
             }
 
         } catch (InterruptedException e) {
@@ -325,7 +315,11 @@ public class FileMailQueue implements ManageableMailQueue {
 
         @Override
         public void dispose() {
-            IOUtils.closeQuietly(in);
+            try {
+                in.close();
+            } catch (IOException e) {
+                //ignore exception during close
+            }
             file = null;
         }
 

http://git-wip-us.apache.org/repos/asf/james-project/blob/8b94fa51/server/queue/queue-jms/src/main/java/org/apache/james/queue/jms/MimeMessageObjectMessageSource.java
----------------------------------------------------------------------
diff --git a/server/queue/queue-jms/src/main/java/org/apache/james/queue/jms/MimeMessageObjectMessageSource.java b/server/queue/queue-jms/src/main/java/org/apache/james/queue/jms/MimeMessageObjectMessageSource.java
index fa53de9..dd7c4dc 100644
--- a/server/queue/queue-jms/src/main/java/org/apache/james/queue/jms/MimeMessageObjectMessageSource.java
+++ b/server/queue/queue-jms/src/main/java/org/apache/james/queue/jms/MimeMessageObjectMessageSource.java
@@ -25,7 +25,6 @@ import javax.jms.JMSException;
 import javax.jms.ObjectMessage;
 import javax.mail.util.SharedByteArrayInputStream;
 
-import org.apache.commons.io.IOUtils;
 import org.apache.james.lifecycle.api.Disposable;
 import org.apache.james.lifecycle.api.LifecycleUtil;
 import org.apache.james.server.core.MimeMessageSource;
@@ -70,7 +69,11 @@ public class MimeMessageObjectMessageSource extends MimeMessageSource implements
 
     @Override
     public void dispose() {
-        IOUtils.closeQuietly(in);
+        try {
+            in.close();
+        } catch (IOException e) {
+            //ignore exception during close
+        }
         LifecycleUtil.dispose(in);
 
         try {

http://git-wip-us.apache.org/repos/asf/james-project/blob/8b94fa51/server/testing/src/main/java/org/apache/james/utils/IMAPMessageReader.java
----------------------------------------------------------------------
diff --git a/server/testing/src/main/java/org/apache/james/utils/IMAPMessageReader.java b/server/testing/src/main/java/org/apache/james/utils/IMAPMessageReader.java
index 98b79c3..b03492c 100644
--- a/server/testing/src/main/java/org/apache/james/utils/IMAPMessageReader.java
+++ b/server/testing/src/main/java/org/apache/james/utils/IMAPMessageReader.java
@@ -23,7 +23,6 @@ import java.io.Closeable;
 import java.io.IOException;
 import java.util.List;
 
-import org.apache.commons.io.IOUtils;
 import org.apache.commons.net.imap.IMAPClient;
 import org.junit.rules.ExternalResource;
 
@@ -183,7 +182,11 @@ public class IMAPMessageReader extends ExternalResource implements Closeable {
 
     @Override
     protected void after() {
-        IOUtils.closeQuietly(this);
+        try {
+            this.close();
+        } catch (IOException e) {
+            //ignore exception during close
+        }
     }
 
     public void copyFirstMessage(String destMailbox) throws IOException {

http://git-wip-us.apache.org/repos/asf/james-project/blob/8b94fa51/server/testing/src/main/java/org/apache/james/utils/MockSpamd.java
----------------------------------------------------------------------
diff --git a/server/testing/src/main/java/org/apache/james/utils/MockSpamd.java b/server/testing/src/main/java/org/apache/james/utils/MockSpamd.java
index c17be4d..45121c7 100644
--- a/server/testing/src/main/java/org/apache/james/utils/MockSpamd.java
+++ b/server/testing/src/main/java/org/apache/james/utils/MockSpamd.java
@@ -66,15 +66,14 @@ public class MockSpamd implements Runnable {
 
     @Override
     public void run() {
-        try (Socket spamd = socket.accept();
+        try (ServerSocket serverSocket = socket;
+            Socket spamd = serverSocket.accept();
              BufferedReader in = new BufferedReader(new InputStreamReader(spamd.getInputStream()));
              OutputStream out = spamd.getOutputStream()) {
 
             handleRequest(in, out);
         } catch (IOException e) {
             LOGGER.error("Exception while handling answer", e);
-        } finally {
-            IOUtils.closeQuietly(socket);
         }
     }
 


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