[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