From bf3bc178ad568d33879e78777b86fee8701ae4c1 Mon Sep 17 00:00:00 2001 From: Oleg Zhurakousky Date: Mon, 23 May 2011 07:36:23 -0400 Subject: [PATCH] INT-1914 added null check for Flags retrieved via getPermanentFlags() method to comform with the method spec --- .../mail/AbstractMailReceiver.java | 26 ++++++++++++++----- 1 file changed, 20 insertions(+), 6 deletions(-) diff --git a/spring-integration-mail/src/main/java/org/springframework/integration/mail/AbstractMailReceiver.java b/spring-integration-mail/src/main/java/org/springframework/integration/mail/AbstractMailReceiver.java index 68b9620b66..c0cba026c9 100755 --- a/spring-integration-mail/src/main/java/org/springframework/integration/mail/AbstractMailReceiver.java +++ b/spring-integration-mail/src/main/java/org/springframework/integration/mail/AbstractMailReceiver.java @@ -242,17 +242,29 @@ public abstract class AbstractMailReceiver extends IntegrationObjectSupport impl } List copiedMessages = new LinkedList(); logger.debug("Recieved " + messages.length + " messages"); - boolean recentFlagSupported = this.getFolder().getPermanentFlags().contains(Flags.Flag.RECENT); + + boolean recentFlagSupported = false; + + Flags flags = this.getFolder().getPermanentFlags(); + + if (flags != null){ + recentFlagSupported = flags.contains(Flags.Flag.RECENT); + } + for (int i = 0; i < messages.length; i++) { if (!recentFlagSupported){ - if (this.getFolder().getPermanentFlags().contains(Flags.Flag.USER)){ - logger.debug("USER flags are supported by this mail server. Flagging message with '" + SI_USER_FLAG + "' user flag"); + if (flags != null && flags.contains(Flags.Flag.USER)){ + if (logger.isDebugEnabled()){ + logger.debug("USER flags are supported by this mail server. Flagging message with '" + SI_USER_FLAG + "' user flag"); + } Flags siFlags = new Flags(); siFlags.add(SI_USER_FLAG); messages[i].setFlags(siFlags, true); } else { - logger.debug("USER flags are not supported by this mail server. Flagging message with system flag"); + if (logger.isDebugEnabled()){ + logger.debug("USER flags are not supported by this mail server. Flagging message with system flag"); + } messages[i].setFlag(Flags.Flag.FLAGGED, true); } } @@ -263,8 +275,10 @@ public abstract class AbstractMailReceiver extends IntegrationObjectSupport impl copiedMessages.add(new MimeMessage((MimeMessage) message)); } else { - logger.debug("Fetched email with subject '" + message.getSubject() + "' will be discarded by the matching filter" + - " and will not be flagged as SEEN."); + if (logger.isDebugEnabled()){ + logger.debug("Fetched email with subject '" + message.getSubject() + "' will be discarded by the matching filter" + + " and will not be flagged as SEEN."); + } } } else {