[java-support] 03/04: JSPT-81 - Default logging setup in BasicParserPool considered harmful

Ian Young ian at iay.org.uk
Fri Aug 24 06:18:33 EDT 2018


This is an automated email from the git hooks/post-receive script.

iay pushed a commit to branch master
in repository java-support.

View the commit online:
http://git.shibboleth.net/view/?p=java-support.git;a=commit;h=cc05c221bf471eff3a011ec04aab6b81c2b3ed33

commit cc05c221bf471eff3a011ec04aab6b81c2b3ed33
Author: Scott Cantor <cantor.2 at osu.edu>
AuthorDate: Mon Aug 20 09:57:05 2018 -0400

    JSPT-81 - Default logging setup in BasicParserPool considered harmful
    
    https://issues.shibboleth.net/jira/browse/JSPT-81
---
 .../java/support/xml/BasicParserPool.java          |  6 ++--
 .../java/support/xml/LoggingErrorHandler.java      | 42 ++++++++++++++++++----
 2 files changed, 38 insertions(+), 10 deletions(-)

diff --git a/src/main/java/net/shibboleth/utilities/java/support/xml/BasicParserPool.java b/src/main/java/net/shibboleth/utilities/java/support/xml/BasicParserPool.java
index 69e1119..66952bc 100644
--- a/src/main/java/net/shibboleth/utilities/java/support/xml/BasicParserPool.java
+++ b/src/main/java/net/shibboleth/utilities/java/support/xml/BasicParserPool.java
@@ -492,7 +492,7 @@ public class BasicParserPool extends AbstractInitializableComponent implements P
     /**
      * Gets the {@link ErrorHandler}.
      * 
-     * @return the configured entity resolver, may be null
+     * @return the configured error handler
      */
     @Nonnull public ErrorHandler getErrorHandler() {
         return errorHandler;
@@ -587,9 +587,7 @@ public class BasicParserPool extends AbstractInitializableComponent implements P
             builder.setEntityResolver(entityResolver);
         }
         
-        if (errorHandler != null) {
-            builder.setErrorHandler(errorHandler);
-        }
+        builder.setErrorHandler(errorHandler);
     }
 
     /**
diff --git a/src/main/java/net/shibboleth/utilities/java/support/xml/LoggingErrorHandler.java b/src/main/java/net/shibboleth/utilities/java/support/xml/LoggingErrorHandler.java
index 4f4393c..23fdbcd 100644
--- a/src/main/java/net/shibboleth/utilities/java/support/xml/LoggingErrorHandler.java
+++ b/src/main/java/net/shibboleth/utilities/java/support/xml/LoggingErrorHandler.java
@@ -17,43 +17,73 @@
 
 package net.shibboleth.utilities.java.support.xml;
 
+import javax.annotation.Nonnull;
+
 import org.slf4j.Logger;
 import org.xml.sax.ErrorHandler;
 import org.xml.sax.SAXException;
 import org.xml.sax.SAXParseException;
 
+import net.shibboleth.utilities.java.support.logic.Constraint;
+
 /**
  * A SAX error handler that logs errors to a {@link Logger} before rethrowing them.
  */
 public final class LoggingErrorHandler implements ErrorHandler {
 
     /** Error logger. */
-    private Logger log;
+    @Nonnull private Logger log;
+    
+    /** Whether to pass exception to logger. */
+    private boolean logException;
 
     /**
      * Constructor.
      * 
      * @param logger logger errors will be written to
      */
-    public LoggingErrorHandler(final Logger logger) {
-        log = logger;
+    public LoggingErrorHandler(@Nonnull final Logger logger) {
+        log = Constraint.isNotNull(logger, "Logger cannot be null");
+        logException = false;
+    }
+    
+    /**
+     * Set whether to log the exception or just a message.
+     * 
+     * @param flag flag to set
+     */
+    public void setLogException(final boolean flag) {
+        logException = flag;
     }
+    
 
     /** {@inheritDoc} */
     public void error(final SAXParseException exception) throws SAXException {
-        log.error("XML Parsing Error", exception);
+        if (logException) {
+            log.error("XML Parsing Error", exception);
+        } else {
+            log.error("XML Parsing Error");
+        }
         throw exception;
     }
 
     /** {@inheritDoc} */
     public void fatalError(final SAXParseException exception) throws SAXException {
-        log.error("XML Parsing Error", exception);
+        if (logException) {
+            log.error("XML Parsing Error", exception);
+        } else {
+            log.error("XML Parsing Error");
+        }
         throw exception;
     }
 
     /** {@inheritDoc} */
     public void warning(final SAXParseException exception) throws SAXException {
-        log.warn("XML Parsing Error", exception);
+        if (logException) {
+            log.warn("XML Parsing Error", exception);
+        } else {
+            log.warn("XML Parsing Error");
+        }
         throw exception;
     }
 }
\ No newline at end of file

-- 
To stop receiving notification emails like this one, please contact
the administrator of this repository.


More information about the commits mailing list