Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMatthias Otterbach2018-03-16 13:42:44 +0000
committerMatthias Otterbach2018-03-16 14:05:54 +0000
commit28ff7336fdc125cb40efa93b16fcce26eb3fdd85 (patch)
tree60a60f879a973cc47f81d3856acfeea99c19244f /org.eclipse.scout.rt.server
parent0ade6ee889a6f13842e917bfdd29172b6d372dea (diff)
downloadorg.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')
-rw-r--r--org.eclipse.scout.rt.server/src/main/java/org/eclipse/scout/rt/server/services/common/imap/ImapAdapter.java21
-rw-r--r--org.eclipse.scout.rt.server/src/main/java/org/eclipse/scout/rt/server/services/common/pop3/POP3Adapter.java17
-rw-r--r--org.eclipse.scout.rt.server/src/main/java/org/eclipse/scout/rt/server/services/common/smtp/AbstractSMTPService.java72
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() {

Back to the top