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 ad...@apache.org on 2017/12/18 19:34:40 UTC

[04/50] [abbrv] james-project git commit: JAMES-2199 Guard potentially expensive logger calls by checks that logging is enabled

JAMES-2199 Guard potentially expensive logger calls by checks that logging is enabled

These changes were suggested by SLF4J Helper for NetBeans IDE:
http://plugins.netbeans.org/plugin/72557/


Project: http://git-wip-us.apache.org/repos/asf/james-project/repo
Commit: http://git-wip-us.apache.org/repos/asf/james-project/commit/b329974d
Tree: http://git-wip-us.apache.org/repos/asf/james-project/tree/b329974d
Diff: http://git-wip-us.apache.org/repos/asf/james-project/diff/b329974d

Branch: refs/heads/master
Commit: b329974d864c764a106ed74a0273f481e9737a12
Parents: c200829
Author: Daniel Trebbien <dt...@gmail.com>
Authored: Thu Oct 19 21:52:11 2017 -0500
Committer: Antoine Duprat <ad...@linagora.com>
Committed: Mon Dec 18 20:31:49 2017 +0100

----------------------------------------------------------------------
 .../james/ai/classic/BayesianAnalysis.java      |   4 +-
 .../james/transport/mailets/AbstractSign.java   |   2 +-
 .../james/transport/mailets/HeadersToHTTP.java  |  12 +-
 .../james/transport/mailets/LogMessage.java     |   4 +-
 .../transport/mailets/SerialiseToHTTP.java      |  18 +--
 .../james/transport/mailets/LogMessageTest.java |  22 ++--
 .../AbstractMessageRangeProcessor.java          |   4 +-
 .../james/imap/processor/StoreProcessor.java    |   4 +-
 .../imap/processor/fetch/FetchProcessor.java    |   4 +-
 .../repository/file/AbstractFileRepository.java |   2 +-
 .../transport/mailets/BayesianAnalysis.java     |   4 +-
 .../james/transport/mailets/DSNBounce.java      |   2 +-
 .../mailets/delivery/SimpleMailStore.java       |   4 +-
 .../mailets/jsieve/delivery/SieveExecutor.java  |  14 ++-
 .../mailets/redirect/MailModifier.java          |   4 +-
 .../mailets/redirect/ProcessRedirectNotify.java |   2 +-
 .../samples/mailets/InstrumentationMailet.java  | 117 ++++++++++---------
 .../james/jmap/AuthenticationServlet.java       |   4 +-
 18 files changed, 132 insertions(+), 95 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/james-project/blob/b329974d/mailet/ai/src/main/java/org/apache/james/ai/classic/BayesianAnalysis.java
----------------------------------------------------------------------
diff --git a/mailet/ai/src/main/java/org/apache/james/ai/classic/BayesianAnalysis.java b/mailet/ai/src/main/java/org/apache/james/ai/classic/BayesianAnalysis.java
index 8aa08ad..bc9bc5e 100644
--- a/mailet/ai/src/main/java/org/apache/james/ai/classic/BayesianAnalysis.java
+++ b/mailet/ai/src/main/java/org/apache/james/ai/classic/BayesianAnalysis.java
@@ -321,7 +321,9 @@ public class BayesianAnalysis extends GenericMailet {
             }
             if (probability > 0.1) {
                 final Collection<MailAddress> recipients = mail.getRecipients();
-                LOGGER.debug(headerName + ": " + probabilityString + "; From: " + senderString + "; Recipient(s): " + getAddressesString(recipients));
+                if (LOGGER.isDebugEnabled()) {
+                    LOGGER.debug(headerName + ": " + probabilityString + "; From: " + senderString + "; Recipient(s): " + getAddressesString(recipients));
+                }
 
                 // Check if we should tag the subject
                 if (tagSubject) {

http://git-wip-us.apache.org/repos/asf/james-project/blob/b329974d/mailet/crypto/src/main/java/org/apache/james/transport/mailets/AbstractSign.java
----------------------------------------------------------------------
diff --git a/mailet/crypto/src/main/java/org/apache/james/transport/mailets/AbstractSign.java b/mailet/crypto/src/main/java/org/apache/james/transport/mailets/AbstractSign.java
index a019526..c4fbc24 100644
--- a/mailet/crypto/src/main/java/org/apache/james/transport/mailets/AbstractSign.java
+++ b/mailet/crypto/src/main/java/org/apache/james/transport/mailets/AbstractSign.java
@@ -227,7 +227,7 @@ public abstract class AbstractSign extends GenericMailet {
      */
     protected void initExplanationText() {
         setExplanationText(getInitParameter("explanationText"));
-        if (isDebug()) {
+        if (isDebug() && LOGGER.isDebugEnabled()) {
             LOGGER.debug("Explanation text:\r\n" + getExplanationText());
         }
     }

http://git-wip-us.apache.org/repos/asf/james-project/blob/b329974d/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 a575b35..578dd37 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
@@ -93,11 +93,13 @@ public class HeadersToHTTP extends GenericMailet {
         }
 
         // record the result
-        LOGGER.debug("I will attempt to deliver serialised messages to "
-                + targetUrl
-                + ". "
-                + ( ((parameterKey==null) || (parameterKey.length()<1)) ? "I will not add any fields to the post. " : "I will prepend: "	+ parameterKey + "=" + parameterValue + ". ")
-                + (passThrough ? "Messages will pass through." : "Messages will be ghosted."));
+        if (LOGGER.isDebugEnabled()) {
+            LOGGER.debug("I will attempt to deliver serialised messages to "
+                    + targetUrl
+                    + ". "
+                    + ( ((parameterKey==null) || (parameterKey.length()<1)) ? "I will not add any fields to the post. " : "I will prepend: "	+ parameterKey + "=" + parameterValue + ". ")
+                    + (passThrough ? "Messages will pass through." : "Messages will be ghosted."));
+        }
     }
 
     /**

http://git-wip-us.apache.org/repos/asf/james-project/blob/b329974d/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 4997a24..774817f 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
@@ -109,7 +109,7 @@ public class LogMessage extends GenericMailet {
 
     @SuppressWarnings("unchecked")
     private void logHeaders(MimeMessage message) throws MessagingException {
-        if (headers) {
+        if (headers && logger.isInfoEnabled()) {
             logger.info("\n");
             for (String header : Collections.list((Enumeration<String>) message.getAllHeaderLines())) {
                 logger.info(header + "\n");
@@ -118,7 +118,7 @@ public class LogMessage extends GenericMailet {
     }
 
     private void logBody(MimeMessage message) throws MessagingException, IOException {
-        if (body) {
+        if (body && logger.isInfoEnabled()) {
             InputStream inputStream = ByteStreams.limit(message.getRawInputStream(), lengthToLog(message));
             logger.info(IOUtils.toString(inputStream, Charsets.UTF_8));
         }

http://git-wip-us.apache.org/repos/asf/james-project/blob/b329974d/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 8c2dfdc..abe6169 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
@@ -99,14 +99,16 @@ public class SerialiseToHTTP extends GenericMailet {
         }
 
         // record the result
-        LOGGER.debug("I will attempt to deliver serialised messages to "
-                + targetUrl
-                + " as "
-                + messageKeyName
-                + ". "
-                + (parameterKey==null || parameterKey.length()<2 ? "I will not add any fields to the post. " : "I will prepend: "	+ parameterKey + "=" + parameterValue + ". ")
-                + (passThrough ? "Messages will pass through."
-                        : "Messages will be ghosted."));
+        if (LOGGER.isDebugEnabled()) {
+            LOGGER.debug("I will attempt to deliver serialised messages to "
+                    + targetUrl
+                    + " as "
+                    + messageKeyName
+                    + ". "
+                    + (parameterKey==null || parameterKey.length()<2 ? "I will not add any fields to the post. " : "I will prepend: "	+ parameterKey + "=" + parameterValue + ". ")
+                    + (passThrough ? "Messages will pass through."
+                            : "Messages will be ghosted."));
+        }
     }
 
     /**

http://git-wip-us.apache.org/repos/asf/james-project/blob/b329974d/mailet/standard/src/test/java/org/apache/james/transport/mailets/LogMessageTest.java
----------------------------------------------------------------------
diff --git a/mailet/standard/src/test/java/org/apache/james/transport/mailets/LogMessageTest.java b/mailet/standard/src/test/java/org/apache/james/transport/mailets/LogMessageTest.java
index beb7db6..6631d40 100644
--- a/mailet/standard/src/test/java/org/apache/james/transport/mailets/LogMessageTest.java
+++ b/mailet/standard/src/test/java/org/apache/james/transport/mailets/LogMessageTest.java
@@ -23,6 +23,7 @@ import static org.assertj.core.api.Assertions.assertThat;
 import static org.mockito.Matchers.any;
 import static org.mockito.Matchers.eq;
 import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.times;
 import static org.mockito.Mockito.verify;
 import static org.mockito.Mockito.verifyNoMoreInteractions;
 import static org.mockito.Mockito.when;
@@ -61,6 +62,7 @@ public class LogMessageTest {
     @Before
     public void setup() {
         logger = mock(Logger.class);
+        when(logger.isInfoEnabled()).thenReturn(true);
         mailContext = FakeMailContext.builder()
                 .logger(logger)
                 .build();
@@ -97,7 +99,8 @@ public class LogMessageTest {
                 .mimeMessage(message)
                 .build());
 
-        verify(logger).info("Logging mail null");
+        verify(logger).info("Logging mail {}", (Object) null);
+        verify(logger, times(2)).isInfoEnabled();
         verify(logger).info("\n");
         verify(logger).info("Subject: subject\n");
         verify(logger).error(eq("Error logging message."), any(MessagingException.class));
@@ -114,7 +117,8 @@ public class LogMessageTest {
 
         mailet.service(createMail());
 
-        verify(logger).info("Logging mail name");
+        verify(logger).info("Logging mail {}", "name");
+        verify(logger, times(2)).isInfoEnabled();
         verify(logger).info("\n");
         verify(logger).info("Subject: subject\n");
         verify(logger).info("Content-Type: text/plain\n");
@@ -139,7 +143,7 @@ public class LogMessageTest {
 
         mailet.service(mail);
 
-        verify(logger).info("Logging mail name");
+        verify(logger).info("Logging mail {}", "name");
         verify(logger).error("Error logging message.", messagingException);
         verifyNoMoreInteractions(logger);
     }
@@ -186,7 +190,8 @@ public class LogMessageTest {
 
         mailet.service(createMail());
 
-        verify(logger).info("Logging mail name");
+        verify(logger).info("Logging mail {}", "name");
+        verify(logger).isInfoEnabled();
         verify(logger).info("This is a fake mail");
         verifyNoMoreInteractions(logger);
     }
@@ -202,7 +207,8 @@ public class LogMessageTest {
 
         mailet.service(createMail());
 
-        verify(logger).info("Logging mail name");
+        verify(logger).info("Logging mail {}", "name");
+        verify(logger).isInfoEnabled();
         verify(logger).info("\n");
         verify(logger).info("Subject: subject\n");
         verify(logger).info("Content-Type: text/plain\n");
@@ -220,7 +226,8 @@ public class LogMessageTest {
 
         mailet.service(createMail());
 
-        verify(logger).info("Logging mail name");
+        verify(logger).info("Logging mail {}", "name");
+        verify(logger, times(2)).isInfoEnabled();
         verify(logger).info("\n");
         verify(logger).info("Subject: subject\n");
         verify(logger).info("Content-Type: text/plain\n");
@@ -239,8 +246,9 @@ public class LogMessageTest {
 
         mailet.service(createMail());
 
-        verify(logger).info("Logging mail name");
+        verify(logger).info("Logging mail {}", "name");
         verify(logger).info("comment");
+        verify(logger, times(2)).isInfoEnabled();
         verify(logger).info("\n");
         verify(logger).info("Subject: subject\n");
         verify(logger).info("Content-Type: text/plain\n");

http://git-wip-us.apache.org/repos/asf/james-project/blob/b329974d/protocols/imap/src/main/java/org/apache/james/imap/processor/AbstractMessageRangeProcessor.java
----------------------------------------------------------------------
diff --git a/protocols/imap/src/main/java/org/apache/james/imap/processor/AbstractMessageRangeProcessor.java b/protocols/imap/src/main/java/org/apache/james/imap/processor/AbstractMessageRangeProcessor.java
index 3f4e09d..2c23e95 100644
--- a/protocols/imap/src/main/java/org/apache/james/imap/processor/AbstractMessageRangeProcessor.java
+++ b/protocols/imap/src/main/java/org/apache/james/imap/processor/AbstractMessageRangeProcessor.java
@@ -113,7 +113,9 @@ public abstract class AbstractMessageRangeProcessor<M extends AbstractMessageRan
             }
             taggedBad(command, tag, responder, HumanReadableText.INVALID_MESSAGESET);
         } catch (MailboxException e) {
-            LOGGER.error(getOperationName() + " failed from mailbox " + currentMailbox.getPath() + " to " + targetMailbox + " for sequence-set " + ImmutableList.copyOf(idSet), e);
+            if (LOGGER.isErrorEnabled()) {
+                LOGGER.error(getOperationName() + " failed from mailbox " + currentMailbox.getPath() + " to " + targetMailbox + " for sequence-set " + ImmutableList.copyOf(idSet), e);
+            }
             no(command, tag, responder, HumanReadableText.GENERIC_FAILURE_DURING_PROCESSING);
         }
     }

http://git-wip-us.apache.org/repos/asf/james-project/blob/b329974d/protocols/imap/src/main/java/org/apache/james/imap/processor/StoreProcessor.java
----------------------------------------------------------------------
diff --git a/protocols/imap/src/main/java/org/apache/james/imap/processor/StoreProcessor.java b/protocols/imap/src/main/java/org/apache/james/imap/processor/StoreProcessor.java
index 3936d71..698720f 100644
--- a/protocols/imap/src/main/java/org/apache/james/imap/processor/StoreProcessor.java
+++ b/protocols/imap/src/main/java/org/apache/james/imap/processor/StoreProcessor.java
@@ -221,7 +221,9 @@ public class StoreProcessor extends AbstractMailboxProcessor<StoreRequest> {
             }
             taggedBad(imapCommand, tag, responder, HumanReadableText.INVALID_MESSAGESET);
         } catch (MailboxException e) {
-            LOGGER.error("Store failed for mailbox " + session.getSelected().getPath() + " and sequence-set " + ImmutableList.copyOf(idSet), e);
+            if (LOGGER.isErrorEnabled()) {
+                LOGGER.error("Store failed for mailbox " + session.getSelected().getPath() + " and sequence-set " + ImmutableList.copyOf(idSet), e);
+            }
             no(imapCommand, tag, responder, HumanReadableText.SAVE_FAILED);
         }
     }

http://git-wip-us.apache.org/repos/asf/james-project/blob/b329974d/protocols/imap/src/main/java/org/apache/james/imap/processor/fetch/FetchProcessor.java
----------------------------------------------------------------------
diff --git a/protocols/imap/src/main/java/org/apache/james/imap/processor/fetch/FetchProcessor.java b/protocols/imap/src/main/java/org/apache/james/imap/processor/fetch/FetchProcessor.java
index bb74ac9..c5644d7 100644
--- a/protocols/imap/src/main/java/org/apache/james/imap/processor/fetch/FetchProcessor.java
+++ b/protocols/imap/src/main/java/org/apache/james/imap/processor/fetch/FetchProcessor.java
@@ -138,7 +138,9 @@ public class FetchProcessor extends AbstractMailboxProcessor<FetchRequest> {
             }
             taggedBad(command, tag, responder, HumanReadableText.INVALID_MESSAGESET);
         } catch (MailboxException e) {
-            LOGGER.error("Fetch failed for mailbox " + session.getSelected().getPath() + " and sequence-set " + ImmutableList.copyOf(idSet), e);
+            if (LOGGER.isErrorEnabled()) {
+                LOGGER.error("Fetch failed for mailbox " + session.getSelected().getPath() + " and sequence-set " + ImmutableList.copyOf(idSet), e);
+            }
             no(command, tag, responder, HumanReadableText.SEARCH_FAILED);
         }
     }

http://git-wip-us.apache.org/repos/asf/james-project/blob/b329974d/server/data/data-library/src/main/java/org/apache/james/repository/file/AbstractFileRepository.java
----------------------------------------------------------------------
diff --git a/server/data/data-library/src/main/java/org/apache/james/repository/file/AbstractFileRepository.java b/server/data/data-library/src/main/java/org/apache/james/repository/file/AbstractFileRepository.java
index b876210..0e718c0 100644
--- a/server/data/data-library/src/main/java/org/apache/james/repository/file/AbstractFileRepository.java
+++ b/server/data/data-library/src/main/java/org/apache/james/repository/file/AbstractFileRepository.java
@@ -188,7 +188,7 @@ public abstract class AbstractFileRepository implements Repository, Configurable
             throw new RuntimeException("Cannot initialize child " + "repository " + childName + " : " + e);
         }
 
-        if (DEBUG) {
+        if (DEBUG && LOGGER.isDebugEnabled()) {
             LOGGER.debug("Child repository of " + m_name + " created in " + m_baseDirectory + File.pathSeparatorChar + childName + File.pathSeparator);
         }
 

http://git-wip-us.apache.org/repos/asf/james-project/blob/b329974d/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/BayesianAnalysis.java
----------------------------------------------------------------------
diff --git a/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/BayesianAnalysis.java b/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/BayesianAnalysis.java
index 800cc26..07234e5 100644
--- a/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/BayesianAnalysis.java
+++ b/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/BayesianAnalysis.java
@@ -327,7 +327,9 @@ public class BayesianAnalysis extends GenericMailet {
                 senderString = mail.getSender().toString();
             }
             if (probability > 0.1) {
-                LOGGER.debug(headerName + ": " + probabilityString + "; From: " + senderString + "; Recipient(s): " + getAddressesString(mail.getRecipients()));
+                if (LOGGER.isDebugEnabled()) {
+                    LOGGER.debug(headerName + ": " + probabilityString + "; From: " + senderString + "; Recipient(s): " + getAddressesString(mail.getRecipients()));
+                }
 
                 // Check if we should tag the subject
                 if (tagSubject) {

http://git-wip-us.apache.org/repos/asf/james-project/blob/b329974d/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/DSNBounce.java
----------------------------------------------------------------------
diff --git a/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/DSNBounce.java b/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/DSNBounce.java
index d3413d5..a6133dc 100755
--- a/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/DSNBounce.java
+++ b/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/DSNBounce.java
@@ -248,7 +248,7 @@ public class DSNBounce extends GenericMailet implements RedirectNotify {
             newMail.setRemoteAddr(getRemoteAddr());
             newMail.setRecipients(getSenderAsList(originalMail));
        
-            if (getInitParameters().isDebug()) {
+            if (getInitParameters().isDebug() && LOGGER.isDebugEnabled()) {
                 LOGGER.debug("New mail - sender: " + newMail.getSender() + ", recipients: " + StringUtils.arrayToString(newMail.getRecipients().toArray()) + ", name: " + newMail.getName() + ", remoteHost: " + newMail.getRemoteHost() + ", remoteAddr: " + newMail.getRemoteAddr() + ", state: " + newMail.getState()
                         + ", lastUpdated: " + newMail.getLastUpdated() + ", errorMessage: " + newMail.getErrorMessage());
             }

http://git-wip-us.apache.org/repos/asf/james-project/blob/b329974d/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/delivery/SimpleMailStore.java
----------------------------------------------------------------------
diff --git a/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/delivery/SimpleMailStore.java b/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/delivery/SimpleMailStore.java
index 369a20d..762dbd1 100644
--- a/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/delivery/SimpleMailStore.java
+++ b/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/delivery/SimpleMailStore.java
@@ -110,7 +110,9 @@ public class SimpleMailStore implements MailStore {
         try {
             return usersRepository.getUser(recipient);
         } catch (UsersRepositoryException e) {
-            LOGGER.warn("Unable to retrieve username for " + recipient.asPrettyString(), e);
+            if (LOGGER.isWarnEnabled()) {
+                LOGGER.warn("Unable to retrieve username for " + recipient.asPrettyString(), e);
+            }
             return recipient.toString();
         }
     }

http://git-wip-us.apache.org/repos/asf/james-project/blob/b329974d/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/jsieve/delivery/SieveExecutor.java
----------------------------------------------------------------------
diff --git a/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/jsieve/delivery/SieveExecutor.java b/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/jsieve/delivery/SieveExecutor.java
index 787eab1..470a7b1 100644
--- a/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/jsieve/delivery/SieveExecutor.java
+++ b/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/jsieve/delivery/SieveExecutor.java
@@ -124,10 +124,14 @@ public class SieveExecutor {
             sieveMessageEvaluate(recipient, aMail, userSieveInformation);
             return true;
         } catch (ScriptNotFoundException e) {
-            LOGGER.info("Can not locate SIEVE script for user " + recipient.asPrettyString());
+            if (LOGGER.isInfoEnabled()) {
+                LOGGER.info("Can not locate SIEVE script for user " + recipient.asPrettyString());
+            }
             return false;
         } catch (Exception ex) {
-            LOGGER.error("Cannot evaluate Sieve script for user " + recipient.asPrettyString(), ex);
+            if (LOGGER.isErrorEnabled()) {
+                LOGGER.error("Cannot evaluate Sieve script for user " + recipient.asPrettyString(), ex);
+            }
             return false;
         }
     }
@@ -137,8 +141,10 @@ public class SieveExecutor {
             SieveMailAdapter aMailAdapter = new SieveMailAdapter(aMail,
                 mailetContext, actionDispatcher, sievePoster, userSieveInformation.getScriptActivationDate(),
                 userSieveInformation.getScriptInterpretationDate(), recipient);
-            // This logging operation is potentially costly
-            LOGGER.debug("Evaluating " + aMailAdapter.toString() + " against \"" + recipient.asPrettyString() + "\"");
+            if (LOGGER.isDebugEnabled()) {
+                // This logging operation is potentially costly
+                LOGGER.debug("Evaluating " + aMailAdapter.toString() + " against \"" + recipient.asPrettyString() + "\"");
+            }
             factory.evaluate(aMailAdapter, factory.parse(userSieveInformation.getScriptContent()));
         } catch (SieveException | ParseException ex) {
             handleFailure(recipient, aMail, ex);

http://git-wip-us.apache.org/repos/asf/james-project/blob/b329974d/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/redirect/MailModifier.java
----------------------------------------------------------------------
diff --git a/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/redirect/MailModifier.java b/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/redirect/MailModifier.java
index f3847e6..8962828 100644
--- a/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/redirect/MailModifier.java
+++ b/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/redirect/MailModifier.java
@@ -110,7 +110,9 @@ public class MailModifier {
         if (!recipients.isEmpty()) {
             mail.setRecipients(recipients);
             if (mailet.getInitParameters().isDebug()) {
-                LOGGER.debug("recipients set to: " + StringUtils.arrayToString(recipients.toArray()));
+                if (LOGGER.isDebugEnabled()) {
+                    LOGGER.debug("recipients set to: " + StringUtils.arrayToString(recipients.toArray()));
+                }
             }
         }
     }

http://git-wip-us.apache.org/repos/asf/james-project/blob/b329974d/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/redirect/ProcessRedirectNotify.java
----------------------------------------------------------------------
diff --git a/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/redirect/ProcessRedirectNotify.java b/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/redirect/ProcessRedirectNotify.java
index 7e4e297..6b888db 100644
--- a/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/redirect/ProcessRedirectNotify.java
+++ b/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/redirect/ProcessRedirectNotify.java
@@ -57,7 +57,7 @@ public class ProcessRedirectNotify {
             mailModifier.setRemoteAddr();
             mailModifier.setRemoteHost();
 
-            if (mailet.getInitParameters().isDebug()) {
+            if (mailet.getInitParameters().isDebug() && LOGGER.isDebugEnabled()) {
                 LOGGER.debug("New mail - sender: " + newMail.getSender() + ", recipients: " + StringUtils.arrayToString(newMail.getRecipients().toArray()) + ", name: " + newMail.getName() + ", remoteHost: " + newMail.getRemoteHost() + ", remoteAddr: " + newMail.getRemoteAddr() + ", state: " + newMail.getState()
                         + ", lastUpdated: " + newMail.getLastUpdated() + ", errorMessage: " + newMail.getErrorMessage());
             }

http://git-wip-us.apache.org/repos/asf/james-project/blob/b329974d/server/mailet/mailets/src/test/java/org/apache/james/samples/mailets/InstrumentationMailet.java
----------------------------------------------------------------------
diff --git a/server/mailet/mailets/src/test/java/org/apache/james/samples/mailets/InstrumentationMailet.java b/server/mailet/mailets/src/test/java/org/apache/james/samples/mailets/InstrumentationMailet.java
index 1515afd..2a5ccdd 100644
--- a/server/mailet/mailets/src/test/java/org/apache/james/samples/mailets/InstrumentationMailet.java
+++ b/server/mailet/mailets/src/test/java/org/apache/james/samples/mailets/InstrumentationMailet.java
@@ -76,76 +76,79 @@ public class InstrumentationMailet implements Mailet {
 
         MimeMessage message = mail.getMessage();
 
-        LOGGER.info("Mail named: " + mail.getName());
+        if (LOGGER.isInfoEnabled()) {
+            LOGGER.info("Mail named: " + mail.getName());
 
-        for (Iterator<String> it = mail.getAttributeNames(); it.hasNext();) {
-            String attributeName = it.next();
-            LOGGER.info("Attribute " + attributeName);
-        }
-        LOGGER.info("Message size: " + mail.getMessageSize());
-        LOGGER.info("Last updated: " + mail.getLastUpdated());
-        LOGGER.info("Remote Address: " + mail.getRemoteAddr());
-        LOGGER.info("Remote Host: " + mail.getRemoteHost());
-        LOGGER.info("State: " + mail.getState());
-        LOGGER.info("Sender host: " + mail.getSender().getDomain());
-        LOGGER.info("Sender user: " + mail.getSender().getLocalPart());
-        Collection<MailAddress> recipients = mail.getRecipients();
-        for (MailAddress address : recipients) {
-            LOGGER.info("Recipient: " + address.getLocalPart() + "@" + address.getDomain());
-        }
-
-        LOGGER.info("Subject: " + message.getSubject());
-        LOGGER.info("MessageID: " + message.getMessageID());
-        LOGGER.info("Received: " + message.getReceivedDate());
-        LOGGER.info("Sent: " + message.getSentDate());
+            for (Iterator<String> it = mail.getAttributeNames(); it.hasNext();) {
+                String attributeName = it.next();
+                LOGGER.info("Attribute " + attributeName);
+            }
+            LOGGER.info("Message size: " + mail.getMessageSize());
+            LOGGER.info("Last updated: " + mail.getLastUpdated());
+            LOGGER.info("Remote Address: " + mail.getRemoteAddr());
+            LOGGER.info("Remote Host: " + mail.getRemoteHost());
+            LOGGER.info("State: " + mail.getState());
+            LOGGER.info("Sender host: " + mail.getSender().getDomain());
+            LOGGER.info("Sender user: " + mail.getSender().getLocalPart());
+            Collection<MailAddress> recipients = mail.getRecipients();
+            for (MailAddress address : recipients) {
+                LOGGER.info("Recipient: " + address.getLocalPart() + "@" + address.getDomain());
+            }
 
-        @SuppressWarnings("unchecked")
-        Enumeration<String> allHeadersLines = message.getAllHeaderLines();
-        while (allHeadersLines.hasMoreElements()) {
-            String header = (String) allHeadersLines.nextElement();
-            LOGGER.info("Header Line:= " + header);
-        }
+            LOGGER.info("Subject: " + message.getSubject());
+            LOGGER.info("MessageID: " + message.getMessageID());
+            LOGGER.info("Received: " + message.getReceivedDate());
+            LOGGER.info("Sent: " + message.getSentDate());
 
-        @SuppressWarnings("unchecked")
-        Enumeration<Header> allHeadersEnumeration = message.getAllHeaders();
-        while (allHeadersEnumeration.hasMoreElements()) {
-            Header header = (Header) allHeadersEnumeration.nextElement();
-            LOGGER.info("Header: " + header.getName() + "=" + header.getValue());
-        }
+            @SuppressWarnings("unchecked")
+            Enumeration<String> allHeadersLines = message.getAllHeaderLines();
+            while (allHeadersLines.hasMoreElements()) {
+                String header = allHeadersLines.nextElement();
+                LOGGER.info("Header Line:= " + header);
+            }
 
-        Address[] to = message.getRecipients(RecipientType.TO);
-        printAddresses(to, "TO: ");
-        Address[] cc = message.getRecipients(RecipientType.CC);
-        printAddresses(cc, "CC: ");
-        Address[] bcc = message.getRecipients(RecipientType.BCC);
-        printAddresses(bcc, "BCC: ");
-
-        Flags flags = message.getFlags();
-        Flag[] systemFlags = flags.getSystemFlags();
-        for (Flag systemFlag : systemFlags) {
-            LOGGER.info("System Flag:" + systemFlag);
-        }
-        String[] userFlags = flags.getUserFlags();
-        for (String userFlag : userFlags) {
-            LOGGER.info("User flag: " + userFlag);
-        }
+            @SuppressWarnings("unchecked")
+            Enumeration<Header> allHeadersEnumeration = message.getAllHeaders();
+            while (allHeadersEnumeration.hasMoreElements()) {
+                Header header = allHeadersEnumeration.nextElement();
+                LOGGER.info("Header: " + header.getName() + "=" + header.getValue());
+            }
 
-        String mimeType = message.getContentType();
-        LOGGER.info("Mime type: " + mimeType);
-        if ("text/plain".equals(mimeType)) {
-            try {
-                Object content = message.getContent();
-                LOGGER.info("Content: " + content);
-            } catch (IOException e) {
-                e.printStackTrace();
+            Address[] to = message.getRecipients(RecipientType.TO);
+            printAddresses(to, "TO: ");
+            Address[] cc = message.getRecipients(RecipientType.CC);
+            printAddresses(cc, "CC: ");
+            Address[] bcc = message.getRecipients(RecipientType.BCC);
+            printAddresses(bcc, "BCC: ");
+
+            Flags flags = message.getFlags();
+            Flag[] systemFlags = flags.getSystemFlags();
+            for (Flag systemFlag : systemFlags) {
+                LOGGER.info("System Flag:" + systemFlag);
             }
+            String[] userFlags = flags.getUserFlags();
+            for (String userFlag : userFlags) {
+                LOGGER.info("User flag: " + userFlag);
+            }
+
+            String mimeType = message.getContentType();
+            LOGGER.info("Mime type: " + mimeType);
+            if ("text/plain".equals(mimeType)) {
+                try {
+                    Object content = message.getContent();
+                    LOGGER.info("Content: " + content);
+                } catch (IOException e) {
+                    e.printStackTrace();
+                }
 
+            }
         }
 
         LOGGER.info("");
         LOGGER.info("######## MAIL ENDS");
     }
 
+    @SuppressWarnings("Slf4jStringConcat")
     private void printAddresses(Address[] addresses, String prefix) {
         for (Address address1 : addresses) {
             if (address1 instanceof InternetAddress) {

http://git-wip-us.apache.org/repos/asf/james-project/blob/b329974d/server/protocols/jmap/src/main/java/org/apache/james/jmap/AuthenticationServlet.java
----------------------------------------------------------------------
diff --git a/server/protocols/jmap/src/main/java/org/apache/james/jmap/AuthenticationServlet.java b/server/protocols/jmap/src/main/java/org/apache/james/jmap/AuthenticationServlet.java
index 0d9b89a..c5a7cc1 100644
--- a/server/protocols/jmap/src/main/java/org/apache/james/jmap/AuthenticationServlet.java
+++ b/server/protocols/jmap/src/main/java/org/apache/james/jmap/AuthenticationServlet.java
@@ -154,7 +154,9 @@ public class AuthenticationServlet extends HttpServlet {
             returnRestartAuthentication(resp);
             break;
         case INVALID:
-            LOG.warn("Use of an invalid ContinuationToken : " + request.getToken().serialize());
+            if (LOG.isWarnEnabled()) {
+                LOG.warn("Use of an invalid ContinuationToken : " + request.getToken().serialize());
+            }
             returnUnauthorizedResponse(resp);
             break;
         case OK:


---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org