diff options
author | Matthias Otterbach | 2018-03-16 13:42:44 +0000 |
---|---|---|
committer | Matthias Otterbach | 2018-03-16 14:05:54 +0000 |
commit | 28ff7336fdc125cb40efa93b16fcce26eb3fdd85 (patch) | |
tree | 60a60f879a973cc47f81d3856acfeea99c19244f /org.eclipse.scout.rt.server | |
parent | 0ade6ee889a6f13842e917bfdd29172b6d372dea (diff) | |
download | org.eclipse.scout.rt-28ff7336fdc125cb40efa93b16fcce26eb3fdd85.tar.gz org.eclipse.scout.rt-28ff7336fdc125cb40efa93b16fcce26eb3fdd85.tar.xz org.eclipse.scout.rt-28ff7336fdc125cb40efa93b16fcce26eb3fdd85.zip |
Fix warnings: Update version number for javax.mail dependency
See caca6368c1adf0e580096acd180eef7e52308cec
224488
Change-Id: I5376d8ba8cdaa7f997c807d13bdd5b481aff8b0f
Reviewed-on: https://git.eclipse.org/r/119570
Tested-by: CI Bot
Reviewed-by: Matthias Otterbach <matthias.otterbach@bsi-software.com>
Diffstat (limited to 'org.eclipse.scout.rt.server')
3 files changed, 57 insertions, 53 deletions
diff --git a/org.eclipse.scout.rt.server/src/main/java/org/eclipse/scout/rt/server/services/common/imap/ImapAdapter.java b/org.eclipse.scout.rt.server/src/main/java/org/eclipse/scout/rt/server/services/common/imap/ImapAdapter.java index ac020e9fa2..85efe3757d 100644 --- a/org.eclipse.scout.rt.server/src/main/java/org/eclipse/scout/rt/server/services/common/imap/ImapAdapter.java +++ b/org.eclipse.scout.rt.server/src/main/java/org/eclipse/scout/rt/server/services/common/imap/ImapAdapter.java @@ -35,6 +35,12 @@ import org.eclipse.scout.rt.platform.util.StringUtility; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +/** + * <p> + * Not all operations of this class are thread-safe (e.g. there are operation which operate on cached folders open and + * close them). + * </p> + */ public class ImapAdapter implements IImapAdapter { private static final Logger LOG = LoggerFactory.getLogger(ImapAdapter.class); @@ -75,6 +81,7 @@ public class ImapAdapter implements IImapAdapter { return getUnseenMessages(getDefaultFolderName()); } + @SuppressWarnings("resource") @Override public Message[] getUnseenMessages(String folderName) { connect(); @@ -105,6 +112,7 @@ public class ImapAdapter implements IImapAdapter { return getAllMessages(getDefaultFolderName()); } + @SuppressWarnings("resource") @Override public Message[] getAllMessages(String folderName) { connect(); @@ -140,12 +148,11 @@ public class ImapAdapter implements IImapAdapter { protected void copyMessages(String destFolderName, Message[] messages, boolean deleteSourceMessages) { connect(); - Folder destFolder = null; - try { - destFolder = findFolder(destFolderName); + try (Folder destFolder = findFolder(destFolderName)) { if (destFolder != null) { Map<Folder, Set<Message>> messagesBySourceFolder = groupMessagesBySourceFolder(messages); for (Entry<Folder, Set<Message>> entry : messagesBySourceFolder.entrySet()) { + @SuppressWarnings("resource") // reason: message is an input parameter of this method final Folder sourceFolder = entry.getKey(); final Set<Message> messageSet = entry.getValue(); Message[] messagesForSourceFolder = messageSet.toArray(new Message[messageSet.size()]); @@ -220,6 +227,7 @@ public class ImapAdapter implements IImapAdapter { public void removeFolder(String folderName) { connect(); try { + @SuppressWarnings("resource") // reason: folder is explicitly closed if it is open and deleted afterwards Folder folder = findFolder(folderName); if (folder != null && folder.exists()) { if (folder.isOpen()) { @@ -291,6 +299,7 @@ public class ImapAdapter implements IImapAdapter { return findFolder(name, false); } + @SuppressWarnings("resource") // reason: folder is returned for further work, it must be open protected Folder findFolder(String name, boolean createNonExisting) { connect(); Folder folder = m_cachedFolders.get(name); @@ -318,6 +327,12 @@ public class ImapAdapter implements IImapAdapter { } } catch (MessagingException e) { + try { + folder.close(); + } + catch (IllegalStateException | MessagingException e1) { + LOG.trace("Could not close folder", e1); + } throw new ProcessingException("could not open folder: " + name, e); } return folder; diff --git a/org.eclipse.scout.rt.server/src/main/java/org/eclipse/scout/rt/server/services/common/pop3/POP3Adapter.java b/org.eclipse.scout.rt.server/src/main/java/org/eclipse/scout/rt/server/services/common/pop3/POP3Adapter.java index 1159522add..d754794ac7 100644 --- a/org.eclipse.scout.rt.server/src/main/java/org/eclipse/scout/rt/server/services/common/pop3/POP3Adapter.java +++ b/org.eclipse.scout.rt.server/src/main/java/org/eclipse/scout/rt/server/services/common/pop3/POP3Adapter.java @@ -34,6 +34,12 @@ import org.eclipse.scout.rt.platform.util.StringUtility; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +/** + * <p> + * Not all operations of this class are thread-safe (e.g. there are operation which operate on cached folders open and + * close them). + * </p> + */ public class POP3Adapter { public static final String TRASH_FOLDER_NAME = "Trash"; @@ -74,10 +80,8 @@ public class POP3Adapter { public String[] getUnseenMessageSubjects(String folderName) { connect(); ArrayList<Message> messages = new ArrayList<>(); - Folder folder = null; String[] subjects = null; - try { - folder = findFolder(folderName); + try (Folder folder = findFolder(folderName)) { if (folder != null) { if (!folder.isOpen()) { folder.open(Folder.READ_WRITE); @@ -97,7 +101,6 @@ public class POP3Adapter { for (int i = 0; i < messages.size(); i++) { subjects[i] = messageArray[i].getSubject(); } - folder.close(true); } } catch (MessagingException e) { @@ -119,9 +122,7 @@ public class POP3Adapter { public void visitUnseenMessages(String folderName, IPOP3MessageVisitor visitor) { connect(); - Folder folder = null; - try { - folder = findFolder(folderName); + try (Folder folder = findFolder(folderName)) { if (folder != null) { if (!folder.isOpen()) { folder.open(Folder.READ_WRITE); @@ -136,7 +137,6 @@ public class POP3Adapter { } } } - folder.close(true); } } catch (MessagingException e) { @@ -173,6 +173,7 @@ public class POP3Adapter { return findFolder(name, false); } + @SuppressWarnings("resource") protected Folder findFolder(String name, boolean createNonExisting) { connect(); Folder folder = m_cachedFolders.get(name); diff --git a/org.eclipse.scout.rt.server/src/main/java/org/eclipse/scout/rt/server/services/common/smtp/AbstractSMTPService.java b/org.eclipse.scout.rt.server/src/main/java/org/eclipse/scout/rt/server/services/common/smtp/AbstractSMTPService.java index 598ef1ad86..5d69aaa108 100644 --- a/org.eclipse.scout.rt.server/src/main/java/org/eclipse/scout/rt/server/services/common/smtp/AbstractSMTPService.java +++ b/org.eclipse.scout.rt.server/src/main/java/org/eclipse/scout/rt/server/services/common/smtp/AbstractSMTPService.java @@ -194,59 +194,47 @@ public abstract class AbstractSMTPService implements ISMTPService { @Override public void sendMessage(MimeMessage message, Session session) { - Transport transport = null; try { if (session == null) { session = createSession(); } - transport = session.getTransport(getProtocol()); - if (!StringUtility.isNullOrEmpty(getUsername())) { - transport.connect(getHost(), getUsername(), getPassword()); - } - else { - transport.connect(); - } - // subject prefix - String subjectPrefix = getSubjectPrefix(); - if (!StringUtility.isNullOrEmpty(subjectPrefix)) { - String subject = subjectPrefix + ((message.getSubject() != null) ? (message.getSubject()) : ("")); - message.setSubject(subject); - } + try (Transport transport = session.getTransport(getProtocol())) { + if (!StringUtility.isNullOrEmpty(getUsername())) { + transport.connect(getHost(), getUsername(), getPassword()); + } + else { + transport.connect(); + } + // subject prefix + String subjectPrefix = getSubjectPrefix(); + if (!StringUtility.isNullOrEmpty(subjectPrefix)) { + String subject = subjectPrefix + ((message.getSubject() != null) ? (message.getSubject()) : ("")); + message.setSubject(subject); + } - Address[] allRecipients = message.getAllRecipients(); - // check debug receiver - String debugReceiverEmail = getDebugReceiverEmail(); - if (debugReceiverEmail != null) { - allRecipients = new Address[]{BEANS.get(MailHelper.class).createInternetAddress(debugReceiverEmail)}; - LOG.debug("SMTP Service: debug receiver email set to: {}", debugReceiverEmail); - } - // from address - Address[] fromAddresses = message.getFrom(); - if (fromAddresses == null || fromAddresses.length == 0) { - String defaultFromEmail = getDefaultFromEmail(); - if (!StringUtility.isNullOrEmpty(defaultFromEmail)) { - message.setFrom(BEANS.get(MailHelper.class).createInternetAddress(defaultFromEmail)); + Address[] allRecipients = message.getAllRecipients(); + // check debug receiver + String debugReceiverEmail = getDebugReceiverEmail(); + if (debugReceiverEmail != null) { + allRecipients = new Address[]{BEANS.get(MailHelper.class).createInternetAddress(debugReceiverEmail)}; + LOG.debug("SMTP Service: debug receiver email set to: {}", debugReceiverEmail); + } + // from address + Address[] fromAddresses = message.getFrom(); + if (fromAddresses == null || fromAddresses.length == 0) { + String defaultFromEmail = getDefaultFromEmail(); + if (!StringUtility.isNullOrEmpty(defaultFromEmail)) { + message.setFrom(BEANS.get(MailHelper.class).createInternetAddress(defaultFromEmail)); + } + } + if (allRecipients != null && allRecipients.length > 0) { + transport.sendMessage(message, allRecipients); } - } - if (allRecipients != null && allRecipients.length > 0) { - transport.sendMessage(message, allRecipients); - transport.close(); - transport = null; } } catch (Exception e) { throw new ProcessingException("cannot send Mime Message.", e); } - finally { - try { - if (transport != null) { - transport.close(); - } - } - catch (Exception e) { - LOG.warn("Could not close transport", e); - } - } } protected Session createSession() { |