http://git-wip-us.apache.org/repos/asf/james-project/blob/3c275fe6/mailbox/maildir/src/main/java/org/apache/james/mailbox/maildir/user/MaildirSubscriptionMapper.java ---------------------------------------------------------------------- diff --git a/mailbox/maildir/src/main/java/org/apache/james/mailbox/maildir/user/MaildirSubscriptionMapper.java b/mailbox/maildir/src/main/java/org/apache/james/mailbox/maildir/user/MaildirSubscriptionMapper.java index b235c89..aaf15bf 100644 --- a/mailbox/maildir/src/main/java/org/apache/james/mailbox/maildir/user/MaildirSubscriptionMapper.java +++ b/mailbox/maildir/src/main/java/org/apache/james/mailbox/maildir/user/MaildirSubscriptionMapper.java @@ -137,14 +137,13 @@ public class MaildirSubscriptionMapper extends NonTransactionalMapper implements if (!subscriptionFile.exists()) { return ImmutableSet.of(); } - FileReader fileReader = new FileReader(subscriptionFile); - BufferedReader reader = new BufferedReader(fileReader); - Set<String> subscriptions = reader.lines() - .filter(subscription -> !subscription.equals("")) - .collect(Guavate.toImmutableSet()); - reader.close(); - fileReader.close(); - return subscriptions; + try (FileReader fileReader = new FileReader(subscriptionFile)) { + try (BufferedReader reader = new BufferedReader(fileReader)) { + return reader.lines() + .filter(subscription -> !subscription.equals("")) + .collect(Guavate.toImmutableSet()); + } + } } /** @@ -161,21 +160,19 @@ public class MaildirSubscriptionMapper extends NonTransactionalMapper implements throw new IOException("Could not create folder " + mailboxFolder); } } - + File subscriptionFile = new File(mailboxFolder, FILE_SUBSCRIPTION); if (!subscriptionFile.exists()) { if (!subscriptionFile.createNewFile()) { throw new IOException("Could not create file " + subscriptionFile); } } - - FileWriter fileWriter = new FileWriter(subscriptionFile); - PrintWriter writer = new PrintWriter(fileWriter); - for (String subscription : sortedSubscriptions) { - writer.println(subscription); + + try (FileWriter fileWriter = new FileWriter(subscriptionFile)) { + try (PrintWriter writer = new PrintWriter(fileWriter)) { + sortedSubscriptions.forEach(writer::println); + } } - writer.close(); - fileWriter.close(); } }
http://git-wip-us.apache.org/repos/asf/james-project/blob/3c275fe6/mailet/base/src/main/java/org/apache/mailet/base/AutomaticallySentMailDetectorImpl.java ---------------------------------------------------------------------- diff --git a/mailet/base/src/main/java/org/apache/mailet/base/AutomaticallySentMailDetectorImpl.java b/mailet/base/src/main/java/org/apache/mailet/base/AutomaticallySentMailDetectorImpl.java index eb19122..43645a3 100644 --- a/mailet/base/src/main/java/org/apache/mailet/base/AutomaticallySentMailDetectorImpl.java +++ b/mailet/base/src/main/java/org/apache/mailet/base/AutomaticallySentMailDetectorImpl.java @@ -110,12 +110,13 @@ public class AutomaticallySentMailDetectorImpl implements AutomaticallySentMailD @Override public void body(BodyDescriptor bodyDescriptor, InputStream inputStream) throws MimeException, IOException { if (bodyDescriptor.getMimeType().equalsIgnoreCase("message/disposition-notification")) { - BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream)); - String line; - while ((line = reader.readLine()) != null) { - if (line.startsWith("Disposition:")) { - if (line.contains("MDN-sent-automatically") || line.contains("automatic-action")) { - resultCollector.setResult(true); + try (BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream))) { + String line; + while ((line = reader.readLine()) != null) { + if (line.startsWith("Disposition:")) { + if (line.contains("MDN-sent-automatically") || line.contains("automatic-action")) { + resultCollector.setResult(true); + } } } } http://git-wip-us.apache.org/repos/asf/james-project/blob/3c275fe6/mailet/standard/src/main/java/org/apache/james/transport/mailets/LogMessage.java ---------------------------------------------------------------------- diff --git a/mailet/standard/src/main/java/org/apache/james/transport/mailets/LogMessage.java b/mailet/standard/src/main/java/org/apache/james/transport/mailets/LogMessage.java index 0707359..72a6839 100644 --- a/mailet/standard/src/main/java/org/apache/james/transport/mailets/LogMessage.java +++ b/mailet/standard/src/main/java/org/apache/james/transport/mailets/LogMessage.java @@ -117,8 +117,9 @@ public class LogMessage extends GenericMailet { private void logBody(MimeMessage message) throws MessagingException, IOException { if (body && logger.isInfoEnabled()) { - InputStream inputStream = ByteStreams.limit(message.getDataHandler().getInputStream(), lengthToLog(message)); - logger.info(IOUtils.toString(inputStream, StandardCharsets.UTF_8)); + try (InputStream inputStream = ByteStreams.limit(message.getDataHandler().getInputStream(), lengthToLog(message))) { + logger.info(IOUtils.toString(inputStream, StandardCharsets.UTF_8)); + } } } http://git-wip-us.apache.org/repos/asf/james-project/blob/3c275fe6/mpt/antlib/src/main/java/org/apache/james/mpt/ant/MailProtocolTestTask.java ---------------------------------------------------------------------- diff --git a/mpt/antlib/src/main/java/org/apache/james/mpt/ant/MailProtocolTestTask.java b/mpt/antlib/src/main/java/org/apache/james/mpt/ant/MailProtocolTestTask.java index 6d3a08b..3fa1546 100644 --- a/mpt/antlib/src/main/java/org/apache/james/mpt/ant/MailProtocolTestTask.java +++ b/mpt/antlib/src/main/java/org/apache/james/mpt/ant/MailProtocolTestTask.java @@ -20,6 +20,7 @@ package org.apache.james.mpt.ant; import java.io.File; +import java.io.FileNotFoundException; import java.io.FileReader; import java.io.IOException; import java.io.InputStream; @@ -387,19 +388,22 @@ public class MailProtocolTestTask extends Task implements Monitor { validate(); try { final File scriptFile = getScript(); - final Reader reader; - if (scriptFile == null) { - reader = new StringReader(scriptText); - } else { - reader = new FileReader(scriptFile); - } final ScriptedUserAdder adder = new ScriptedUserAdder(getHost(), port, MailProtocolTestTask.this); - adder.addUser(getUser(), getPasswd(), reader); + try (Reader reader = newReader(scriptFile)) { + adder.addUser(getUser(), getPasswd(), reader); + } } catch (Exception e) { log(e.getMessage(), Project.MSG_ERR); throw new BuildException("User addition failed: \n" + e.getMessage(), e); } - } + } + + private Reader newReader(File scriptFile) throws FileNotFoundException { + if (scriptFile == null) { + return new StringReader(scriptText); + } + return new FileReader(scriptFile); + } } @Override http://git-wip-us.apache.org/repos/asf/james-project/blob/3c275fe6/server/container/core/src/main/java/org/apache/james/server/core/MailImpl.java ---------------------------------------------------------------------- diff --git a/server/container/core/src/main/java/org/apache/james/server/core/MailImpl.java b/server/container/core/src/main/java/org/apache/james/server/core/MailImpl.java index 816c9e6..af13b67 100644 --- a/server/container/core/src/main/java/org/apache/james/server/core/MailImpl.java +++ b/server/container/core/src/main/java/org/apache/james/server/core/MailImpl.java @@ -754,13 +754,14 @@ public class MailImpl implements Disposable, Mail { */ private static Object cloneSerializableObject(Object o) throws IOException, ClassNotFoundException { ByteArrayOutputStream b = new ByteArrayOutputStream(); - ObjectOutputStream out = new ObjectOutputStream(b); - out.writeObject(o); - out.flush(); - out.close(); + try (ObjectOutputStream out = new ObjectOutputStream(b)) { + out.writeObject(o); + out.flush(); + } ByteArrayInputStream bi = new ByteArrayInputStream(b.toByteArray()); - ObjectInputStream in = new ObjectInputStream(bi); - return in.readObject(); + try (ObjectInputStream in = new ObjectInputStream(bi)) { + return in.readObject(); + } } /** http://git-wip-us.apache.org/repos/asf/james-project/blob/3c275fe6/server/data/data-hbase/src/main/java/org/apache/james/system/hbase/TablePool.java ---------------------------------------------------------------------- diff --git a/server/data/data-hbase/src/main/java/org/apache/james/system/hbase/TablePool.java b/server/data/data-hbase/src/main/java/org/apache/james/system/hbase/TablePool.java index c83a90d..b1ca529 100644 --- a/server/data/data-hbase/src/main/java/org/apache/james/system/hbase/TablePool.java +++ b/server/data/data-hbase/src/main/java/org/apache/james/system/hbase/TablePool.java @@ -116,8 +116,7 @@ public class TablePool { * @throws IOException */ private static void ensureTable(byte[] tableName, byte[] columnFamilyName) throws IOException { - HBaseAdmin hbaseAdmin = new HBaseAdmin(configuration); - try { + try (HBaseAdmin hbaseAdmin = new HBaseAdmin(configuration)) { if (!hbaseAdmin.tableExists(tableName)) { HTableDescriptor desc = new HTableDescriptor(tableName); HColumnDescriptor hColumnDescriptor = new HColumnDescriptor(columnFamilyName); @@ -125,8 +124,6 @@ public class TablePool { desc.addFamily(hColumnDescriptor); hbaseAdmin.createTable(desc); } - } finally { - hbaseAdmin.close(); } } } http://git-wip-us.apache.org/repos/asf/james-project/blob/3c275fe6/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/JDBCRecipientRewriteTable.java ---------------------------------------------------------------------- diff --git a/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/JDBCRecipientRewriteTable.java b/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/JDBCRecipientRewriteTable.java index 3cdf57f..5e62058 100644 --- a/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/JDBCRecipientRewriteTable.java +++ b/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/JDBCRecipientRewriteTable.java @@ -144,10 +144,8 @@ public class JDBCRecipientRewriteTable extends AbstractRecipientRewriteTable { int pos = datasourceName.indexOf("/"); String tableName = datasourceName.substring(pos + 1); datasourceName = datasourceName.substring(0, pos); - Connection conn = null; - try { - conn = datasource.getConnection(); + try (Connection conn = datasource.getConnection()) { // Check if the required table exists. If not, complain. DatabaseMetaData dbMetaData = conn.getMetaData(); @@ -165,8 +163,6 @@ public class JDBCRecipientRewriteTable extends AbstractRecipientRewriteTable { throw me; } catch (Exception e) { throw new MessagingException("Error initializing JDBCRecipientRewriteTable", e); - } finally { - theJDBCUtil.closeJDBCConnection(conn); } } @@ -179,35 +175,25 @@ public class JDBCRecipientRewriteTable extends AbstractRecipientRewriteTable { */ @Override protected void mapRecipients(Map<MailAddress, String> recipientsMap) throws MessagingException { - Connection conn = null; - PreparedStatement mappingStmt = null; Collection<MailAddress> recipients = recipientsMap.keySet(); - try { - conn = datasource.getConnection(); - mappingStmt = conn.prepareStatement(query); - - for (MailAddress recipient : recipients) { - ResultSet mappingRS = null; - try { + try (Connection conn = datasource.getConnection()) { + try (PreparedStatement mappingStmt = conn.prepareStatement(query)) { + for (MailAddress recipient : recipients) { mappingStmt.setString(1, recipient.getLocalPart()); mappingStmt.setString(2, recipient.getDomain().asString()); mappingStmt.setString(3, recipient.getDomain().asString()); - mappingRS = mappingStmt.executeQuery(); - if (mappingRS.next()) { - String targetString = mappingRS.getString(1); - recipientsMap.put(recipient, targetString); + try (ResultSet mappingRS = mappingStmt.executeQuery()) { + if (mappingRS.next()) { + String targetString = mappingRS.getString(1); + recipientsMap.put(recipient, targetString); + } } - } finally { - theJDBCUtil.closeJDBCResultSet(mappingRS); } } } catch (SQLException sqle) { throw new MessagingException("Error accessing database", sqle); - } finally { - theJDBCUtil.closeJDBCStatement(mappingStmt); - theJDBCUtil.closeJDBCConnection(conn); } } http://git-wip-us.apache.org/repos/asf/james-project/blob/3c275fe6/server/queue/queue-jms/src/main/java/org/apache/james/queue/jms/JMSMailQueue.java ---------------------------------------------------------------------- diff --git a/server/queue/queue-jms/src/main/java/org/apache/james/queue/jms/JMSMailQueue.java b/server/queue/queue-jms/src/main/java/org/apache/james/queue/jms/JMSMailQueue.java index 0517d59..f6f9838 100644 --- a/server/queue/queue-jms/src/main/java/org/apache/james/queue/jms/JMSMailQueue.java +++ b/server/queue/queue-jms/src/main/java/org/apache/james/queue/jms/JMSMailQueue.java @@ -476,60 +476,48 @@ public class JMSMailQueue implements ManageableMailQueue, JMSSupport, MailPriori @Override public long getSize() throws MailQueueException { - QueueBrowser browser = null; - try { - browser = session.createBrowser(queue); + try (QueueBrowser browser = session.createBrowser(queue)) { Enumeration<?> enumeration = browser.getEnumeration(); return Iterators.size(new EnumerationIterator(enumeration)); } catch (Exception e) { LOGGER.error("Unable to get size of queue {}", queueName, e); throw new MailQueueException("Unable to get size of queue " + queueName, e); - } finally { - closeBrowser(browser); } } @Override public long flush() throws MailQueueException { - Session session = null; - Message message = null; - MessageConsumer consumer = null; - MessageProducer producer = null; boolean first = true; long count = 0; - try { - - session = connection.createSession(true, Session.SESSION_TRANSACTED); + try (Session session = connection.createSession(true, Session.SESSION_TRANSACTED)) { Queue queue = session.createQueue(queueName); - consumer = session.createConsumer(queue); - producer = session.createProducer(queue); - - while (first || message != null) { - if (first) { - // give the consumer 2000 ms to receive messages - message = consumer.receive(2000); - } else { - message = consumer.receiveNoWait(); - } - first = false; + try (MessageConsumer consumer = session.createConsumer(queue)) { + try (MessageProducer producer = session.createProducer(queue)) { + + Message message = null; + while (first || message != null) { + if (first) { + // give the consumer 2000 ms to receive messages + message = consumer.receive(2000); + } else { + message = consumer.receiveNoWait(); + } + first = false; - if (message != null) { - Message m = copy(session, message); - m.setBooleanProperty(FORCE_DELIVERY, true); - producer.send(m, message.getJMSDeliveryMode(), message.getJMSPriority(), message.getJMSExpiration()); - count++; + if (message != null) { + Message m = copy(session, message); + m.setBooleanProperty(FORCE_DELIVERY, true); + producer.send(m, message.getJMSDeliveryMode(), message.getJMSPriority(), message.getJMSExpiration()); + count++; + } + } + session.commit(); + return count; } } - session.commit(); - return count; } catch (Exception e) { LOGGER.error("Unable to flush mail", e); - rollback(session); throw new MailQueueException("Unable to get size of queue " + queueName, e); - } finally { - closeConsumer(consumer); - closeProducer(producer); - closeSession(session); } } @@ -553,37 +541,32 @@ public class JMSMailQueue implements ManageableMailQueue, JMSSupport, MailPriori * @return messages */ public List<Message> removeWithSelector(String selector) throws MailQueueException { - Session session = null; - Message message = null; - MessageConsumer consumer = null; boolean first = true; List<Message> messages = new ArrayList<>(); try { - session = connection.createSession(true, Session.SESSION_TRANSACTED); - Queue queue = session.createQueue(queueName); - consumer = session.createConsumer(queue, selector); - while (first || message != null) { - if (first) { - // give the consumer 2000 ms to receive messages - message = consumer.receive(2000); - } else { - message = consumer.receiveNoWait(); - } - first = false; - if (message != null) { - messages.add(message); + try (Session session = connection.createSession(true, Session.SESSION_TRANSACTED)) { + Queue queue = session.createQueue(queueName); + try (MessageConsumer consumer = session.createConsumer(queue, selector)) { + Message message = null; + while (first || message != null) { + if (first) { + // give the consumer 2000 ms to receive messages + message = consumer.receive(2000); + } else { + message = consumer.receiveNoWait(); + } + first = false; + if (message != null) { + messages.add(message); + } + } } + session.commit(); } - session.commit(); return messages; } catch (Exception e) { - rollback(session); throw new MailQueueException("Unable to remove mails", e); - - } finally { - closeConsumer(consumer); - closeSession(session); } } --------------------------------------------------------------------- To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org For additional commands, e-mail: server-dev-h...@james.apache.org