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 bt...@apache.org on 2018/08/03 08:52:20 UTC
[07/20] james-project git commit: JAMES-2517 Use try-with-resource in
more places
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-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org