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: [email protected] For additional commands, e-mail: [email protected]
