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:14 UTC
[13/19] james-project git commit: JAMES-2472 Upgrade commons-io
JAMES-2472 Upgrade commons-io
Project: http://git-wip-us.apache.org/repos/asf/james-project/repo
Commit: http://git-wip-us.apache.org/repos/asf/james-project/commit/8b94fa51
Tree: http://git-wip-us.apache.org/repos/asf/james-project/tree/8b94fa51
Diff: http://git-wip-us.apache.org/repos/asf/james-project/diff/8b94fa51
Branch: refs/heads/master
Commit: 8b94fa51a15740136386f0927f27c3e0b6ac5b0c
Parents: e9a25d0
Author: benwa <bt...@linagora.com>
Authored: Wed Jul 18 10:38:10 2018 +0700
Committer: Matthieu Baechler <ma...@apache.org>
Committed: Fri Jul 20 10:03:53 2018 +0200
----------------------------------------------------------------------
.../james/mailbox/maildir/MaildirFolder.java | 234 +++++++------------
.../maildir/mail/MaildirMessageMapper.java | 19 +-
.../maildir/mail/model/MaildirMessage.java | 10 +-
.../mailbox/store/StoreMessageManager.java | 225 +++++++++---------
.../james/transport/mailets/ClamAVScan.java | 140 +++++------
.../james/transport/mailets/HeadersToHTTP.java | 18 +-
.../transport/mailets/SerialiseToHTTP.java | 11 +-
.../protocol/FileProtocolSessionBuilder.java | 19 +-
.../GenericSimpleScriptedTestProtocol.java | 14 +-
.../james/mpt/host/ManageSieveSession.java | 3 +-
mpt/pom.xml | 1 -
pom.xml | 2 +-
.../core/MimeMessageInputStreamSource.java | 12 +-
.../james/server/core/MimeMessageUtil.java | 6 +-
.../james/server/core/MimeMessageWrapper.java | 59 +++--
.../filesystem/api/AbstractFileSystemTest.java | 15 +-
.../file/SieveFileRepository.java | 12 +-
.../james/domainlist/hbase/HBaseDomainList.java | 36 +--
.../rrt/hbase/HBaseRecipientRewriteTable.java | 58 ++---
.../james/user/hbase/HBaseUsersRepository.java | 55 ++---
.../mailrepository/jcr/JCRMailRepository.java | 9 +-
.../jmap/crypto/JamesSignatureHandlerTest.java | 2 -
.../netty/ImapRequestFrameDecoder.java | 13 +-
.../apache/james/queue/file/FileMailQueue.java | 94 ++++----
.../jms/MimeMessageObjectMessageSource.java | 7 +-
.../apache/james/utils/IMAPMessageReader.java | 7 +-
.../java/org/apache/james/utils/MockSpamd.java | 5 +-
27 files changed, 445 insertions(+), 641 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/james-project/blob/8b94fa51/mailbox/maildir/src/main/java/org/apache/james/mailbox/maildir/MaildirFolder.java
----------------------------------------------------------------------
diff --git a/mailbox/maildir/src/main/java/org/apache/james/mailbox/maildir/MaildirFolder.java b/mailbox/maildir/src/main/java/org/apache/james/mailbox/maildir/MaildirFolder.java
index 06a382f..4982726 100644
--- a/mailbox/maildir/src/main/java/org/apache/james/mailbox/maildir/MaildirFolder.java
+++ b/mailbox/maildir/src/main/java/org/apache/james/mailbox/maildir/MaildirFolder.java
@@ -25,9 +25,7 @@ import java.io.FileOutputStream;
import java.io.FileReader;
import java.io.FilenameFilter;
import java.io.IOException;
-import java.io.InputStream;
import java.io.InputStreamReader;
-import java.io.OutputStream;
import java.io.PrintWriter;
import java.util.ArrayList;
import java.util.HashMap;
@@ -41,7 +39,6 @@ import java.util.SortedMap;
import java.util.TreeMap;
import org.apache.commons.io.FileUtils;
-import org.apache.commons.io.IOUtils;
import org.apache.commons.lang3.ArrayUtils;
import org.apache.james.mailbox.MailboxPathLocker;
import org.apache.james.mailbox.MailboxPathLocker.LockAwareExecution;
@@ -221,14 +218,13 @@ public class MaildirFolder {
locker.executeWithLock(session, path,
(LockAwareExecution<Void>) () -> {
File uidList = uidFile;
- FileReader fileReader = null;
- BufferedReader reader = null;
- try {
- if (!uidList.exists()) {
- createUidFile();
- }
- fileReader = new FileReader(uidList);
- reader = new BufferedReader(fileReader);
+
+ if (!uidList.exists()) {
+ createUidFile();
+ }
+ try (FileReader fileReader = new FileReader(uidList);
+ BufferedReader reader = new BufferedReader(fileReader)) {
+
String line = reader.readLine();
if (line != null) {
readUidListHeader(line);
@@ -236,9 +232,6 @@ public class MaildirFolder {
return null;
} catch (IOException e) {
throw new MailboxException("Unable to read last uid", e);
- } finally {
- IOUtils.closeQuietly(reader);
- IOUtils.closeQuietly(fileReader);
}
}, true);
@@ -279,17 +272,11 @@ public class MaildirFolder {
if (!validityFile.exists()) {
return resetUidValidity();
}
- FileInputStream fis = null;
- InputStreamReader isr = null;
- try {
- fis = new FileInputStream(validityFile);
- isr = new InputStreamReader(fis);
+ try (FileInputStream fis = new FileInputStream(validityFile);
+ InputStreamReader isr = new InputStreamReader(fis)) {
char[] uidValidity = new char[20];
int len = isr.read(uidValidity);
return Long.parseLong(String.valueOf(uidValidity, 0, len).trim());
- } finally {
- IOUtils.closeQuietly(isr);
- IOUtils.closeQuietly(fis);
}
}
@@ -303,11 +290,8 @@ public class MaildirFolder {
if (!validityFile.createNewFile()) {
throw new IOException("Could not create file " + validityFile);
}
- FileOutputStream fos = new FileOutputStream(validityFile);
- try {
+ try (FileOutputStream fos = new FileOutputStream(validityFile)) {
fos.write(String.valueOf(uidValidity).getBytes());
- } finally {
- IOUtils.closeQuietly(fos);
}
}
@@ -334,12 +318,10 @@ public class MaildirFolder {
public MaildirMessageName getMessageNameByUid(final MailboxSession session, final MessageUid uid) throws MailboxException {
return locker.executeWithLock(session, path, () -> {
- FileReader fileReader = null;
- BufferedReader reader = null;
File uidList = uidFile;
- try {
- fileReader = new FileReader(uidList);
- reader = new BufferedReader(fileReader);
+ try (FileReader fileReader = new FileReader(uidList);
+ BufferedReader reader = new BufferedReader(fileReader)) {
+
String uidString = String.valueOf(uid.asLong());
String line = reader.readLine(); // the header
int lineNumber = 1; // already read the first line
@@ -363,9 +345,6 @@ public class MaildirFolder {
return null;
} catch (IOException e) {
throw new MailboxException("Unable to read messagename for uid " + uid, e);
- } finally {
- IOUtils.closeQuietly(reader);
- IOUtils.closeQuietly(fileReader);
}
}, true);
}
@@ -482,30 +461,24 @@ public class MaildirFolder {
for (String file : allFiles) {
lines.add(String.valueOf(getNextUid().asLong()) + " " + file);
}
- PrintWriter pw = new PrintWriter(uidList);
- try {
+
+ try (PrintWriter pw = new PrintWriter(uidList)) {
pw.println(createUidListHeader());
for (String line : lines) {
pw.println(line);
}
- } finally {
- IOUtils.closeQuietly(pw);
}
} else {
- FileReader fileReader = null;
- BufferedReader reader = null;
- try {
- fileReader = new FileReader(uidList);
- reader = new BufferedReader(fileReader);
- String line = reader.readLine();
- // the first line in the file contains the next uid and message count
- while ((line = reader.readLine()) != null) {
- lines.add(line);
+ try (FileReader fileReader = new FileReader(uidList);
+ BufferedReader reader = new BufferedReader(fileReader)) {
+
+ reader.readLine();
+ // the first line in the file contains the next uid and message count
+ String line;
+ while ((line = reader.readLine()) != null) {
+ lines.add(line);
+ }
}
- } finally {
- IOUtils.closeQuietly(reader);
- IOUtils.closeQuietly(fileReader);
- }
}
int counter = 0;
String line;
@@ -551,7 +524,6 @@ public class MaildirFolder {
private Map<MessageUid, MaildirMessageName> createUidFile() throws MailboxException {
final Map<MessageUid, MaildirMessageName> uidMap = new TreeMap<>();
File uidList = uidFile;
- PrintWriter pw = null;
try {
if (!uidList.createNewFile()) {
throw new IOException("Could not create file " + uidList);
@@ -564,16 +536,15 @@ public class MaildirFolder {
for (String file : allFiles) {
uidMap.put(getNextUid(), newMaildirMessageName(MaildirFolder.this, file));
}
- pw = new PrintWriter(uidList);
- pw.println(createUidListHeader());
- for (Entry<MessageUid, MaildirMessageName> entry : uidMap.entrySet()) {
- pw.println(String.valueOf(entry.getKey().asLong()) + " " + entry.getValue().getFullName());
+ try (PrintWriter pw = new PrintWriter(uidList)) {
+ pw.println(createUidListHeader());
+ for (Entry<MessageUid, MaildirMessageName> entry : uidMap.entrySet()) {
+ pw.println(String.valueOf(entry.getKey().asLong()) + " " + entry.getValue().getFullName());
+ }
}
} catch (IOException e) {
throw new MailboxException("Unable to create uid file", e);
- } finally {
- IOUtils.closeQuietly(pw);
- }
+ }
return uidMap;
}
@@ -585,12 +556,8 @@ public class MaildirFolder {
String[] newFiles = newFolder.list();
messageCount = curFiles.length + newFiles.length;
HashMap<String, MessageUid> reverseUidMap = new HashMap<>(messageCount);
- FileReader fileReader = null;
- BufferedReader reader = null;
- PrintWriter pw = null;
- try {
- fileReader = new FileReader(uidList);
- reader = new BufferedReader(fileReader);
+ try (FileReader fileReader = new FileReader(uidList);
+ BufferedReader reader = new BufferedReader(fileReader)) {
String line = reader.readLine();
// the first line in the file contains the next uid and message count
if (line != null) {
@@ -619,18 +586,15 @@ public class MaildirFolder {
}
uidMap.put(uid, messageName);
}
- pw = new PrintWriter(uidList);
- pw.println(createUidListHeader());
- for (Entry<MessageUid, MaildirMessageName> entry : uidMap.entrySet()) {
- pw.println(String.valueOf(entry.getKey().asLong()) + " " + entry.getValue().getFullName());
+ try (PrintWriter pw = new PrintWriter(uidList)) {
+ pw.println(createUidListHeader());
+ for (Entry<MessageUid, MaildirMessageName> entry : uidMap.entrySet()) {
+ pw.println(String.valueOf(entry.getKey().asLong()) + " " + entry.getValue().getFullName());
+ }
}
} catch (IOException e) {
throw new MailboxException("Unable to update uid file", e);
- } finally {
- IOUtils.closeQuietly(pw);
- IOUtils.closeQuietly(fileReader);
- IOUtils.closeQuietly(reader);
- }
+ }
return uidMap;
}
@@ -638,11 +602,9 @@ public class MaildirFolder {
final Map<MessageUid, MaildirMessageName> uidMap = new HashMap<>();
File uidList = uidFile;
- FileReader fileReader = null;
- BufferedReader reader = null;
- try {
- fileReader = new FileReader(uidList);
- reader = new BufferedReader(fileReader);
+ try (FileReader fileReader = new FileReader(uidList);
+ BufferedReader reader = new BufferedReader(fileReader)) {
+
String line = reader.readLine();
// the first line in the file contains the next uid and message
// count
@@ -673,9 +635,6 @@ public class MaildirFolder {
}
} catch (IOException e) {
throw new MailboxException("Unable to read uid file", e);
- } finally {
- IOUtils.closeQuietly(reader);
- IOUtils.closeQuietly(fileReader);
}
messageCount = uidMap.size();
@@ -762,29 +721,28 @@ public class MaildirFolder {
return locker.executeWithLock(session, path, () -> {
File uidList = uidFile;
MessageUid uid = null;
- FileReader fileReader = null;
- BufferedReader reader = null;
- PrintWriter pw = null;
try {
if (uidList.isFile()) {
- fileReader = new FileReader(uidList);
- reader = new BufferedReader(fileReader);
- String line = reader.readLine();
- // the first line in the file contains the next uid and message count
- if (line != null) {
- readUidListHeader(line);
- }
- ArrayList<String> lines = new ArrayList<>();
- while ((line = reader.readLine()) != null) {
- lines.add(line);
- }
- uid = getNextUid();
- lines.add(String.valueOf(uid.asLong()) + " " + name);
- messageCount++;
- pw = new PrintWriter(uidList);
- pw.println(createUidListHeader());
- for (String entry : lines) {
- pw.println(entry);
+ try (FileReader fileReader = new FileReader(uidList);
+ BufferedReader reader = new BufferedReader(fileReader)) {
+ String line = reader.readLine();
+ // the first line in the file contains the next uid and message count
+ if (line != null) {
+ readUidListHeader(line);
+ }
+ ArrayList<String> lines = new ArrayList<>();
+ while ((line = reader.readLine()) != null) {
+ lines.add(line);
+ }
+ uid = getNextUid();
+ lines.add(String.valueOf(uid.asLong()) + " " + name);
+ messageCount++;
+ try (PrintWriter pw = new PrintWriter(uidList)) {
+ pw.println(createUidListHeader());
+ for (String entry : lines) {
+ pw.println(entry);
+ }
+ }
}
} else {
// create the file
@@ -804,18 +762,15 @@ public class MaildirFolder {
uid = theUid;
}
}
- pw = new PrintWriter(uidList);
- pw.println(createUidListHeader());
- for (String line : lines) {
- pw.println(line);
+ try (PrintWriter pw = new PrintWriter(uidList)) {
+ pw.println(createUidListHeader());
+ for (String line : lines) {
+ pw.println(line);
+ }
}
}
} catch (IOException e) {
throw new MailboxException("Unable to append msg", e);
- } finally {
- IOUtils.closeQuietly(pw);
- IOUtils.closeQuietly(reader);
- IOUtils.closeQuietly(fileReader);
}
if (uid == null) {
throw new MailboxException("Unable to append msg");
@@ -836,12 +791,9 @@ public class MaildirFolder {
public void update(MailboxSession session, final MessageUid uid, final String messageName) throws MailboxException {
locker.executeWithLock(session, path, (LockAwareExecution<Void>) () -> {
File uidList = uidFile;
- FileReader fileReader = null;
- BufferedReader reader = null;
- PrintWriter writer = null;
- try {
- fileReader = new FileReader(uidList);
- reader = new BufferedReader(fileReader);
+ try (FileReader fileReader = new FileReader(uidList);
+ BufferedReader reader = new BufferedReader(fileReader)) {
+
String line = reader.readLine();
readUidListHeader(line);
ArrayList<String> lines = new ArrayList<>();
@@ -851,17 +803,14 @@ public class MaildirFolder {
}
lines.add(line);
}
- writer = new PrintWriter(uidList);
- writer.println(createUidListHeader());
- for (String entry : lines) {
- writer.println(entry);
+ try (PrintWriter writer = new PrintWriter(uidList)) {
+ writer.println(createUidListHeader());
+ for (String entry : lines) {
+ writer.println(entry);
+ }
}
} catch (IOException e) {
throw new MailboxException("Unable to update msg with uid " + uid, e);
- } finally {
- IOUtils.closeQuietly(writer);
- IOUtils.closeQuietly(reader);
- IOUtils.closeQuietly(fileReader);
}
return null;
}, true);
@@ -878,13 +827,10 @@ public class MaildirFolder {
public MaildirMessageName delete(final MailboxSession session, final MessageUid uid) throws MailboxException {
return locker.executeWithLock(session, path, () -> {
File uidList = uidFile;
- FileReader fileReader = null;
- BufferedReader reader = null;
- PrintWriter writer = null;
MaildirMessageName deletedMessage = null;
- try {
- fileReader = new FileReader(uidList);
- reader = new BufferedReader(fileReader);
+ try (FileReader fileReader = new FileReader(uidList);
+ BufferedReader reader = new BufferedReader(fileReader)) {
+
readUidListHeader(reader.readLine());
// It may be possible that message count is 0 so we should better not try to calculate the size of the ArrayList
@@ -909,20 +855,17 @@ public class MaildirFolder {
}
if (deletedMessage != null) {
FileUtils.forceDelete(deletedMessage.getFile());
- writer = new PrintWriter(uidList);
- writer.println(createUidListHeader());
- for (String entry : lines) {
- writer.println(entry);
+ try (PrintWriter writer = new PrintWriter(uidList)) {
+ writer.println(createUidListHeader());
+ for (String entry : lines) {
+ writer.println(entry);
+ }
}
}
return deletedMessage;
} catch (IOException e) {
throw new MailboxException("Unable to delete msg with uid " + uid, e);
- } finally {
- IOUtils.closeQuietly(writer);
- IOUtils.closeQuietly(reader);
- IOUtils.closeQuietly(fileReader);
}
}, true);
@@ -954,16 +897,12 @@ public class MaildirFolder {
// FIXME Do we need this locking?
return locker.executeWithLock(session, path, (LockAwareExecution<MailboxACL>) () -> {
File f = aclFile;
- InputStream in = null;
Properties props = new Properties();
if (f.exists()) {
- try {
- in = new FileInputStream(f);
+ try (FileInputStream in = new FileInputStream(f)) {
props.load(in);
} catch (IOException e) {
throw new MailboxException("Unable to read last ACL from " + f.getAbsolutePath(), e);
- } finally {
- IOUtils.closeQuietly(in);
}
}
@@ -990,7 +929,7 @@ public class MaildirFolder {
@Override
public Void execute() throws MailboxException {
File f = aclFile;
- OutputStream out = null;
+
Properties props = new Properties();
Map<EntryKey, Rfc4314Rights> entries = acl.getEntries();
if (entries != null) {
@@ -999,13 +938,10 @@ public class MaildirFolder {
}
}
if (f.exists()) {
- try {
- out = new FileOutputStream(f);
+ try (FileOutputStream out = new FileOutputStream(f)) {
props.store(out, "written by " + getClass().getName());
} catch (IOException e) {
throw new MailboxException("Unable to read last ACL from " + f.getAbsolutePath(), e);
- } finally {
- IOUtils.closeQuietly(out);
}
}
http://git-wip-us.apache.org/repos/asf/james-project/blob/8b94fa51/mailbox/maildir/src/main/java/org/apache/james/mailbox/maildir/mail/MaildirMessageMapper.java
----------------------------------------------------------------------
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 dd4697d..2bd14db 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
@@ -35,7 +35,6 @@ 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.exception.MailboxException;
@@ -277,24 +276,20 @@ public class MaildirMessageMapper extends AbstractMessageMapper {
// billion years...
MaildirMessageName messageName = MaildirMessageName.createUniqueName(folder, message.getFullContentOctets());
File messageFile = new File(tmpFolder, messageName.getFullName());
- FileOutputStream fos = null;
- InputStream input = null;
try {
if (!messageFile.createNewFile()) {
throw new IOException("Could not create file " + messageFile);
}
- fos = new FileOutputStream(messageFile);
- input = message.getFullContent();
- byte[] b = new byte[BUF_SIZE];
- int len = 0;
- while ((len = input.read(b)) != -1) {
- fos.write(b, 0, len);
+ 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);
+ }
}
} catch (IOException ioe) {
throw new MailboxException("Failure while save MailboxMessage " + message + " in Mailbox " + mailbox, ioe);
- } finally {
- IOUtils.closeQuietly(fos);
- IOUtils.closeQuietly(input);
}
File newMessageFile = null;
// delivered via SMTP, goes to ./new without flags
http://git-wip-us.apache.org/repos/asf/james-project/blob/8b94fa51/mailbox/maildir/src/main/java/org/apache/james/mailbox/maildir/mail/model/MaildirMessage.java
----------------------------------------------------------------------
diff --git a/mailbox/maildir/src/main/java/org/apache/james/mailbox/maildir/mail/model/MaildirMessage.java b/mailbox/maildir/src/main/java/org/apache/james/mailbox/maildir/mail/model/MaildirMessage.java
index b1f669d..2e2e7f2 100644
--- a/mailbox/maildir/src/main/java/org/apache/james/mailbox/maildir/mail/model/MaildirMessage.java
+++ b/mailbox/maildir/src/main/java/org/apache/james/mailbox/maildir/mail/model/MaildirMessage.java
@@ -120,22 +120,16 @@ public class MaildirMessage implements Message {
}
if ("text".equalsIgnoreCase(mediaType)) {
long lines = -1;
- final CountingInputStream bodyStream = new CountingInputStream(parser.getInputStream());
- try {
+ try (CountingInputStream bodyStream = new CountingInputStream(parser.getInputStream())) {
bodyStream.readAll();
lines = bodyStream.getLineCount();
- } finally {
- IOUtils.closeQuietly(bodyStream);
}
next = parser.next();
if (next == EntityState.T_EPILOGUE) {
- final CountingInputStream epilogueStream = new CountingInputStream(parser.getInputStream());
- try {
+ try (CountingInputStream epilogueStream = new CountingInputStream(parser.getInputStream())) {
epilogueStream.readAll();
lines += epilogueStream.getLineCount();
- } finally {
- IOUtils.closeQuietly(epilogueStream);
}
}
propertyBuilder.setTextualLineCount(lines);
http://git-wip-us.apache.org/repos/asf/james-project/blob/8b94fa51/mailbox/store/src/main/java/org/apache/james/mailbox/store/StoreMessageManager.java
----------------------------------------------------------------------
diff --git a/mailbox/store/src/main/java/org/apache/james/mailbox/store/StoreMessageManager.java b/mailbox/store/src/main/java/org/apache/james/mailbox/store/StoreMessageManager.java
index c3bf699..0c6c156 100644
--- a/mailbox/store/src/main/java/org/apache/james/mailbox/store/StoreMessageManager.java
+++ b/mailbox/store/src/main/java/org/apache/james/mailbox/store/StoreMessageManager.java
@@ -37,7 +37,6 @@ import javax.mail.Flags.Flag;
import javax.mail.internet.SharedInputStream;
import javax.mail.util.SharedFileInputStream;
-import org.apache.commons.io.IOUtils;
import org.apache.commons.io.input.TeeInputStream;
import org.apache.james.mailbox.MailboxListener;
import org.apache.james.mailbox.MailboxManager;
@@ -295,10 +294,6 @@ public class StoreMessageManager implements org.apache.james.mailbox.MessageMana
public ComposedMessageId appendMessage(InputStream msgIn, Date internalDate, final MailboxSession mailboxSession, boolean isRecent, Flags flagsToBeSet) throws MailboxException {
File file = null;
- TeeInputStream tmpMsgIn = null;
- BodyOffsetInputStream bIn = null;
- FileOutputStream out = null;
- SharedFileInputStream contentIn = null;
if (!isWriteable(mailboxSession)) {
throw new ReadOnlyException(getMailboxPath(), mailboxSession.getPathDelimiter());
@@ -309,134 +304,128 @@ public class StoreMessageManager implements org.apache.james.mailbox.MessageMana
// with the file as
// source for the InputStream
file = File.createTempFile("imap", ".msg");
- out = new FileOutputStream(file);
-
- tmpMsgIn = new TeeInputStream(msgIn, out);
-
- bIn = new BodyOffsetInputStream(tmpMsgIn);
- // Disable line length... This should be handled by the smtp server
- // component and not the parser itself
- // https://issues.apache.org/jira/browse/IMAP-122
-
- final MimeTokenStream parser = new MimeTokenStream(MimeConfig.PERMISSIVE, new DefaultBodyDescriptorBuilder());
-
- parser.setRecursionMode(RecursionMode.M_NO_RECURSE);
- parser.parse(bIn);
- final HeaderImpl header = new HeaderImpl();
-
- EntityState next = parser.next();
- while (next != EntityState.T_BODY && next != EntityState.T_END_OF_STREAM && next != EntityState.T_START_MULTIPART) {
- if (next == EntityState.T_FIELD) {
- header.addField(parser.getField());
+ try (FileOutputStream out = new FileOutputStream(file);
+ TeeInputStream tmpMsgIn = new TeeInputStream(msgIn, out);
+ BodyOffsetInputStream bIn = new BodyOffsetInputStream(tmpMsgIn)) {
+ // Disable line length... This should be handled by the smtp server
+ // component and not the parser itself
+ // https://issues.apache.org/jira/browse/IMAP-122
+
+ final MimeTokenStream parser = new MimeTokenStream(MimeConfig.PERMISSIVE, new DefaultBodyDescriptorBuilder());
+
+ parser.setRecursionMode(RecursionMode.M_NO_RECURSE);
+ parser.parse(bIn);
+ final HeaderImpl header = new HeaderImpl();
+
+ EntityState next = parser.next();
+ while (next != EntityState.T_BODY && next != EntityState.T_END_OF_STREAM && next != EntityState.T_START_MULTIPART) {
+ if (next == EntityState.T_FIELD) {
+ header.addField(parser.getField());
+ }
+ next = parser.next();
}
- next = parser.next();
- }
- final MaximalBodyDescriptor descriptor = (MaximalBodyDescriptor) parser.getBodyDescriptor();
- final PropertyBuilder propertyBuilder = new PropertyBuilder();
- final String mediaType;
- final String mediaTypeFromHeader = descriptor.getMediaType();
- final String subType;
- if (mediaTypeFromHeader == null) {
- mediaType = "text";
- subType = "plain";
- } else {
- mediaType = mediaTypeFromHeader;
- subType = descriptor.getSubType();
- }
- propertyBuilder.setMediaType(mediaType);
- propertyBuilder.setSubType(subType);
- propertyBuilder.setContentID(descriptor.getContentId());
- propertyBuilder.setContentDescription(descriptor.getContentDescription());
- propertyBuilder.setContentLocation(descriptor.getContentLocation());
- propertyBuilder.setContentMD5(descriptor.getContentMD5Raw());
- propertyBuilder.setContentTransferEncoding(descriptor.getTransferEncoding());
- propertyBuilder.setContentLanguage(descriptor.getContentLanguage());
- propertyBuilder.setContentDispositionType(descriptor.getContentDispositionType());
- propertyBuilder.setContentDispositionParameters(descriptor.getContentDispositionParameters());
- propertyBuilder.setContentTypeParameters(descriptor.getContentTypeParameters());
- // Add missing types
- final String codeset = descriptor.getCharset();
- if (codeset == null) {
- if ("TEXT".equalsIgnoreCase(mediaType)) {
- propertyBuilder.setCharset("us-ascii");
+ final MaximalBodyDescriptor descriptor = (MaximalBodyDescriptor) parser.getBodyDescriptor();
+ final PropertyBuilder propertyBuilder = new PropertyBuilder();
+ final String mediaType;
+ final String mediaTypeFromHeader = descriptor.getMediaType();
+ final String subType;
+ if (mediaTypeFromHeader == null) {
+ mediaType = "text";
+ subType = "plain";
+ } else {
+ mediaType = mediaTypeFromHeader;
+ subType = descriptor.getSubType();
+ }
+ propertyBuilder.setMediaType(mediaType);
+ propertyBuilder.setSubType(subType);
+ propertyBuilder.setContentID(descriptor.getContentId());
+ propertyBuilder.setContentDescription(descriptor.getContentDescription());
+ propertyBuilder.setContentLocation(descriptor.getContentLocation());
+ propertyBuilder.setContentMD5(descriptor.getContentMD5Raw());
+ propertyBuilder.setContentTransferEncoding(descriptor.getTransferEncoding());
+ propertyBuilder.setContentLanguage(descriptor.getContentLanguage());
+ propertyBuilder.setContentDispositionType(descriptor.getContentDispositionType());
+ propertyBuilder.setContentDispositionParameters(descriptor.getContentDispositionParameters());
+ propertyBuilder.setContentTypeParameters(descriptor.getContentTypeParameters());
+ // Add missing types
+ final String codeset = descriptor.getCharset();
+ if (codeset == null) {
+ if ("TEXT".equalsIgnoreCase(mediaType)) {
+ propertyBuilder.setCharset("us-ascii");
+ }
+ } else {
+ propertyBuilder.setCharset(codeset);
}
- } else {
- propertyBuilder.setCharset(codeset);
- }
-
- final String boundary = descriptor.getBoundary();
- if (boundary != null) {
- propertyBuilder.setBoundary(boundary);
- }
- if ("text".equalsIgnoreCase(mediaType)) {
- final CountingInputStream bodyStream = new CountingInputStream(parser.getInputStream());
- bodyStream.readAll();
- long lines = bodyStream.getLineCount();
- bodyStream.close();
- next = parser.next();
- if (next == EntityState.T_EPILOGUE) {
- final CountingInputStream epilogueStream = new CountingInputStream(parser.getInputStream());
- epilogueStream.readAll();
- lines += epilogueStream.getLineCount();
- epilogueStream.close();
+ final String boundary = descriptor.getBoundary();
+ if (boundary != null) {
+ propertyBuilder.setBoundary(boundary);
+ }
+ if ("text".equalsIgnoreCase(mediaType)) {
+ final CountingInputStream bodyStream = new CountingInputStream(parser.getInputStream());
+ bodyStream.readAll();
+ long lines = bodyStream.getLineCount();
+ bodyStream.close();
+ next = parser.next();
+ if (next == EntityState.T_EPILOGUE) {
+ final CountingInputStream epilogueStream = new CountingInputStream(parser.getInputStream());
+ epilogueStream.readAll();
+ lines += epilogueStream.getLineCount();
+ epilogueStream.close();
+
+ }
+ propertyBuilder.setTextualLineCount(lines);
}
- propertyBuilder.setTextualLineCount(lines);
- }
- final Flags flags;
- if (flagsToBeSet == null) {
- flags = new Flags();
- } else {
- flags = flagsToBeSet;
+ final Flags flags;
+ if (flagsToBeSet == null) {
+ flags = new Flags();
+ } else {
+ flags = flagsToBeSet;
- // Check if we need to trim the flags
- trimFlags(flags, mailboxSession);
+ // Check if we need to trim the flags
+ trimFlags(flags, mailboxSession);
- }
- if (isRecent) {
- flags.add(Flags.Flag.RECENT);
- }
- if (internalDate == null) {
- internalDate = new Date();
- }
- byte[] discard = new byte[4096];
- while (tmpMsgIn.read(discard) != -1) {
- // consume the rest of the stream so everything get copied to
- // the file now
- // via the TeeInputStream
- }
- int bodyStartOctet = (int) bIn.getBodyStartOffset();
- if (bodyStartOctet == -1) {
- bodyStartOctet = 0;
- }
- contentIn = new SharedFileInputStream(file);
- final int size = (int) file.length();
-
- final List<MessageAttachment> attachments = extractAttachments(contentIn);
- propertyBuilder.setHasAttachment(hasNonInlinedAttachment(attachments));
+ }
+ if (isRecent) {
+ flags.add(Flags.Flag.RECENT);
+ }
+ if (internalDate == null) {
+ internalDate = new Date();
+ }
+ byte[] discard = new byte[4096];
+ while (tmpMsgIn.read(discard) != -1) {
+ // consume the rest of the stream so everything get copied to
+ // the file now
+ // via the TeeInputStream
+ }
+ int bodyStartOctet = (int) bIn.getBodyStartOffset();
+ if (bodyStartOctet == -1) {
+ bodyStartOctet = 0;
+ }
+ try (SharedFileInputStream contentIn = new SharedFileInputStream(file)) {
+ final int size = (int) file.length();
- final MailboxMessage message = createMessage(internalDate, size, bodyStartOctet, contentIn, flags, propertyBuilder, attachments);
+ final List<MessageAttachment> attachments = extractAttachments(contentIn);
+ propertyBuilder.setHasAttachment(hasNonInlinedAttachment(attachments));
- new QuotaChecker(quotaManager, quotaRootResolver, mailbox).tryAddition(1, size);
+ final MailboxMessage message = createMessage(internalDate, size, bodyStartOctet, contentIn, flags, propertyBuilder, attachments);
- return locker.executeWithLock(mailboxSession, getMailboxPath(), () -> {
- MessageMetaData data = appendMessageToStore(message, attachments, mailboxSession);
+ new QuotaChecker(quotaManager, quotaRootResolver, mailbox).tryAddition(1, size);
- Mailbox mailbox = getMailboxEntity();
- MailboxMessage copy = copyMessage(message);
- dispatcher.added(mailboxSession, mailbox, copy);
- return new ComposedMessageId(mailbox.getMailboxId(), data.getMessageId(), data.getUid());
- }, true);
+ return locker.executeWithLock(mailboxSession, getMailboxPath(), () -> {
+ MessageMetaData data = appendMessageToStore(message, attachments, mailboxSession);
+ Mailbox mailbox = getMailboxEntity();
+ MailboxMessage copy = copyMessage(message);
+ dispatcher.added(mailboxSession, mailbox, copy);
+ return new ComposedMessageId(mailbox.getMailboxId(), data.getMessageId(), data.getUid());
+ }, true);
+ }
+ }
} catch (IOException | MimeException e) {
throw new MailboxException("Unable to parse message", e);
} finally {
- IOUtils.closeQuietly(bIn);
- IOUtils.closeQuietly(tmpMsgIn);
- IOUtils.closeQuietly(out);
- IOUtils.closeQuietly(contentIn);
-
// delete the temporary file if one was specified
if (file != null) {
if (!file.delete()) {
http://git-wip-us.apache.org/repos/asf/james-project/blob/8b94fa51/mailet/standard/src/main/java/org/apache/james/transport/mailets/ClamAVScan.java
----------------------------------------------------------------------
diff --git a/mailet/standard/src/main/java/org/apache/james/transport/mailets/ClamAVScan.java b/mailet/standard/src/main/java/org/apache/james/transport/mailets/ClamAVScan.java
index a06495f..9233b21 100644
--- a/mailet/standard/src/main/java/org/apache/james/transport/mailets/ClamAVScan.java
+++ b/mailet/standard/src/main/java/org/apache/james/transport/mailets/ClamAVScan.java
@@ -39,7 +39,6 @@ import java.util.Set;
import javax.mail.MessagingException;
import javax.mail.internet.MimeMessage;
-import org.apache.commons.io.IOUtils;
import org.apache.james.core.MailAddress;
import org.apache.mailet.Experimental;
import org.apache.mailet.Mail;
@@ -603,18 +602,11 @@ public class ClamAVScan extends GenericMailet {
return;
}
- // get the socket
- Socket socket = getClamdSocket();
- BufferedReader reader = null;
- PrintWriter writer = null;
- Socket streamSocket = null;
- BufferedOutputStream bos = null;
+ Socket clamdSocket = getClamdSocket();
- try {
-
- // prepare the reader and writer for the commands
- reader = new BufferedReader(new InputStreamReader(socket.getInputStream(), "ASCII"));
- writer = new PrintWriter(new BufferedWriter(new OutputStreamWriter(socket.getOutputStream())), true);
+ try (Socket socket = clamdSocket;
+ BufferedReader reader = new BufferedReader(new InputStreamReader(socket.getInputStream(), "ASCII"));
+ PrintWriter writer = new PrintWriter(new BufferedWriter(new OutputStreamWriter(socket.getOutputStream())), true)) {
// write a request for a port to use for streaming out the data to scan
writer.println("STREAM");
@@ -624,86 +616,80 @@ public class ClamAVScan extends GenericMailet {
int streamPort = getStreamPortFromAnswer(reader.readLine());
// get the "stream" socket and the related (buffered) output stream
- streamSocket = new Socket(socket.getInetAddress(), streamPort);
- bos = new BufferedOutputStream(streamSocket.getOutputStream(), getStreamBufferSize());
-
- // stream out the message to the scanner
- mimeMessage.writeTo(bos);
- bos.flush();
- bos.close();
- streamSocket.close();
-
- String answer;
- boolean virusFound = false;
- String logMessage = "";
- for (; ; ) {
- answer = reader.readLine();
- if (answer != null) {
- answer = answer.trim();
-
- // if a virus is found the answer will be '... FOUND'
- if (answer.substring(answer.length() - FOUND_STRING.length()).equals(FOUND_STRING)) {
- virusFound = true;
- logMessage = answer + " (by CLAMD on " + socket.getInetAddress() + ")";
- LOGGER.debug(logMessage);
+ try (Socket streamSocket = new Socket(socket.getInetAddress(), streamPort);
+ BufferedOutputStream bos = new BufferedOutputStream(streamSocket.getOutputStream(), getStreamBufferSize())) {
+
+ // stream out the message to the scanner
+ mimeMessage.writeTo(bos);
+ bos.flush();
+ bos.close();
+ streamSocket.close();
+
+ String answer;
+ boolean virusFound = false;
+ String logMessage = "";
+ for (; ; ) {
+ answer = reader.readLine();
+ if (answer != null) {
+ answer = answer.trim();
+
+ // if a virus is found the answer will be '... FOUND'
+ if (answer.substring(answer.length() - FOUND_STRING.length()).equals(FOUND_STRING)) {
+ virusFound = true;
+ logMessage = answer + " (by CLAMD on " + socket.getInetAddress() + ")";
+ LOGGER.debug(logMessage);
+ }
+ } else {
+ break;
}
- } else {
- break;
}
- }
- reader.close();
- writer.close();
+ reader.close();
+ writer.close();
- if (virusFound) {
- String errorMessage = mail.getErrorMessage();
- if (errorMessage == null) {
- errorMessage = "";
- } else {
- errorMessage += "\r\n";
- }
- StringBuilder sb = new StringBuilder(errorMessage);
- sb.append(logMessage).append("\r\n");
+ if (virusFound) {
+ String errorMessage = mail.getErrorMessage();
+ if (errorMessage == null) {
+ errorMessage = "";
+ } else {
+ errorMessage += "\r\n";
+ }
+ StringBuilder sb = new StringBuilder(errorMessage);
+ sb.append(logMessage).append("\r\n");
- // write mail and message info to log
- logMailInfo(mail);
- logMessageInfo(mimeMessage);
+ // write mail and message info to log
+ logMailInfo(mail);
+ logMessageInfo(mimeMessage);
- // mark the mail with a mail attribute to check later on by other matchers/mailets
- mail.setAttribute(MAIL_ATTRIBUTE_NAME, "true");
+ // mark the mail with a mail attribute to check later on by other matchers/mailets
+ mail.setAttribute(MAIL_ATTRIBUTE_NAME, "true");
- // sets the error message to be shown in any "notifyXxx" message
- mail.setErrorMessage(sb.toString());
+ // sets the error message to be shown in any "notifyXxx" message
+ mail.setErrorMessage(sb.toString());
- // mark the message with a header string
- mimeMessage.setHeader(HEADER_NAME, "true");
+ // mark the message with a header string
+ mimeMessage.setHeader(HEADER_NAME, "true");
- } else {
- if (isDebug()) {
- LOGGER.debug("OK (by CLAMD on {})", socket.getInetAddress());
- }
- mail.setAttribute(MAIL_ATTRIBUTE_NAME, "false");
+ } else {
+ if (isDebug()) {
+ LOGGER.debug("OK (by CLAMD on {})", socket.getInetAddress());
+ }
+ mail.setAttribute(MAIL_ATTRIBUTE_NAME, "false");
- // mark the message with a header string
- mimeMessage.setHeader(HEADER_NAME, "false");
+ // mark the message with a header string
+ mimeMessage.setHeader(HEADER_NAME, "false");
- }
+ }
- try {
- saveChanges(mimeMessage);
- } catch (Exception ex) {
- LOGGER.error("Exception caught while saving changes (header) to the MimeMessage. Ignoring ...", ex);
+ try {
+ saveChanges(mimeMessage);
+ } catch (Exception ex) {
+ LOGGER.error("Exception caught while saving changes (header) to the MimeMessage. Ignoring ...", ex);
+ }
}
-
} catch (Exception ex) {
- LOGGER.error("Exception caught calling CLAMD on {}: {}", socket.getInetAddress(), ex.getMessage(), ex);
+ LOGGER.error("Exception caught calling CLAMD on {}: {}", clamdSocket.getInetAddress(), ex.getMessage(), ex);
throw new MessagingException("Exception caught", ex);
- } finally {
- IOUtils.closeQuietly(reader);
- IOUtils.closeQuietly(writer);
- IOUtils.closeQuietly(bos);
- IOUtils.closeQuietly(streamSocket);
- IOUtils.closeQuietly(socket);
}
}
http://git-wip-us.apache.org/repos/asf/james-project/blob/8b94fa51/mailet/standard/src/main/java/org/apache/james/transport/mailets/HeadersToHTTP.java
----------------------------------------------------------------------
diff --git a/mailet/standard/src/main/java/org/apache/james/transport/mailets/HeadersToHTTP.java b/mailet/standard/src/main/java/org/apache/james/transport/mailets/HeadersToHTTP.java
index 02ec697..abb1d74 100644
--- a/mailet/standard/src/main/java/org/apache/james/transport/mailets/HeadersToHTTP.java
+++ b/mailet/standard/src/main/java/org/apache/james/transport/mailets/HeadersToHTTP.java
@@ -28,7 +28,6 @@ import java.util.HashSet;
import javax.mail.MessagingException;
import javax.mail.internet.MimeMessage;
-import org.apache.commons.io.IOUtils;
import org.apache.http.NameValuePair;
import org.apache.http.client.methods.CloseableHttpResponse;
import org.apache.http.client.methods.HttpUriRequest;
@@ -141,18 +140,13 @@ public class HeadersToHTTP extends GenericMailet {
private String httpPost(HashSet<NameValuePair> pairs) throws IOException {
- CloseableHttpClient client = null;
- CloseableHttpResponse clientResponse = null;
- try {
- client = HttpClientBuilder.create().build();
+ try (CloseableHttpClient client = HttpClientBuilder.create().build()) {
HttpUriRequest request = RequestBuilder.post(url).addParameters(pairs.toArray(new NameValuePair[0])).build();
- clientResponse = client.execute(request);
- String result = clientResponse.getStatusLine().getStatusCode() + ": " + clientResponse.getStatusLine();
- LOGGER.debug("HeadersToHTTP: {}", result);
- return result;
- } finally {
- IOUtils.closeQuietly(clientResponse);
- IOUtils.closeQuietly(client);
+ try (CloseableHttpResponse clientResponse = client.execute(request)) {
+ String result = clientResponse.getStatusLine().getStatusCode() + ": " + clientResponse.getStatusLine();
+ LOGGER.debug("HeadersToHTTP: {}", result);
+ return result;
+ }
}
}
http://git-wip-us.apache.org/repos/asf/james-project/blob/8b94fa51/mailet/standard/src/main/java/org/apache/james/transport/mailets/SerialiseToHTTP.java
----------------------------------------------------------------------
diff --git a/mailet/standard/src/main/java/org/apache/james/transport/mailets/SerialiseToHTTP.java b/mailet/standard/src/main/java/org/apache/james/transport/mailets/SerialiseToHTTP.java
index 3dde0d1..713e4d7 100644
--- a/mailet/standard/src/main/java/org/apache/james/transport/mailets/SerialiseToHTTP.java
+++ b/mailet/standard/src/main/java/org/apache/james/transport/mailets/SerialiseToHTTP.java
@@ -27,7 +27,6 @@ import java.net.URL;
import javax.mail.MessagingException;
import javax.mail.internet.MimeMessage;
-import org.apache.commons.io.IOUtils;
import org.apache.http.HttpStatus;
import org.apache.http.NameValuePair;
import org.apache.http.client.ClientProtocolException;
@@ -163,10 +162,9 @@ public class SerialiseToHTTP extends GenericMailet {
LOGGER.debug("{}::{}", data[1].getName(), data[1].getValue());
}
- CloseableHttpClient client = HttpClientBuilder.create().build();
- CloseableHttpResponse clientResponse = null;
- try {
- clientResponse = client.execute(requestBuilder.build());
+
+ try (CloseableHttpClient client = HttpClientBuilder.create().build();
+ CloseableHttpResponse clientResponse = client.execute(requestBuilder.build())) {
if (clientResponse.getStatusLine().getStatusCode() != HttpStatus.SC_OK) {
LOGGER.debug("POST failed: {}", clientResponse.getStatusLine());
@@ -179,9 +177,6 @@ public class SerialiseToHTTP extends GenericMailet {
} catch (IOException e) {
LOGGER.debug("Fatal transport error: ", e);
return "Fatal transport error: " + e.getMessage();
- } finally {
- IOUtils.closeQuietly(clientResponse);
- IOUtils.closeQuietly(client);
}
}
http://git-wip-us.apache.org/repos/asf/james-project/blob/8b94fa51/mpt/core/src/main/java/org/apache/james/mpt/protocol/FileProtocolSessionBuilder.java
----------------------------------------------------------------------
diff --git a/mpt/core/src/main/java/org/apache/james/mpt/protocol/FileProtocolSessionBuilder.java b/mpt/core/src/main/java/org/apache/james/mpt/protocol/FileProtocolSessionBuilder.java
index 6788e09..09effae 100644
--- a/mpt/core/src/main/java/org/apache/james/mpt/protocol/FileProtocolSessionBuilder.java
+++ b/mpt/core/src/main/java/org/apache/james/mpt/protocol/FileProtocolSessionBuilder.java
@@ -25,7 +25,6 @@ import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.List;
-import org.apache.commons.io.IOUtils;
import org.apache.james.mpt.protocol.ProtocolSession.TimerCommand;
/**
@@ -71,15 +70,11 @@ public class FileProtocolSessionBuilder extends ProtocolSessionBuilder {
*/
public void addTestFile(String fileName, ProtocolSession session) throws Exception {
// Need to find local resource.
- InputStream is = this.getClass().getResourceAsStream(fileName);
- if (is == null) {
- throw new Exception("Test Resource '" + fileName + "' not found.");
- }
-
- try {
+ try (InputStream is = this.getClass().getResourceAsStream(fileName)) {
+ if (is == null) {
+ throw new Exception("Test Resource '" + fileName + "' not found.");
+ }
addProtocolLinesFromStream(is, session, fileName);
- } finally {
- IOUtils.closeQuietly(is);
}
}
@@ -96,8 +91,8 @@ public class FileProtocolSessionBuilder extends ProtocolSessionBuilder {
*/
public void addProtocolLinesFromStream(InputStream is, ProtocolSession session, String fileName) throws Exception {
int sessionNumber = -1;
- BufferedReader reader = new BufferedReader(new InputStreamReader(is));
- try {
+
+ try (BufferedReader reader = new BufferedReader(new InputStreamReader(is))) {
String next;
int lineNumber = -1;
String lastClientMsg = "";
@@ -187,8 +182,6 @@ public class FileProtocolSessionBuilder extends ProtocolSessionBuilder {
}
lineNumber++;
}
- } finally {
- IOUtils.closeQuietly(reader);
}
}
http://git-wip-us.apache.org/repos/asf/james-project/blob/8b94fa51/mpt/core/src/main/java/org/apache/james/mpt/script/GenericSimpleScriptedTestProtocol.java
----------------------------------------------------------------------
diff --git a/mpt/core/src/main/java/org/apache/james/mpt/script/GenericSimpleScriptedTestProtocol.java b/mpt/core/src/main/java/org/apache/james/mpt/script/GenericSimpleScriptedTestProtocol.java
index 93dc6bb..6fcf292 100644
--- a/mpt/core/src/main/java/org/apache/james/mpt/script/GenericSimpleScriptedTestProtocol.java
+++ b/mpt/core/src/main/java/org/apache/james/mpt/script/GenericSimpleScriptedTestProtocol.java
@@ -24,7 +24,6 @@ import java.util.ArrayList;
import java.util.List;
import java.util.Locale;
-import org.apache.commons.io.IOUtils;
import org.apache.james.mpt.api.Continuation;
import org.apache.james.mpt.api.HostSystem;
import org.apache.james.mpt.api.Session;
@@ -198,16 +197,11 @@ public class GenericSimpleScriptedTestProtocol<T extends HostSystem, SelfT exten
fileName = scriptDirectory + fileName;
// Need to find local resource.
- InputStream is = this.getClass().getResourceAsStream(fileName);
-
- if (is == null) {
- throw new Exception("Test Resource '" + fileName + "' not found.");
- }
-
- try {
+ try (InputStream is = this.getClass().getResourceAsStream(fileName)) {
+ if (is == null) {
+ throw new Exception("Test Resource '" + fileName + "' not found.");
+ }
builder.addProtocolLinesFromStream(is, session, fileName);
- } finally {
- IOUtils.closeQuietly(is);
}
}
http://git-wip-us.apache.org/repos/asf/james-project/blob/8b94fa51/mpt/impl/managesieve/core/src/main/java/org/apache/james/mpt/host/ManageSieveSession.java
----------------------------------------------------------------------
diff --git a/mpt/impl/managesieve/core/src/main/java/org/apache/james/mpt/host/ManageSieveSession.java b/mpt/impl/managesieve/core/src/main/java/org/apache/james/mpt/host/ManageSieveSession.java
index aa802ff..949014e 100644
--- a/mpt/impl/managesieve/core/src/main/java/org/apache/james/mpt/host/ManageSieveSession.java
+++ b/mpt/impl/managesieve/core/src/main/java/org/apache/james/mpt/host/ManageSieveSession.java
@@ -20,6 +20,7 @@
package org.apache.james.mpt.host;
import java.io.StringWriter;
+import java.nio.charset.StandardCharsets;
import org.apache.commons.io.IOUtils;
import org.apache.james.managesieve.api.SessionTerminatedException;
@@ -54,7 +55,7 @@ public class ManageSieveSession implements Session {
if (!isReadLast) {
String response;
StringWriter stringWriter = new StringWriter();
- IOUtils.copy(in, stringWriter);
+ IOUtils.copy(in, stringWriter, StandardCharsets.UTF_8);
String request = stringWriter.toString();
try {
response = manageSieveProcessor.handleRequest(settableSession, request);
http://git-wip-us.apache.org/repos/asf/james-project/blob/8b94fa51/mpt/pom.xml
----------------------------------------------------------------------
diff --git a/mpt/pom.xml b/mpt/pom.xml
index 4380d50..7231b2c 100644
--- a/mpt/pom.xml
+++ b/mpt/pom.xml
@@ -52,7 +52,6 @@
</issueManagement>
<properties>
- <commons-io.version>2.4</commons-io.version>
<commons-lang.version>2.6</commons-lang.version>
<derby.version>10.9.1.0</derby.version>
<guice.version>4.0</guice.version>
http://git-wip-us.apache.org/repos/asf/james-project/blob/8b94fa51/pom.xml
----------------------------------------------------------------------
diff --git a/pom.xml b/pom.xml
index 4743e1b..7e3e378 100644
--- a/pom.xml
+++ b/pom.xml
@@ -611,7 +611,7 @@
<commons-dbcp.version>1.4</commons-dbcp.version>
<commons-net.version>3.6</commons-net.version>
<commons-beanutils-core.version>1.8.3</commons-beanutils-core.version>
- <commons-io.version>2.5</commons-io.version>
+ <commons-io.version>2.6</commons-io.version>
<commons-logging.version>1.1.1</commons-logging.version>
<dnsjava.version>2.1.1</dnsjava.version>
http://git-wip-us.apache.org/repos/asf/james-project/blob/8b94fa51/server/container/core/src/main/java/org/apache/james/server/core/MimeMessageInputStreamSource.java
----------------------------------------------------------------------
diff --git a/server/container/core/src/main/java/org/apache/james/server/core/MimeMessageInputStreamSource.java b/server/container/core/src/main/java/org/apache/james/server/core/MimeMessageInputStreamSource.java
index 38036a7..e6cfe38 100644
--- a/server/container/core/src/main/java/org/apache/james/server/core/MimeMessageInputStreamSource.java
+++ b/server/container/core/src/main/java/org/apache/james/server/core/MimeMessageInputStreamSource.java
@@ -159,11 +159,19 @@ public class MimeMessageInputStreamSource extends MimeMessageSource implements D
public void dispose() {
// explicit close all streams
for (InputStream stream : streams) {
- IOUtils.closeQuietly(stream);
+ try {
+ stream.close();
+ } catch (IOException e) {
+ //ignore exception during close
+ }
}
if (out != null) {
- IOUtils.closeQuietly(out);
+ try {
+ out.close();
+ } catch (IOException e) {
+ //ignore exception during close
+ }
File file = out.getFile();
if (file != null) {
FileUtils.deleteQuietly(file);
http://git-wip-us.apache.org/repos/asf/james-project/blob/8b94fa51/server/container/core/src/main/java/org/apache/james/server/core/MimeMessageUtil.java
----------------------------------------------------------------------
diff --git a/server/container/core/src/main/java/org/apache/james/server/core/MimeMessageUtil.java b/server/container/core/src/main/java/org/apache/james/server/core/MimeMessageUtil.java
index c017c63..a30cf93 100644
--- a/server/container/core/src/main/java/org/apache/james/server/core/MimeMessageUtil.java
+++ b/server/container/core/src/main/java/org/apache/james/server/core/MimeMessageUtil.java
@@ -161,10 +161,8 @@ public class MimeMessageUtil {
}
}
- try {
- IOUtils.copy(bis, bos);
- } finally {
- IOUtils.closeQuietly(bis);
+ try (InputStream input = bis) {
+ IOUtils.copy(input, bos);
}
}
http://git-wip-us.apache.org/repos/asf/james-project/blob/8b94fa51/server/container/core/src/main/java/org/apache/james/server/core/MimeMessageWrapper.java
----------------------------------------------------------------------
diff --git a/server/container/core/src/main/java/org/apache/james/server/core/MimeMessageWrapper.java b/server/container/core/src/main/java/org/apache/james/server/core/MimeMessageWrapper.java
index 7adf805..b90f84d 100644
--- a/server/container/core/src/main/java/org/apache/james/server/core/MimeMessageWrapper.java
+++ b/server/container/core/src/main/java/org/apache/james/server/core/MimeMessageWrapper.java
@@ -27,6 +27,7 @@ import java.io.InputStreamReader;
import java.io.LineNumberReader;
import java.io.OutputStream;
import java.io.SequenceInputStream;
+import java.io.UnsupportedEncodingException;
import java.util.Enumeration;
import java.util.UUID;
@@ -192,14 +193,8 @@ public class MimeMessageWrapper extends MimeMessage implements Disposable {
if (headers != null) {
// Another thread has already loaded these headers
} else if (source != null) {
- try {
- InputStream in = source.getInputStream();
- try {
- headers = createInternetHeaders(in);
-
- } finally {
- IOUtils.closeQuietly(in);
- }
+ try (InputStream in = source.getInputStream()) {
+ headers = createInternetHeaders(in);
} catch (IOException ioe) {
throw new MessagingException("Unable to parse headers from stream: " + ioe.getMessage(), ioe);
}
@@ -227,7 +222,11 @@ public class MimeMessageWrapper extends MimeMessage implements Disposable {
saved = true;
} catch (IOException ioe) {
- IOUtils.closeQuietly(sourceIn);
+ try {
+ sourceIn.close();
+ } catch (IOException e) {
+ //ignore exception during close
+ }
sourceIn = null;
throw new MessagingException("Unable to parse stream: " + ioe.getMessage(), ioe);
}
@@ -299,8 +298,7 @@ public class MimeMessageWrapper extends MimeMessage implements Disposable {
// and write to this outputstream
// First handle the headers
- InputStream in = source.getInputStream();
- try {
+ try (InputStream in = source.getInputStream()) {
InternetHeaders myHeaders;
MailHeaders parsedHeaders = new MailHeaders(in);
@@ -318,8 +316,6 @@ public class MimeMessageWrapper extends MimeMessage implements Disposable {
Enumeration<String> filteredHeaders = myHeaders.getNonMatchingHeaderLines(ignoreList);
IOUtils.copy(new InternetHeadersInputStream(filteredHeaders), headerOs);
IOUtils.copy(in, bodyOs);
- } finally {
- IOUtils.closeQuietly(in);
}
} else {
// save the changes as the message was modified
@@ -389,31 +385,28 @@ public class MimeMessageWrapper extends MimeMessage implements Disposable {
}
// Wrap input stream in LineNumberReader
// Not sure what encoding to use really...
- InputStreamReader isr = null;
- LineNumberReader counter = null;
- try {
- if (getEncoding() != null) {
- isr = new InputStreamReader(in, getEncoding());
- counter = new LineNumberReader(isr);
- } else {
- isr = new InputStreamReader(in);
- counter = new LineNumberReader(isr);
- }
+ try (InputStream input = in;
+ InputStreamReader isr = builderReader(input)) {
// Read through all the data
char[] block = new char[4096];
- while (counter.read(block) > -1) {
- // Just keep reading
+ try (LineNumberReader counter = new LineNumberReader(isr)) {
+ while (counter.read(block) > -1) {
+ // Just keep reading
+ }
+ return counter.getLineNumber();
}
- return counter.getLineNumber();
} catch (IOException ioe) {
return -1;
- } finally {
- IOUtils.closeQuietly(counter);
- IOUtils.closeQuietly(isr);
- IOUtils.closeQuietly(in);
}
}
+ private InputStreamReader builderReader(InputStream in) throws MessagingException, UnsupportedEncodingException {
+ if (getEncoding() != null) {
+ return new InputStreamReader(in, getEncoding());
+ }
+ return new InputStreamReader(in);
+ }
+
/**
* Returns size of message, ie headers and content
*/
@@ -552,7 +545,11 @@ public class MimeMessageWrapper extends MimeMessage implements Disposable {
@Override
public void dispose() {
if (sourceIn != null) {
- IOUtils.closeQuietly(sourceIn);
+ try {
+ sourceIn.close();
+ } catch (IOException e) {
+ //ignore exception during close
+ }
}
if (source != null) {
LifecycleUtil.dispose(source);
http://git-wip-us.apache.org/repos/asf/james-project/blob/8b94fa51/server/container/filesystem-api/src/test/java/org/apache/james/filesystem/api/AbstractFileSystemTest.java
----------------------------------------------------------------------
diff --git a/server/container/filesystem-api/src/test/java/org/apache/james/filesystem/api/AbstractFileSystemTest.java b/server/container/filesystem-api/src/test/java/org/apache/james/filesystem/api/AbstractFileSystemTest.java
index 0d8890d..cc9f420 100644
--- a/server/container/filesystem-api/src/test/java/org/apache/james/filesystem/api/AbstractFileSystemTest.java
+++ b/server/container/filesystem-api/src/test/java/org/apache/james/filesystem/api/AbstractFileSystemTest.java
@@ -185,11 +185,8 @@ public abstract class AbstractFileSystemTest {
@Parameters(source = AvailableStreamsProvider.class)
public final void availableInputStreamShouldReturnANonEmptyStream(String url) throws Exception {
url = replacePort(url);
- InputStream inputStream = fileSystem.getResource(url);
- try {
+ try (InputStream inputStream = fileSystem.getResource(url)) {
assertThat(IOUtils.toByteArray(inputStream).length).isGreaterThan(0);
- } finally {
- IOUtils.closeQuietly(inputStream);
}
}
@@ -234,12 +231,9 @@ public abstract class AbstractFileSystemTest {
@Parameters(source = FileToCreateProvider.class)
public final void createdFilesAsInputStreamShouldBeAvailable(String name, String extension) throws Exception {
File temp = createTempFile(name, extension);
- InputStream inputStream = null;
- try {
- inputStream = fileSystem.getResource("file:" + temp.getAbsolutePath());
+ try (InputStream inputStream = fileSystem.getResource("file:" + temp.getAbsolutePath())) {
assertThat(IOUtils.toString(inputStream, StandardCharsets.UTF_8)).isEqualTo("content");
} finally {
- IOUtils.closeQuietly(inputStream);
temp.delete();
}
}
@@ -248,12 +242,9 @@ public abstract class AbstractFileSystemTest {
@Parameters(source = FileToCreateProvider.class)
public final void createdFilesAsInputStreamShouldBeAvailableWhenAccessedWithTwoSlashes(String name, String extension) throws Exception {
File temp = createTempFile(name, extension);
- InputStream inputStream = null;
- try {
- inputStream = fileSystem.getResource("file://" + temp.getAbsolutePath());
+ try (InputStream inputStream = fileSystem.getResource("file://" + temp.getAbsolutePath())) {
assertThat(IOUtils.toString(inputStream, StandardCharsets.UTF_8)).isEqualTo("content");
} finally {
- IOUtils.closeQuietly(inputStream);
temp.delete();
}
}
http://git-wip-us.apache.org/repos/asf/james-project/blob/8b94fa51/server/data/data-file/src/main/java/org/apache/james/sieverepository/file/SieveFileRepository.java
----------------------------------------------------------------------
diff --git a/server/data/data-file/src/main/java/org/apache/james/sieverepository/file/SieveFileRepository.java b/server/data/data-file/src/main/java/org/apache/james/sieverepository/file/SieveFileRepository.java
index a651ceb..b544ef5 100644
--- a/server/data/data-file/src/main/java/org/apache/james/sieverepository/file/SieveFileRepository.java
+++ b/server/data/data-file/src/main/java/org/apache/james/sieverepository/file/SieveFileRepository.java
@@ -38,7 +38,6 @@ import java.util.Scanner;
import javax.inject.Inject;
import org.apache.commons.io.FileUtils;
-import org.apache.commons.io.IOUtils;
import org.apache.james.core.User;
import org.apache.james.core.quota.QuotaSize;
import org.apache.james.filesystem.api.FileSystem;
@@ -100,17 +99,16 @@ public class SieveFileRepository implements SieveRepository {
// Create a temporary file
int bufferSize = content.length() > MAX_BUFF_SIZE ? MAX_BUFF_SIZE : content.length();
File tmpFile = null;
- Writer out = null;
+
try {
tmpFile = File.createTempFile(file.getName(), ".tmp", file.getParentFile());
- out = new OutputStreamWriter(new BufferedOutputStream(
- new FileOutputStream(tmpFile), bufferSize), UTF_8);
- out.write(content);
+ try (Writer out = new OutputStreamWriter(new BufferedOutputStream(
+ new FileOutputStream(tmpFile), bufferSize), UTF_8)) {
+ out.write(content);
+ }
} catch (IOException ex) {
FileUtils.deleteQuietly(tmpFile);
throw new StorageException(ex);
- } finally {
- IOUtils.closeQuietly(out);
}
// Does the file exist?
http://git-wip-us.apache.org/repos/asf/james-project/blob/8b94fa51/server/data/data-hbase/src/main/java/org/apache/james/domainlist/hbase/HBaseDomainList.java
----------------------------------------------------------------------
diff --git a/server/data/data-hbase/src/main/java/org/apache/james/domainlist/hbase/HBaseDomainList.java b/server/data/data-hbase/src/main/java/org/apache/james/domainlist/hbase/HBaseDomainList.java
index 6aff34a..7713320 100644
--- a/server/data/data-hbase/src/main/java/org/apache/james/domainlist/hbase/HBaseDomainList.java
+++ b/server/data/data-hbase/src/main/java/org/apache/james/domainlist/hbase/HBaseDomainList.java
@@ -24,7 +24,6 @@ import java.util.List;
import javax.inject.Inject;
-import org.apache.commons.io.IOUtils;
import org.apache.hadoop.hbase.client.Delete;
import org.apache.hadoop.hbase.client.Get;
import org.apache.hadoop.hbase.client.HTableInterface;
@@ -59,9 +58,7 @@ public class HBaseDomainList extends AbstractDomainList {
@Override
protected boolean containsDomainInternal(Domain domain) throws DomainListException {
- HTableInterface table = null;
- try {
- table = TablePool.getInstance().getDomainlistTable();
+ try (HTableInterface table = TablePool.getInstance().getDomainlistTable()) {
Get get = new Get(Bytes.toBytes(domain.asString()));
Result result = table.get(get);
if (!result.isEmpty()) {
@@ -70,8 +67,6 @@ public class HBaseDomainList extends AbstractDomainList {
} catch (IOException e) {
log.error("Error while counting domains from HBase", e);
throw new DomainListException("Error while counting domains from HBase", e);
- } finally {
- IOUtils.closeQuietly(table);
}
return false;
}
@@ -81,9 +76,7 @@ public class HBaseDomainList extends AbstractDomainList {
if (containsDomain(domain)) {
throw new DomainListException(domain.name() + " already exists.");
}
- HTableInterface table = null;
- try {
- table = TablePool.getInstance().getDomainlistTable();
+ try (HTableInterface table = TablePool.getInstance().getDomainlistTable()) {
Put put = new Put(Bytes.toBytes(domain.asString()));
put.add(HDomainList.COLUMN_FAMILY_NAME, HDomainList.COLUMN.DOMAIN, null);
table.put(put);
@@ -91,48 +84,37 @@ public class HBaseDomainList extends AbstractDomainList {
} catch (IOException e) {
log.error("Error while adding domain in HBase", e);
throw new DomainListException("Error while adding domain in HBase", e);
- } finally {
- IOUtils.closeQuietly(table);
}
}
@Override
public void removeDomain(Domain domain) throws DomainListException {
- HTableInterface table = null;
- try {
- table = TablePool.getInstance().getDomainlistTable();
+ try (HTableInterface table = TablePool.getInstance().getDomainlistTable()) {
Delete delete = new Delete(Bytes.toBytes(domain.asString()));
table.delete(delete);
table.flushCommits();
} catch (IOException e) {
log.error("Error while deleting user from HBase", e);
throw new DomainListException("Error while deleting domain from HBase", e);
- } finally {
- IOUtils.closeQuietly(table);
}
}
@Override
protected List<Domain> getDomainListInternal() throws DomainListException {
List<Domain> list = new ArrayList<>();
- HTableInterface table = null;
- ResultScanner resultScanner = null;
- try {
- table = TablePool.getInstance().getDomainlistTable();
+ try (HTableInterface table = TablePool.getInstance().getDomainlistTable()) {
Scan scan = new Scan();
scan.addFamily(HDomainList.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(Domain.of(Bytes.toString(result.getRow())));
+ try (ResultScanner resultScanner = table.getScanner(scan)) {
+ Result result;
+ while ((result = resultScanner.next()) != null) {
+ list.add(Domain.of(Bytes.toString(result.getRow())));
+ }
}
} catch (IOException e) {
log.error("Error while counting domains from HBase", e);
throw new DomainListException("Error while counting domains from HBase", e);
- } finally {
- IOUtils.closeQuietly(resultScanner);
- IOUtils.closeQuietly(table);
}
return list;
}
http://git-wip-us.apache.org/repos/asf/james-project/blob/8b94fa51/server/data/data-hbase/src/main/java/org/apache/james/rrt/hbase/HBaseRecipientRewriteTable.java
----------------------------------------------------------------------
diff --git a/server/data/data-hbase/src/main/java/org/apache/james/rrt/hbase/HBaseRecipientRewriteTable.java b/server/data/data-hbase/src/main/java/org/apache/james/rrt/hbase/HBaseRecipientRewriteTable.java
index e4dc88a..6b1a1ce 100644
--- a/server/data/data-hbase/src/main/java/org/apache/james/rrt/hbase/HBaseRecipientRewriteTable.java
+++ b/server/data/data-hbase/src/main/java/org/apache/james/rrt/hbase/HBaseRecipientRewriteTable.java
@@ -24,7 +24,6 @@ import java.util.List;
import java.util.Map;
import java.util.Optional;
-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;
@@ -73,17 +72,13 @@ public class HBaseRecipientRewriteTable extends AbstractRecipientRewriteTable {
@Override
public Mappings getUserDomainMappings(MappingSource source) throws
RecipientRewriteTableException {
- HTableInterface table = null;
Mappings list = MappingsImpl.empty();
- try {
- table = TablePool.getInstance().getRecipientRewriteTable();
+ try (HTableInterface table = TablePool.getInstance().getRecipientRewriteTable()) {
// Optimize this to only make one call.
return feedUserDomainMappingsList(table, source, list);
} catch (IOException e) {
log.error("Error while getting user domain mapping in HBase", e);
throw new RecipientRewriteTableException("Error while getting user domain mapping in HBase", e);
- } finally {
- IOUtils.closeQuietly(table);
}
}
@@ -102,40 +97,33 @@ public class HBaseRecipientRewriteTable extends AbstractRecipientRewriteTable {
@Override
public Map<MappingSource, Mappings> getAllMappings() throws RecipientRewriteTableException {
- HTableInterface table = null;
- ResultScanner resultScanner = null;
Map<MappingSource, Mappings> map = new HashMap<>();
- try {
- table = TablePool.getInstance().getRecipientRewriteTable();
+ try (HTableInterface table = TablePool.getInstance().getRecipientRewriteTable()) {
Scan scan = new Scan();
scan.addFamily(HRecipientRewriteTable.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<KeyValue> keyValues = result.list();
- if (keyValues != null) {
- for (KeyValue keyValue : keyValues) {
- MappingSource email = MappingSource.parse(Bytes.toString(keyValue.getRow()));
- Mappings mappings =
+ try (ResultScanner resultScanner = table.getScanner(scan)) {
+ Result result;
+ while ((result = resultScanner.next()) != null) {
+ List<KeyValue> keyValues = result.list();
+ if (keyValues != null) {
+ for (KeyValue keyValue : keyValues) {
+ MappingSource email = MappingSource.parse(Bytes.toString(keyValue.getRow()));
+ Mappings mappings =
MappingsImpl.from(
Optional.ofNullable(
map.get(email))
.orElse(MappingsImpl.empty()))
- .addAll(Splitter.on(COLUMN_SEPARATOR).split(Bytes.toString(keyValue.getValue())))
- .build();
- map.put(email, mappings);
+ .addAll(Splitter.on(COLUMN_SEPARATOR).split(Bytes.toString(keyValue.getValue())))
+ .build();
+ map.put(email, mappings);
+ }
}
}
}
} catch (IOException e) {
log.error("Error while getting all mapping from HBase", e);
throw new RecipientRewriteTableException("Error while getting all mappings from HBase", e);
- } finally {
- if (resultScanner != null) {
- resultScanner.close();
- }
- IOUtils.closeQuietly(table);
}
return map;
}
@@ -148,9 +136,7 @@ public class HBaseRecipientRewriteTable extends AbstractRecipientRewriteTable {
}
private Optional<String> getApplicableMappingRow(String user, Domain domain) throws RecipientRewriteTableException {
- HTableInterface table = null;
- try {
- table = TablePool.getInstance().getRecipientRewriteTable();
+ try (HTableInterface table = TablePool.getInstance().getRecipientRewriteTable()) {
HTableInterface tableCopy = table;
return OptionalUtils.orSuppliers(
Throwing.supplier(() -> Optional.ofNullable(getMapping(tableCopy, MappingSource.fromUser(user, domain)))).sneakyThrow(),
@@ -159,8 +145,6 @@ public class HBaseRecipientRewriteTable extends AbstractRecipientRewriteTable {
} catch (IOException e) {
log.error("Error while mapping address in HBase", e);
throw new RecipientRewriteTableException("Error while mapping address in HBase", e);
- } finally {
- IOUtils.closeQuietly(table);
}
}
@@ -209,17 +193,13 @@ public class HBaseRecipientRewriteTable extends AbstractRecipientRewriteTable {
* @throws RecipientRewriteTableException
*/
private void doRemoveMapping(MappingSource source) throws RecipientRewriteTableException {
- HTableInterface table = null;
- try {
- table = TablePool.getInstance().getRecipientRewriteTable();
+ try (HTableInterface table = TablePool.getInstance().getRecipientRewriteTable()) {
Delete delete = new Delete(Bytes.toBytes(getRowKey(source)));
table.delete(delete);
table.flushCommits();
} catch (IOException e) {
log.error("Error while removing mapping from HBase", e);
throw new RecipientRewriteTableException("Error while removing mapping from HBase", e);
- } finally {
- IOUtils.closeQuietly(table);
}
}
@@ -232,9 +212,7 @@ public class HBaseRecipientRewriteTable extends AbstractRecipientRewriteTable {
* @throws RecipientRewriteTableException
*/
private void doAddMapping(MappingSource source, String mapping) throws RecipientRewriteTableException {
- HTableInterface table = null;
- try {
- table = TablePool.getInstance().getRecipientRewriteTable();
+ try (HTableInterface table = TablePool.getInstance().getRecipientRewriteTable()) {
Put put = new Put(Bytes.toBytes(getRowKey(source)));
put.add(HRecipientRewriteTable.COLUMN_FAMILY_NAME, HRecipientRewriteTable.COLUMN.MAPPING, Bytes.toBytes(
mapping));
@@ -243,8 +221,6 @@ public class HBaseRecipientRewriteTable extends AbstractRecipientRewriteTable {
} catch (IOException e) {
log.error("Error while adding mapping in HBase", e);
throw new RecipientRewriteTableException("Error while adding mapping in HBase", e);
- } finally {
- IOUtils.closeQuietly(table);
}
}
---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org