[java-opensaml] branch master updated: IDP-1319 - Reduce redundant stack traces in log

Scott Cantor cantor.2 at osu.edu
Thu Dec 19 15:31:41 EST 2019


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

scantor pushed a commit to branch master
in repository java-opensaml.

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

The following commit(s) were added to refs/heads/master by this push:
       new  ffbdd26   IDP-1319 - Reduce redundant stack traces in log
ffbdd26 is described below

commit ffbdd26c374777be9a2158a6f857f3e1328a1164
Author: Scott Cantor <cantor.2 at osu.edu>
AuthorDate: Thu Dec 19 15:31:38 2019 -0500

    IDP-1319 - Reduce redundant stack traces in log
    
    https://issues.shibboleth.net/jira/browse/IDP-1319
---
 .../core/config/InitializationService.java         |  2 +-
 .../AbstractXMLObjectProviderInitializer.java      |  2 +-
 .../opensaml/core/xml/config/XMLConfigurator.java  | 10 +++----
 .../core/xml/io/AbstractXMLObjectMarshaller.java   |  2 +-
 .../opensaml/core/xml/XMLObjectBaseTestCase.java   |  2 +-
 .../opensaml/messaging/context/BaseContext.java    | 20 ++-----------
 .../BaseHttpClientResponseXMLMessageDecoder.java   |  4 +--
 .../BaseHttpServletRequestXMLMessageDecoder.java   |  4 +--
 .../BaseHttpClientRequestXMLMessageEncoder.java    |  2 +-
 .../BaseHttpServletResponseXMLMessageEncoder.java  |  2 +-
 .../handler/impl/SchemaValidateXMLMessage.java     |  5 ++--
 .../opensaml/saml/saml2/encryption/Decrypter.java  |  2 +-
 .../PopulateSignatureSigningParametersHandler.java |  2 +-
 .../SAMLAddAttributeConsumingServiceHandler.java   |  2 +-
 .../BaseSAMLSimpleSignatureSecurityHandler.java    |  3 +-
 ...ProtocolMessageXMLSignatureSecurityHandler.java |  3 +-
 .../filter/impl/SchemaValidationFilter.java        |  4 +--
 .../filter/impl/SignatureValidationFilter.java     |  3 +-
 .../impl/AbstractReloadingMetadataResolver.java    |  4 +--
 .../resolver/impl/DOMMetadataResolver.java         |  4 +--
 .../impl/FileBackedHTTPMetadataResolver.java       |  4 +--
 .../resolver/impl/FilesystemMetadataResolver.java  |  2 +-
 .../resolver/impl/HTTPMetadataResolver.java        |  4 +--
 .../impl/ResourceBackedMetadataResolver.java       |  2 +-
 .../binding/decoding/impl/HTTPArtifactDecoder.java |  4 +--
 .../binding/encoding/impl/HTTPArtifactEncoder.java |  2 +-
 .../binding/encoding/impl/HTTPPostEncoder.java     |  4 +--
 .../core/impl/RequestAbstractTypeUnmarshaller.java |  4 +--
 .../impl/ResponseAbstractTypeUnmarshaller.java     |  4 +--
 .../binding/decoding/impl/HTTPArtifactDecoder.java |  4 +--
 .../decoding/impl/HTTPRedirectDeflateDecoder.java  |  2 +-
 .../binding/encoding/impl/HTTPArtifactEncoder.java |  4 +--
 .../binding/encoding/impl/HTTPPostEncoder.java     |  4 +--
 .../encoding/impl/HTTPPostSimpleSignEncoder.java   |  9 +++---
 .../encoding/impl/HTTPRedirectDeflateEncoder.java  |  2 +-
 .../SAML2HTTPPostSimpleSignSecurityHandler.java    | 13 +++++----
 ...TTPRedirectDeflateSignatureSecurityHandler.java |  4 +--
 .../security/impl/MetadataCredentialResolver.java  |  2 +-
 .../impl/SAMLSignatureProfileValidator.java        |  6 ++--
 .../org/opensaml/security/crypto/SigningUtil.java  |  6 ++--
 .../org/opensaml/security/x509/X509Support.java    |  2 +-
 .../impl/EvaluableCredentialCriteriaRegistry.java  |  2 +-
 .../impl/KeyStoreCredentialResolver.java           |  3 +-
 .../impl/SecurityEnhancedTLSSocketFactory.java     |  2 +-
 .../impl/BaseTrustEngineSecurityHandler.java       |  3 +-
 ...opulateHttpClientSecurityParametersHandler.java |  2 +-
 .../trust/impl/TrustEngineX509TrustManager.java    |  2 +-
 .../x509/impl/CertPathPKIXTrustEvaluator.java      |  2 +-
 .../http/AbstractPipelineHttpSOAPClient.java       |  4 +--
 .../client/http/PipelineFactoryHttpSOAPClient.java |  4 +--
 .../http/impl/HttpClientResponseSOAP11Decoder.java |  9 ++----
 .../decoder/http/impl/HTTPSOAP11Decoder.java       |  4 +--
 .../opensaml/storage/impl/LDAPStorageService.java  | 32 +++++---------------
 .../xmlsec/encryption/support/Decrypter.java       | 34 +++++++++++-----------
 .../xmlsec/encryption/support/Encrypter.java       | 18 ++++++------
 .../opensaml/xmlsec/keyinfo/KeyInfoSupport.java    |  4 +--
 .../xmlsec/signature/support/SignatureSupport.java |  2 +-
 .../impl/provider/DEREncodedKeyValueProvider.java  |  2 +-
 .../keyinfo/impl/provider/DSAKeyValueProvider.java |  2 +-
 .../impl/provider/InlineX509DataProvider.java      |  4 +--
 .../keyinfo/impl/provider/RSAKeyValueProvider.java |  2 +-
 ...pulateSignatureValidationParametersHandler.java |  2 +-
 .../xmlsec/signature/impl/SignatureMarshaller.java |  2 +-
 .../support/impl/SignatureAlgorithmValidator.java  |  4 +--
 .../ApacheSantuarioSignerProviderImpl.java         |  4 +--
 65 files changed, 147 insertions(+), 172 deletions(-)

diff --git a/opensaml-core/src/main/java/org/opensaml/core/config/InitializationService.java b/opensaml-core/src/main/java/org/opensaml/core/config/InitializationService.java
index a10057a..a203e05 100644
--- a/opensaml-core/src/main/java/org/opensaml/core/config/InitializationService.java
+++ b/opensaml-core/src/main/java/org/opensaml/core/config/InitializationService.java
@@ -55,7 +55,7 @@ public class InitializationService {
             try {
                 initializer.init();
             } catch (final InitializationException e) {
-                log.error("Error initializing module", e);
+                log.error("Error initializing module: {}", e.getMessage());
                 throw e;
             }
         }
diff --git a/opensaml-core/src/main/java/org/opensaml/core/xml/config/AbstractXMLObjectProviderInitializer.java b/opensaml-core/src/main/java/org/opensaml/core/xml/config/AbstractXMLObjectProviderInitializer.java
index 8020d9d..b9fc7de 100644
--- a/opensaml-core/src/main/java/org/opensaml/core/xml/config/AbstractXMLObjectProviderInitializer.java
+++ b/opensaml-core/src/main/java/org/opensaml/core/xml/config/AbstractXMLObjectProviderInitializer.java
@@ -57,7 +57,7 @@ public abstract class AbstractXMLObjectProviderInitializer implements Initialize
                 }
             }
         } catch (final XMLConfigurationException e) {
-            log.error("Problem loading configuration resource", e);
+            log.error("Problem loading configuration resource: {}", e.getMessage());
             throw new InitializationException("Problem loading configuration resource", e);
         }
     }
diff --git a/opensaml-core/src/main/java/org/opensaml/core/xml/config/XMLConfigurator.java b/opensaml-core/src/main/java/org/opensaml/core/xml/config/XMLConfigurator.java
index f9c6f2b..11c08b7 100644
--- a/opensaml-core/src/main/java/org/opensaml/core/xml/config/XMLConfigurator.java
+++ b/opensaml-core/src/main/java/org/opensaml/core/xml/config/XMLConfigurator.java
@@ -161,7 +161,7 @@ public class XMLConfigurator {
             final Document configuration = parserPool.parse(configurationStream);
             load(configuration);
         } catch (final XMLParserException e) {
-            log.error("Invalid configuration file", e);
+            log.error("Invalid configuration file: {}", e.getMessage());
             throw new XMLConfigurationException("Unable to create DocumentBuilder", e);
         }
 
@@ -251,7 +251,7 @@ public class XMLConfigurator {
 
                 log.debug("{} initialized and configuration cached", objectProviderName);
             } catch (final XMLConfigurationException e) {
-                log.error("Error initializing object provier {}", objectProvider, e);
+                log.error("Error initializing object provier {}: {}", objectProvider, e.getMessage());
                 // clean up any parts of the object provider that might have been registered before the failure
                 getRegistry().deregisterObjectProvider(objectProviderName);
                 throw e;
@@ -314,7 +314,7 @@ public class XMLConfigurator {
             return constructor.newInstance();
         } catch (final Throwable t) {
             final String errorMsg = "Cannot create instance of " + className;
-            log.error(errorMsg, t);
+            log.error(errorMsg + ": {}", t.getMessage());
             throw new XMLConfigurationException(errorMsg, t);
         }
     }
@@ -333,11 +333,11 @@ public class XMLConfigurator {
         } catch (final IOException e) {
             // Should never get here as the DOM is already in memory
             final String errorMsg = "Unable to read configuration file DOM";
-            log.error(errorMsg, e);
+            log.error(errorMsg + ": {}", e.getMessage());
             throw new XMLConfigurationException(errorMsg, e);
         } catch (final SAXException e) {
             final String errorMsg = "Configuration file does not validate against schema";
-            log.error(errorMsg, e);
+            log.error(errorMsg + ": {}", e.getMessage());
             throw new XMLConfigurationException(errorMsg, e);
         }
     }
diff --git a/opensaml-core/src/main/java/org/opensaml/core/xml/io/AbstractXMLObjectMarshaller.java b/opensaml-core/src/main/java/org/opensaml/core/xml/io/AbstractXMLObjectMarshaller.java
index 969a5c1..fc8a87e 100644
--- a/opensaml-core/src/main/java/org/opensaml/core/xml/io/AbstractXMLObjectMarshaller.java
+++ b/opensaml-core/src/main/java/org/opensaml/core/xml/io/AbstractXMLObjectMarshaller.java
@@ -422,7 +422,7 @@ public abstract class AbstractXMLObjectMarshaller implements Marshaller {
             } catch (final DOMException e) {
                 final String errorMsg = "Unable to root namespaces of cached DOM element, "
                         + domCachingObject.getElementQName();
-                log.error(errorMsg, e);
+                log.error(errorMsg + ": {}", e.getMessage());
                 throw new MarshallingException(errorMsg, e);
             }
 
diff --git a/opensaml-core/src/test/java/org/opensaml/core/xml/XMLObjectBaseTestCase.java b/opensaml-core/src/test/java/org/opensaml/core/xml/XMLObjectBaseTestCase.java
index 9963dfc..1d1a68b 100644
--- a/opensaml-core/src/test/java/org/opensaml/core/xml/XMLObjectBaseTestCase.java
+++ b/opensaml-core/src/test/java/org/opensaml/core/xml/XMLObjectBaseTestCase.java
@@ -82,7 +82,7 @@ public abstract class XMLObjectBaseTestCase extends OpenSAMLInitBaseTestCase {
             marshallerFactory = XMLObjectProviderRegistrySupport.getMarshallerFactory();
             unmarshallerFactory = XMLObjectProviderRegistrySupport.getUnmarshallerFactory();
         } catch (Exception e) {
-            log.error("Can not initialize XMLObjectBaseTestCase", e);
+            log.error("Can not initialize XMLObjectBaseTestCase: {}", e.getMessage());
             throw e;
         }
     }
diff --git a/opensaml-messaging-api/src/main/java/org/opensaml/messaging/context/BaseContext.java b/opensaml-messaging-api/src/main/java/org/opensaml/messaging/context/BaseContext.java
index 527cfff..f4c14e5 100644
--- a/opensaml-messaging-api/src/main/java/org/opensaml/messaging/context/BaseContext.java
+++ b/opensaml-messaging-api/src/main/java/org/opensaml/messaging/context/BaseContext.java
@@ -303,23 +303,9 @@ public abstract class BaseContext implements Iterable<BaseContext> {
         try {
             constructor = clazz.getConstructor();
             return constructor.newInstance();
-        } catch (final SecurityException e) {
-            log.error("Security error on creating subcontext", e);
-            throw new MessageRuntimeException("Error creating subcontext", e);
-        } catch (final NoSuchMethodException e) {
-            log.error("No such method error on creating subcontext", e);
-            throw new MessageRuntimeException("Error creating subcontext", e);
-        } catch (final IllegalArgumentException e) {
-            log.error("Illegal argument error on creating subcontext", e);
-            throw new MessageRuntimeException("Error creating subcontext", e);
-        } catch (final InstantiationException e) {
-            log.error("Instantiation error on creating subcontext", e);
-            throw new MessageRuntimeException("Error creating subcontext", e);
-        } catch (final IllegalAccessException e) {
-            log.error("Illegal access error on creating subcontext", e);
-            throw new MessageRuntimeException("Error creating subcontext", e);
-        } catch (final InvocationTargetException e) {
-            log.error("Invocation target error on creating subcontext", e);
+        } catch (final SecurityException|NoSuchMethodException|IllegalArgumentException|InstantiationException|
+                    IllegalAccessException|InvocationTargetException e) {
+            log.error("Error creating subcontext: {}", e.getMessage());
             throw new MessageRuntimeException("Error creating subcontext", e);
         }
     }
diff --git a/opensaml-messaging-api/src/main/java/org/opensaml/messaging/decoder/httpclient/BaseHttpClientResponseXMLMessageDecoder.java b/opensaml-messaging-api/src/main/java/org/opensaml/messaging/decoder/httpclient/BaseHttpClientResponseXMLMessageDecoder.java
index d321ad1..b157f2b 100644
--- a/opensaml-messaging-api/src/main/java/org/opensaml/messaging/decoder/httpclient/BaseHttpClientResponseXMLMessageDecoder.java
+++ b/opensaml-messaging-api/src/main/java/org/opensaml/messaging/decoder/httpclient/BaseHttpClientResponseXMLMessageDecoder.java
@@ -146,10 +146,10 @@ public abstract class BaseHttpClientResponseXMLMessageDecoder extends AbstractHt
             final XMLObject message = XMLObjectSupport.unmarshallFromInputStream(getParserPool(), messageStream);
             return message;
         } catch (final XMLParserException e) {
-            log.error("Error unmarshalling message from input stream", e);
+            log.error("Error unmarshalling message from input stream: {}", e.getMessage());
             throw new MessageDecodingException("Error unmarshalling message from input stream", e);
         } catch (final UnmarshallingException e) {
-            log.error("Error unmarshalling message from input stream", e);
+            log.error("Error unmarshalling message from input stream: {}", e.getMessage());
             throw new MessageDecodingException("Error unmarshalling message from input stream", e);
         }
     }
diff --git a/opensaml-messaging-api/src/main/java/org/opensaml/messaging/decoder/servlet/BaseHttpServletRequestXMLMessageDecoder.java b/opensaml-messaging-api/src/main/java/org/opensaml/messaging/decoder/servlet/BaseHttpServletRequestXMLMessageDecoder.java
index 395a07a..a20c79b 100644
--- a/opensaml-messaging-api/src/main/java/org/opensaml/messaging/decoder/servlet/BaseHttpServletRequestXMLMessageDecoder.java
+++ b/opensaml-messaging-api/src/main/java/org/opensaml/messaging/decoder/servlet/BaseHttpServletRequestXMLMessageDecoder.java
@@ -151,10 +151,10 @@ public abstract class BaseHttpServletRequestXMLMessageDecoder extends AbstractHt
             final XMLObject message = XMLObjectSupport.unmarshallFromInputStream(getParserPool(), messageStream);
             return message;
         } catch (final XMLParserException e) {
-            log.error("Error unmarshalling message from input stream", e);
+            log.error("Error unmarshalling message from input stream: {}", e.getMessage());
             throw new MessageDecodingException("Error unmarshalling message from input stream", e);
         } catch (final UnmarshallingException e) {
-            log.error("Error unmarshalling message from input stream", e);
+            log.error("Error unmarshalling message from input stream: {}", e.getMessage());
             throw new MessageDecodingException("Error unmarshalling message from input stream", e);
         }
     }
diff --git a/opensaml-messaging-api/src/main/java/org/opensaml/messaging/encoder/httpclient/BaseHttpClientRequestXMLMessageEncoder.java b/opensaml-messaging-api/src/main/java/org/opensaml/messaging/encoder/httpclient/BaseHttpClientRequestXMLMessageEncoder.java
index b3d169b..fdc7b89 100644
--- a/opensaml-messaging-api/src/main/java/org/opensaml/messaging/encoder/httpclient/BaseHttpClientRequestXMLMessageEncoder.java
+++ b/opensaml-messaging-api/src/main/java/org/opensaml/messaging/encoder/httpclient/BaseHttpClientRequestXMLMessageEncoder.java
@@ -98,7 +98,7 @@ public abstract class BaseHttpClientRequestXMLMessageEncoder  extends AbstractHt
         try {
             return XMLObjectSupport.marshall(message);
         } catch (final MarshallingException e) {
-            log.error("Error marshalling message", e);
+            log.error("Error marshalling message: {}", e.getMessage());
             throw new MessageEncodingException("Error marshalling message", e);
         }
     }
diff --git a/opensaml-messaging-api/src/main/java/org/opensaml/messaging/encoder/servlet/BaseHttpServletResponseXMLMessageEncoder.java b/opensaml-messaging-api/src/main/java/org/opensaml/messaging/encoder/servlet/BaseHttpServletResponseXMLMessageEncoder.java
index 60e0dbb..c99f503 100644
--- a/opensaml-messaging-api/src/main/java/org/opensaml/messaging/encoder/servlet/BaseHttpServletResponseXMLMessageEncoder.java
+++ b/opensaml-messaging-api/src/main/java/org/opensaml/messaging/encoder/servlet/BaseHttpServletResponseXMLMessageEncoder.java
@@ -98,7 +98,7 @@ public abstract class BaseHttpServletResponseXMLMessageEncoder  extends Abstract
         try {
             return XMLObjectSupport.marshall(message);
         } catch (final MarshallingException e) {
-            log.error("Error marshalling message", e);
+            log.error("Error marshalling message: {}", e.getMessage());
             throw new MessageEncodingException("Error marshalling message", e);
         }
     }
diff --git a/opensaml-messaging-impl/src/main/java/org/opensaml/messaging/handler/impl/SchemaValidateXMLMessage.java b/opensaml-messaging-impl/src/main/java/org/opensaml/messaging/handler/impl/SchemaValidateXMLMessage.java
index 209530d..7c55b36 100644
--- a/opensaml-messaging-impl/src/main/java/org/opensaml/messaging/handler/impl/SchemaValidateXMLMessage.java
+++ b/opensaml-messaging-impl/src/main/java/org/opensaml/messaging/handler/impl/SchemaValidateXMLMessage.java
@@ -105,10 +105,11 @@ public class SchemaValidateXMLMessage extends AbstractMessageHandler {
             final Validator schemaValidator = validationSchema.newValidator();
             schemaValidator.validate(new DOMSource(message.getDOM()));
         } catch (final SAXException e) {
-            log.debug("{} Message {} is not schema-valid", getLogPrefix(), message.getElementQName(), e);
+            log.debug("{} Message {} is not schema-valid: {}", getLogPrefix(), message.getElementQName(),
+                    e.getMessage());
             throw new MessageHandlerException("Message is not schema-valid.", e);
         } catch (final IOException e) {
-            log.debug("{} Unable to read message", getLogPrefix(), e);
+            log.debug("{} Unable to read message: {}", getLogPrefix(), e.getMessage());
             throw new MessageHandlerException("Unable to read message.", e);
         }
 
diff --git a/opensaml-saml-api/src/main/java/org/opensaml/saml/saml2/encryption/Decrypter.java b/opensaml-saml-api/src/main/java/org/opensaml/saml/saml2/encryption/Decrypter.java
index 9723781..88c8530 100644
--- a/opensaml-saml-api/src/main/java/org/opensaml/saml/saml2/encryption/Decrypter.java
+++ b/opensaml-saml-api/src/main/java/org/opensaml/saml/saml2/encryption/Decrypter.java
@@ -175,7 +175,7 @@ public class Decrypter extends org.opensaml.xmlsec.encryption.support.Decrypter
         try {
             xmlObject = decryptData(encElement.getEncryptedData(), isRootInNewDocument());
         } catch (final DecryptionException e) {
-            log.error("SAML Decrypter encountered an error decrypting element content", e);
+            log.error("SAML Decrypter encountered an error decrypting element content: {}", e.getMessage());
             throw e; 
         }
         
diff --git a/opensaml-saml-impl/src/main/java/org/opensaml/saml/common/binding/impl/PopulateSignatureSigningParametersHandler.java b/opensaml-saml-impl/src/main/java/org/opensaml/saml/common/binding/impl/PopulateSignatureSigningParametersHandler.java
index 5d526e5..c48f396 100644
--- a/opensaml-saml-impl/src/main/java/org/opensaml/saml/common/binding/impl/PopulateSignatureSigningParametersHandler.java
+++ b/opensaml-saml-impl/src/main/java/org/opensaml/saml/common/binding/impl/PopulateSignatureSigningParametersHandler.java
@@ -246,7 +246,7 @@ public class PopulateSignatureSigningParametersHandler extends AbstractMessageHa
                     params != null ? "Resolved" : "Failed to resolve");
             paramsCtx.setSignatureSigningParameters(params);
         } catch (final ResolverException e) {
-            log.error("{} Error resolving SignatureSigningParameters", getLogPrefix(), e);
+            log.error("{} Error resolving SignatureSigningParameters: {}", getLogPrefix(), e.getMessage());
             throw new MessageHandlerException("Error resolving SignatureSigningParameters", e);
         }
     }
diff --git a/opensaml-saml-impl/src/main/java/org/opensaml/saml/common/binding/impl/SAMLAddAttributeConsumingServiceHandler.java b/opensaml-saml-impl/src/main/java/org/opensaml/saml/common/binding/impl/SAMLAddAttributeConsumingServiceHandler.java
index 4b8133f..d01cc77 100644
--- a/opensaml-saml-impl/src/main/java/org/opensaml/saml/common/binding/impl/SAMLAddAttributeConsumingServiceHandler.java
+++ b/opensaml-saml-impl/src/main/java/org/opensaml/saml/common/binding/impl/SAMLAddAttributeConsumingServiceHandler.java
@@ -177,7 +177,7 @@ public class SAMLAddAttributeConsumingServiceHandler extends AbstractMessageHand
                 newAcs.getRequestedAttributes().add(
                         XMLObjectSupport.cloneXMLObject(attribute, CloneOutputOption.DropDOM));
             } catch (final MarshallingException | UnmarshallingException e) {
-                log.warn("{} Error cloning requested Attributes", getLogPrefix(), e);
+                log.warn("{} Error cloning requested Attributes: {}", getLogPrefix(), e.getMessage());
                 throw new MessageHandlerException(e);
             }
         }
diff --git a/opensaml-saml-impl/src/main/java/org/opensaml/saml/common/binding/security/impl/BaseSAMLSimpleSignatureSecurityHandler.java b/opensaml-saml-impl/src/main/java/org/opensaml/saml/common/binding/security/impl/BaseSAMLSimpleSignatureSecurityHandler.java
index 8adcba5..cd3addf 100644
--- a/opensaml-saml-impl/src/main/java/org/opensaml/saml/common/binding/security/impl/BaseSAMLSimpleSignatureSecurityHandler.java
+++ b/opensaml-saml-impl/src/main/java/org/opensaml/saml/common/binding/security/impl/BaseSAMLSimpleSignatureSecurityHandler.java
@@ -285,7 +285,8 @@ public abstract class BaseSAMLSimpleSignatureSecurityHandler extends AbstractMes
             log.warn("{} Signature validation using request-derived credentials failed", getLogPrefix());
             return false;
         } catch (final SecurityException e) {
-            log.warn("{} Error evaluating the request's simple signature using the trust engine", getLogPrefix(), e);
+            log.warn("{} Error evaluating the request's simple signature using the trust engine: {}", getLogPrefix(),
+                    e.getMessage());
             throw new MessageHandlerException("Error during trust engine evaluation of the simple signature", e);
         }
     }
diff --git a/opensaml-saml-impl/src/main/java/org/opensaml/saml/common/binding/security/impl/SAMLProtocolMessageXMLSignatureSecurityHandler.java b/opensaml-saml-impl/src/main/java/org/opensaml/saml/common/binding/security/impl/SAMLProtocolMessageXMLSignatureSecurityHandler.java
index b19213d..a8ae111 100644
--- a/opensaml-saml-impl/src/main/java/org/opensaml/saml/common/binding/security/impl/SAMLProtocolMessageXMLSignatureSecurityHandler.java
+++ b/opensaml-saml-impl/src/main/java/org/opensaml/saml/common/binding/security/impl/SAMLProtocolMessageXMLSignatureSecurityHandler.java
@@ -164,7 +164,8 @@ public class SAMLProtocolMessageXMLSignatureSecurityHandler extends BaseSAMLXMLS
             try {
                 getSignaturePrevalidator().validate(signature);
             } catch (final SignatureException e) {
-                log.debug("{} Protocol message signature failed signature pre-validation", getLogPrefix(), e);
+                log.debug("{} Protocol message signature failed signature pre-validation: {}", getLogPrefix(),
+                        e.getMessage());
                 throw new MessageHandlerException("Protocol message signature failed signature pre-validation", e);
             }
         }
diff --git a/opensaml-saml-impl/src/main/java/org/opensaml/saml/metadata/resolver/filter/impl/SchemaValidationFilter.java b/opensaml-saml-impl/src/main/java/org/opensaml/saml/metadata/resolver/filter/impl/SchemaValidationFilter.java
index 7d2600c..a14a1c9 100644
--- a/opensaml-saml-impl/src/main/java/org/opensaml/saml/metadata/resolver/filter/impl/SchemaValidationFilter.java
+++ b/opensaml-saml-impl/src/main/java/org/opensaml/saml/metadata/resolver/filter/impl/SchemaValidationFilter.java
@@ -70,14 +70,14 @@ public class SchemaValidationFilter implements MetadataFilter {
         try {
             schemaValidator = samlSchemaBuilder.getSAMLSchema().newValidator();
         } catch (final SAXException e) {
-            log.error("Unable to build metadata validation schema", e);
+            log.error("Unable to build metadata validation schema: {}", e.getMessage());
             throw new FilterException("Unable to build metadata validation schema", e);
         }
 
         try {
             schemaValidator.validate(new DOMSource(metadata.getDOM()));
         } catch (final Exception e) {
-            log.error("Incoming metadata was not schema valid", e);
+            log.error("Incoming metadata was not schema valid: {}", e.getMessage());
             throw new FilterException("Incoming metadata was not schema valid", e);
         }
         
diff --git a/opensaml-saml-impl/src/main/java/org/opensaml/saml/metadata/resolver/filter/impl/SignatureValidationFilter.java b/opensaml-saml-impl/src/main/java/org/opensaml/saml/metadata/resolver/filter/impl/SignatureValidationFilter.java
index 29df13a..d7a5074 100644
--- a/opensaml-saml-impl/src/main/java/org/opensaml/saml/metadata/resolver/filter/impl/SignatureValidationFilter.java
+++ b/opensaml-saml-impl/src/main/java/org/opensaml/saml/metadata/resolver/filter/impl/SignatureValidationFilter.java
@@ -452,7 +452,8 @@ public class SignatureValidationFilter implements MetadataFilter {
             try {
                 getSignaturePrevalidator().validate(signature);
             } catch (final SignatureException e) {
-                log.error("Signature on metadata entry '{}' failed signature pre-validation", metadataEntryName);
+                log.error("Signature on metadata entry '{}' failed signature pre-validation: {}", metadataEntryName,
+                        e.getMessage());
                 throw new FilterException("Metadata instance signature failed signature pre-validation", e);
             }
         }
diff --git a/opensaml-saml-impl/src/main/java/org/opensaml/saml/metadata/resolver/impl/AbstractReloadingMetadataResolver.java b/opensaml-saml-impl/src/main/java/org/opensaml/saml/metadata/resolver/impl/AbstractReloadingMetadataResolver.java
index 2c6ccf3..efbcba5 100644
--- a/opensaml-saml-impl/src/main/java/org/opensaml/saml/metadata/resolver/impl/AbstractReloadingMetadataResolver.java
+++ b/opensaml-saml-impl/src/main/java/org/opensaml/saml/metadata/resolver/impl/AbstractReloadingMetadataResolver.java
@@ -447,7 +447,7 @@ public abstract class AbstractReloadingMetadataResolver extends AbstractBatchMet
             return unmarshallMetadata(new ByteArrayInputStream(metadataBytes));
         } catch (final UnmarshallingException e) {
             final String errorMsg = "Unable to unmarshall metadata";
-            log.error("{} " + errorMsg, getLogPrefix());
+            log.error("{} {}: {}", getLogPrefix(), errorMsg, e.getMessage());
             throw new ResolverException(errorMsg, e);
         }
     }
@@ -534,7 +534,7 @@ public abstract class AbstractReloadingMetadataResolver extends AbstractBatchMet
             newBackingStore = preProcessNewMetadata(metadata);
         } catch (final FilterException e) {
             final String errMsg = "Error filtering metadata from " + metadataIdentifier;
-            log.error("{} " + errMsg, getLogPrefix(), e);
+            log.error("{} {}: {}", getLogPrefix(), errMsg, e.getMessage());
             throw new ResolverException(errMsg, e);
         }
 
diff --git a/opensaml-saml-impl/src/main/java/org/opensaml/saml/metadata/resolver/impl/DOMMetadataResolver.java b/opensaml-saml-impl/src/main/java/org/opensaml/saml/metadata/resolver/impl/DOMMetadataResolver.java
index ad88071..896daa2 100644
--- a/opensaml-saml-impl/src/main/java/org/opensaml/saml/metadata/resolver/impl/DOMMetadataResolver.java
+++ b/opensaml-saml-impl/src/main/java/org/opensaml/saml/metadata/resolver/impl/DOMMetadataResolver.java
@@ -71,11 +71,11 @@ public class DOMMetadataResolver extends AbstractBatchMetadataResolver {
             setBackingStore(newBackingStore);
         } catch (final UnmarshallingException e) {
             final String errorMsg = "Unable to unmarshall metadata element";
-            log.error("{} " + errorMsg, getLogPrefix(), e);
+            log.error("{} {}: {}", getLogPrefix(), errorMsg, e.getMessage());
             throw new ComponentInitializationException(errorMsg, e);
         } catch (final FilterException e) {
             final String errorMsg = "Unable to filter metadata";
-            log.error("{} " + errorMsg, getLogPrefix(), e);
+            log.error("{} {}: {}", getLogPrefix(), errorMsg, e.getMessage());
             throw new ComponentInitializationException(errorMsg, e);
         }
     }
diff --git a/opensaml-saml-impl/src/main/java/org/opensaml/saml/metadata/resolver/impl/FileBackedHTTPMetadataResolver.java b/opensaml-saml-impl/src/main/java/org/opensaml/saml/metadata/resolver/impl/FileBackedHTTPMetadataResolver.java
index 458db2b..94683d6 100644
--- a/opensaml-saml-impl/src/main/java/org/opensaml/saml/metadata/resolver/impl/FileBackedHTTPMetadataResolver.java
+++ b/opensaml-saml-impl/src/main/java/org/opensaml/saml/metadata/resolver/impl/FileBackedHTTPMetadataResolver.java
@@ -242,7 +242,7 @@ public class FileBackedHTTPMetadataResolver extends HTTPMetadataResolver {
                 backupFile.createNewFile();
             } catch (final IOException e) {
                 final String msg = "Unable to create backup file " + backupFile.getAbsolutePath();
-                log.error("{} " + msg, getLogPrefix(), e);
+                log.error("{} {}: {}", getLogPrefix(), msg, e.getMessage());
                 throw new ResolverException(msg, e);
             } finally {
                 // Don't leave the empty test file lying around if it didin't originally exist.
@@ -310,7 +310,7 @@ public class FileBackedHTTPMetadataResolver extends HTTPMetadataResolver {
                 } catch (final IOException ioe) {
                     final String errMsg = "Unable to retrieve metadata from backup file "
                             + metadataBackupFile.getAbsolutePath();
-                    log.error("{} " + errMsg, getLogPrefix(), ioe);
+                    log.error("{} {}: {}", getLogPrefix(), errMsg, ioe.getMessage());
                     throw new ResolverException(errMsg, ioe);
                 }
             }
diff --git a/opensaml-saml-impl/src/main/java/org/opensaml/saml/metadata/resolver/impl/FilesystemMetadataResolver.java b/opensaml-saml-impl/src/main/java/org/opensaml/saml/metadata/resolver/impl/FilesystemMetadataResolver.java
index c649b8f..1c6a26d 100644
--- a/opensaml-saml-impl/src/main/java/org/opensaml/saml/metadata/resolver/impl/FilesystemMetadataResolver.java
+++ b/opensaml-saml-impl/src/main/java/org/opensaml/saml/metadata/resolver/impl/FilesystemMetadataResolver.java
@@ -123,7 +123,7 @@ public class FilesystemMetadataResolver extends AbstractReloadingMetadataResolve
             return null;
         } catch (final IOException e) {
             final String errMsg = "Unable to read metadata file " + metadataFile.getAbsolutePath();
-            log.error("{} " + errMsg, getLogPrefix(), e);
+            log.error("{} {}: {}", getLogPrefix(), errMsg, e.getMessage());
             throw new ResolverException(errMsg, e);
         }
     }
diff --git a/opensaml-saml-impl/src/main/java/org/opensaml/saml/metadata/resolver/impl/HTTPMetadataResolver.java b/opensaml-saml-impl/src/main/java/org/opensaml/saml/metadata/resolver/impl/HTTPMetadataResolver.java
index 2617cf2..1618d9e 100644
--- a/opensaml-saml-impl/src/main/java/org/opensaml/saml/metadata/resolver/impl/HTTPMetadataResolver.java
+++ b/opensaml-saml-impl/src/main/java/org/opensaml/saml/metadata/resolver/impl/HTTPMetadataResolver.java
@@ -235,7 +235,7 @@ public class HTTPMetadataResolver extends AbstractReloadingMetadataResolver {
             return rawMetadata;
         } catch (final IOException e) {
             final String errMsg = "Error retrieving metadata from " + metadataURI;
-            log.error("{} " + errMsg, getLogPrefix(), e);
+            log.error("{} {}: {}", getLogPrefix(), errMsg, e.getMessage());
             throw new ResolverException(errMsg, e);
         } finally {
             try {
@@ -318,7 +318,7 @@ public class HTTPMetadataResolver extends AbstractReloadingMetadataResolver {
             final InputStream ins = response.getEntity().getContent();
             return inputstreamToByteArray(ins);
         } catch (final IOException e) {
-            log.error("{} Unable to read response", getLogPrefix(), e);
+            log.error("{} Unable to read response: {}", getLogPrefix(), e.getMessage());
             throw new ResolverException("Unable to read response", e);
         } finally {
             // Make sure entity has been completely consumed.
diff --git a/opensaml-saml-impl/src/main/java/org/opensaml/saml/metadata/resolver/impl/ResourceBackedMetadataResolver.java b/opensaml-saml-impl/src/main/java/org/opensaml/saml/metadata/resolver/impl/ResourceBackedMetadataResolver.java
index d941ea1..7a5ec58 100644
--- a/opensaml-saml-impl/src/main/java/org/opensaml/saml/metadata/resolver/impl/ResourceBackedMetadataResolver.java
+++ b/opensaml-saml-impl/src/main/java/org/opensaml/saml/metadata/resolver/impl/ResourceBackedMetadataResolver.java
@@ -102,7 +102,7 @@ public class ResourceBackedMetadataResolver extends AbstractReloadingMetadataRes
             return null;
         } catch (final IOException e) {
             final String errorMsg = "Unable to read metadata file";
-            log.error("{} " + errorMsg, getLogPrefix(), e);
+            log.error("{} {}: {}", getLogPrefix(), errorMsg, e.getMessage());
             throw new ResolverException(errorMsg, e);
         }
     }
diff --git a/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml1/binding/decoding/impl/HTTPArtifactDecoder.java b/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml1/binding/decoding/impl/HTTPArtifactDecoder.java
index 08ee098..81dbfad 100644
--- a/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml1/binding/decoding/impl/HTTPArtifactDecoder.java
+++ b/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml1/binding/decoding/impl/HTTPArtifactDecoder.java
@@ -116,8 +116,8 @@ public class HTTPArtifactDecoder extends BaseHttpServletRequestXMLMessageDecoder
             throws MessageDecodingException {
         final String[] encodedArtifacts = request.getParameterValues("SAMLart");
         if (encodedArtifacts == null || encodedArtifacts.length == 0) {
-            log.error("URL SAMLart parameter was missing or did not contain a value.");
-            throw new MessageDecodingException("URL SAMLart parameter was missing or did not contain a value.");
+            log.error("URL SAMLart parameter was missing or did not contain a value");
+            throw new MessageDecodingException("URL SAMLart parameter was missing or did not contain a value");
         }
         
         // TODO decode artifact(s); resolve issuer resolution endpoint; dereference using 
diff --git a/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml1/binding/encoding/impl/HTTPArtifactEncoder.java b/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml1/binding/encoding/impl/HTTPArtifactEncoder.java
index 622a491..7b28a71 100644
--- a/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml1/binding/encoding/impl/HTTPArtifactEncoder.java
+++ b/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml1/binding/encoding/impl/HTTPArtifactEncoder.java
@@ -172,7 +172,7 @@ public class HTTPArtifactEncoder extends BaseSAML1MessageEncoder {
             try {
                 artifactMap.put(artifactString, requester, issuer, assertion);
             } catch (final IOException e) {
-                log.error("Unable to store assertion mapping for artifact", e);
+                log.error("Unable to store assertion mapping for artifact: {}", e.getMessage());
                 throw new MessageEncodingException("Unable to store assertion mapping for artifact", e);
             }
             queryParams.add(new Pair<>("SAMLart", artifactString));
diff --git a/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml1/binding/encoding/impl/HTTPPostEncoder.java b/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml1/binding/encoding/impl/HTTPPostEncoder.java
index ba20312..d440a8d 100644
--- a/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml1/binding/encoding/impl/HTTPPostEncoder.java
+++ b/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml1/binding/encoding/impl/HTTPPostEncoder.java
@@ -187,10 +187,10 @@ public class HTTPPostEncoder extends BaseSAML1MessageEncoder {
             velocityEngine.mergeTemplate(velocityTemplateId, "UTF-8", context, out);
             out.flush();
         } catch (final UnsupportedEncodingException e) {
-            log.error("UTF-8 encoding is not supported, this VM is not Java compliant.");
+            log.error("UTF-8 encoding is not supported, this VM is not Java compliant");
             throw new MessageEncodingException("Unable to encode message, UTF-8 encoding is not supported");
         } catch (final Exception e) {
-            log.error("Error invoking velocity template", e);
+            log.error("Error invoking velocity template: {}", e.getMessage());
             throw new MessageEncodingException("Error creating output document", e);
         }
     }
diff --git a/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml1/core/impl/RequestAbstractTypeUnmarshaller.java b/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml1/core/impl/RequestAbstractTypeUnmarshaller.java
index 996a270..2a9b251 100644
--- a/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml1/core/impl/RequestAbstractTypeUnmarshaller.java
+++ b/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml1/core/impl/RequestAbstractTypeUnmarshaller.java
@@ -90,7 +90,7 @@ public abstract class RequestAbstractTypeUnmarshaller extends AbstractSAMLObject
                         throw new UnmarshallingException("MajorVersion was invalid, must be 1");
                     }
                 } catch (final NumberFormatException n) {
-                    log.error("Failed to parse major version string", n);
+                    log.error("Failed to parse major version string: {}", n.getMessage());
                     throw new UnmarshallingException(n);
                 }
             } else if (RequestAbstractType.MINORVERSION_ATTRIB_NAME.equals(attribute.getLocalName())) {
@@ -98,7 +98,7 @@ public abstract class RequestAbstractTypeUnmarshaller extends AbstractSAMLObject
                 try {
                     minor = Integer.parseInt(attribute.getValue());
                 } catch (final NumberFormatException n) {
-                    log.error("Unable to parse minor version string", n);
+                    log.error("Unable to parse minor version string: {}", n.getMessage());
                     throw new UnmarshallingException(n);
                 }
                 if (minor == 0) {
diff --git a/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml1/core/impl/ResponseAbstractTypeUnmarshaller.java b/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml1/core/impl/ResponseAbstractTypeUnmarshaller.java
index 6f7e73e..0ee6d6b 100644
--- a/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml1/core/impl/ResponseAbstractTypeUnmarshaller.java
+++ b/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml1/core/impl/ResponseAbstractTypeUnmarshaller.java
@@ -90,7 +90,7 @@ public abstract class ResponseAbstractTypeUnmarshaller extends AbstractSAMLObjec
                         throw new UnmarshallingException("MajorVersion was invalid, must be 1");
                     }
                 } catch (final NumberFormatException n) {
-                    log.error("Failed to parse major version", n);
+                    log.error("Failed to parse major version: {}", n.getMessage());
                     throw new UnmarshallingException(n);
                 }
             } else if (attribute.getLocalName().equals(ResponseAbstractType.MINORVERSION_ATTRIB_NAME)) {
@@ -98,7 +98,7 @@ public abstract class ResponseAbstractTypeUnmarshaller extends AbstractSAMLObjec
                 try {
                     minor = Integer.parseInt(attribute.getValue());
                 } catch (final NumberFormatException n) {
-                    log.error("Failed to parse minor version", n);
+                    log.error("Failed to parse minor version: {}", n.getMessage());
                     throw new UnmarshallingException(n);
                 }
                 if (minor == 0) {
diff --git a/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/binding/decoding/impl/HTTPArtifactDecoder.java b/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/binding/decoding/impl/HTTPArtifactDecoder.java
index 821eb71..4f3381d 100644
--- a/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/binding/decoding/impl/HTTPArtifactDecoder.java
+++ b/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/binding/decoding/impl/HTTPArtifactDecoder.java
@@ -406,8 +406,8 @@ public class HTTPArtifactDecoder extends BaseHttpServletRequestXMLMessageDecoder
         
         final String encodedArtifact = StringSupport.trimOrNull(request.getParameter("SAMLart"));
         if (encodedArtifact == null) {
-            log.error("URL SAMLart parameter was missing or did not contain a value.");
-            throw new MessageDecodingException("URL SAMLart parameter was missing or did not contain a value.");
+            log.error("URL SAMLart parameter was missing or did not contain a value");
+            throw new MessageDecodingException("URL SAMLart parameter was missing or did not contain a value");
         }
         
         try {
diff --git a/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/binding/decoding/impl/HTTPRedirectDeflateDecoder.java b/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/binding/decoding/impl/HTTPRedirectDeflateDecoder.java
index c61ffec..43a6db3 100644
--- a/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/binding/decoding/impl/HTTPRedirectDeflateDecoder.java
+++ b/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/binding/decoding/impl/HTTPRedirectDeflateDecoder.java
@@ -141,7 +141,7 @@ public class HTTPRedirectDeflateDecoder extends BaseHttpServletRequestXMLMessage
         try {
             return new NoWrapAutoEndInflaterInputStream(new ByteArrayInputStream(decodedBytes));
         } catch (final Exception e) {
-            log.error("Unable to Base64 decode and inflate SAML message", e);
+            log.error("Unable to Base64 decode and inflate SAML message: {}", e.getMessage());
             throw new MessageDecodingException("Unable to Base64 decode and inflate SAML message", e);
         }
     }
diff --git a/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/binding/encoding/impl/HTTPArtifactEncoder.java b/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/binding/encoding/impl/HTTPArtifactEncoder.java
index 9e84780..703db41 100644
--- a/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/binding/encoding/impl/HTTPArtifactEncoder.java
+++ b/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/binding/encoding/impl/HTTPArtifactEncoder.java
@@ -257,7 +257,7 @@ public class HTTPArtifactEncoder extends BaseSAML2MessageEncoder {
             velocityEngine.mergeTemplate(velocityTemplateId, "UTF-8", context, outWriter);
             outWriter.flush();
         } catch (final Exception e) {
-            log.error("Error invoking velocity template to create POST form", e);
+            log.error("Error invoking velocity template to create POST form: {}", e.getMessage());
             throw new MessageEncodingException("Error creating output document", e);
         }
     }
@@ -349,7 +349,7 @@ public class HTTPArtifactEncoder extends BaseSAML2MessageEncoder {
         try {
             artifactMap.put(encodedArtifact, requester, issuer, samlObject);
         } catch (final IOException e) {
-            log.error("Unable to store message mapping for artifact", e);
+            log.error("Unable to store message mapping for artifact: {}", e.getMessage());
             throw new MessageEncodingException("Unable to store message mapping for artifact", e);
         }
 
diff --git a/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/binding/encoding/impl/HTTPPostEncoder.java b/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/binding/encoding/impl/HTTPPostEncoder.java
index d3e2f3b..ef3e082 100644
--- a/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/binding/encoding/impl/HTTPPostEncoder.java
+++ b/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/binding/encoding/impl/HTTPPostEncoder.java
@@ -172,7 +172,7 @@ public class HTTPPostEncoder extends BaseSAML2MessageEncoder {
             velocityEngine.mergeTemplate(velocityTemplateId, "UTF-8", context, out);
             out.flush();
         } catch (final Exception e) {
-            log.error("Error invoking Velocity template", e);
+            log.error("Error invoking Velocity template: {}", e.getMessage());
             throw new MessageEncodingException("Error creating output document", e);
         }
     }
@@ -210,7 +210,7 @@ public class HTTPPostEncoder extends BaseSAML2MessageEncoder {
                         "SAML message is neither a SAML RequestAbstractType or StatusResponseType");
             }
         } catch (final UnsupportedEncodingException e) {
-            log.error("UTF-8 encoding is not supported, this VM is not Java compliant.");
+            log.error("UTF-8 encoding is not supported, this VM is not Java compliant");
             throw new MessageEncodingException("Unable to encode message, UTF-8 encoding is not supported");
         }
 
diff --git a/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/binding/encoding/impl/HTTPPostSimpleSignEncoder.java b/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/binding/encoding/impl/HTTPPostSimpleSignEncoder.java
index bd8bd4a..f8420a0 100644
--- a/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/binding/encoding/impl/HTTPPostSimpleSignEncoder.java
+++ b/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/binding/encoding/impl/HTTPPostSimpleSignEncoder.java
@@ -121,10 +121,10 @@ public class HTTPPostSimpleSignEncoder extends HTTPPostEncoder {
             }
             return null;
         } catch (final SecurityException e) {
-            log.error("Error generating KeyInfo from signing credential", e);
+            log.error("Error generating KeyInfo from signing credential: {}", e.getMessage());
             throw new MessageEncodingException("Error generating KeyInfo from signing credential", e);
         } catch (final MarshallingException e) {
-            log.error("Error marshalling KeyInfo based on signing credential", e);
+            log.error("Error marshalling KeyInfo based on signing credential: {}", e.getMessage());
             throw new MessageEncodingException("Error marshalling KeyInfo based on signing credential", e);
         }
     }
@@ -224,10 +224,11 @@ public class HTTPPostSimpleSignEncoder extends HTTPPostEncoder {
             b64Signature = Base64Support.encode(rawSignature, Base64Support.UNCHUNKED);
             log.debug("Generated digital signature value (base64-encoded) {}", b64Signature);
         } catch (final SecurityException e) {
-            log.error("Error during URL signing process", e);
+            log.error("Error during URL signing process: {}", e.getMessage());
             throw new MessageEncodingException("Unable to sign form control string", e);
         } catch (final UnsupportedEncodingException e) {
-            // UTF-8 encoding is required to be supported by all JVMs
+            log.error("UTF-8 encoding is not supported, this VM is not Java compliant");
+            throw new MessageEncodingException("Unable to encode message, UTF-8 encoding is not supported");
         }
 
         return b64Signature;
diff --git a/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/binding/encoding/impl/HTTPRedirectDeflateEncoder.java b/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/binding/encoding/impl/HTTPRedirectDeflateEncoder.java
index 239fa3b..e791f39 100644
--- a/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/binding/encoding/impl/HTTPRedirectDeflateEncoder.java
+++ b/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/binding/encoding/impl/HTTPRedirectDeflateEncoder.java
@@ -288,7 +288,7 @@ public class HTTPRedirectDeflateEncoder extends BaseSAML2MessageEncoder {
             b64Signature = Base64Support.encode(rawSignature, Base64Support.UNCHUNKED);
             log.debug("Generated digital signature value (base64-encoded) {}", b64Signature);
         } catch (final SecurityException e) {
-            log.error("Error during URL signing process", e);
+            log.error("Error during URL signing process: {}", e.getMessage());
             throw new MessageEncodingException("Unable to sign URL query string", e);
         } catch (final UnsupportedEncodingException e) {
             // UTF-8 encoding is required to be supported by all JVMs
diff --git a/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/binding/security/impl/SAML2HTTPPostSimpleSignSecurityHandler.java b/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/binding/security/impl/SAML2HTTPPostSimpleSignSecurityHandler.java
index ea274c6..fc750fb 100644
--- a/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/binding/security/impl/SAML2HTTPPostSimpleSignSecurityHandler.java
+++ b/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/binding/security/impl/SAML2HTTPPostSimpleSignSecurityHandler.java
@@ -140,7 +140,8 @@ public class SAML2HTTPPostSimpleSignSecurityHandler extends BaseSAMLSimpleSignat
                 throw new MessageHandlerException("Extract of SAMLRequest or SAMLResponse from form control data");
             }
         } catch (final UnsupportedEncodingException e) {
-            // All JVM's required to support UTF-8
+            log.error("UTF-8 encoding is not supported, this VM is not Java compliant");
+            throw new MessageHandlerException("Unable to process message, UTF-8 encoding is not supported");
         }
 
         if (request.getParameter("RelayState") != null) {
@@ -159,9 +160,9 @@ public class SAML2HTTPPostSimpleSignSecurityHandler extends BaseSAMLSimpleSignat
         try {
             return constructed.getBytes("UTF-8");
         } catch (final UnsupportedEncodingException e) {
-            // All JVM's required to support UTF-8
+            log.error("UTF-8 encoding is not supported, this VM is not Java compliant");
+            throw new MessageHandlerException("Unable to process message, UTF-8 encoding is not supported");
         }
-        return null;
     }
 
     /** {@inheritDoc} */
@@ -188,10 +189,10 @@ public class SAML2HTTPPostSimpleSignSecurityHandler extends BaseSAMLSimpleSignat
             final Document doc = getParserPool().parse(is);
             keyInfo = (KeyInfo) unmarshaller.unmarshall(doc.getDocumentElement());
         } catch (final XMLParserException e) {
-            log.warn("Error parsing KeyInfo data", e);
+            log.warn("Error parsing KeyInfo data: {}", e.getMessage());
             throw new MessageHandlerException("Error parsing KeyInfo data", e);
         } catch (final UnmarshallingException e) {
-            log.warn("Error unmarshalling KeyInfo data", e);
+            log.warn("Error unmarshalling KeyInfo data: {}", e.getMessage());
             throw new MessageHandlerException("Error unmarshalling KeyInfo data", e);
         }
 
@@ -207,7 +208,7 @@ public class SAML2HTTPPostSimpleSignSecurityHandler extends BaseSAMLSimpleSignat
                 credentials.add(cred);
             }
         } catch (final ResolverException e) {
-            log.warn("Error resolving credentials from KeyInfo", e);
+            log.warn("Error resolving credentials from KeyInfo: {}", e.getMessage());
             throw new MessageHandlerException("Error resolving credentials from KeyInfo", e);
         }
 
diff --git a/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/binding/security/impl/SAML2HTTPRedirectDeflateSignatureSecurityHandler.java b/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/binding/security/impl/SAML2HTTPRedirectDeflateSignatureSecurityHandler.java
index ee60d95..853dde6 100644
--- a/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/binding/security/impl/SAML2HTTPRedirectDeflateSignatureSecurityHandler.java
+++ b/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/binding/security/impl/SAML2HTTPRedirectDeflateSignatureSecurityHandler.java
@@ -68,9 +68,9 @@ public class SAML2HTTPRedirectDeflateSignatureSecurityHandler extends BaseSAMLSi
         try {
             return constructed.getBytes("UTF-8");
         } catch (final UnsupportedEncodingException e) {
-            // JVM is required to support UTF-8
+            log.error("UTF-8 encoding is not supported, this VM is not Java compliant");
+            throw new MessageHandlerException("Unable to process message, UTF-8 encoding is not supported");
         }
-        return null;
     }
 
     /**
diff --git a/opensaml-saml-impl/src/main/java/org/opensaml/saml/security/impl/MetadataCredentialResolver.java b/opensaml-saml-impl/src/main/java/org/opensaml/saml/security/impl/MetadataCredentialResolver.java
index 3b3b2d8..bf5b246 100644
--- a/opensaml-saml-impl/src/main/java/org/opensaml/saml/security/impl/MetadataCredentialResolver.java
+++ b/opensaml-saml-impl/src/main/java/org/opensaml/saml/security/impl/MetadataCredentialResolver.java
@@ -445,7 +445,7 @@ public class MetadataCredentialResolver extends AbstractCriteriaFilteringCredent
             return getRoleDescriptorResolver().resolve(criteria);
 
         } catch (final ResolverException e) {
-            log.error("Unable to resolve information from metadata", e);
+            log.error("Unable to resolve information from metadata: {}", e.getMessage());
             throw new ResolverException("Unable to resolve information from metadata", e);
         }
     }
diff --git a/opensaml-saml-impl/src/main/java/org/opensaml/saml/security/impl/SAMLSignatureProfileValidator.java b/opensaml-saml-impl/src/main/java/org/opensaml/saml/security/impl/SAMLSignatureProfileValidator.java
index a608f5e..8316e55 100644
--- a/opensaml-saml-impl/src/main/java/org/opensaml/saml/security/impl/SAMLSignatureProfileValidator.java
+++ b/opensaml-saml-impl/src/main/java/org/opensaml/saml/security/impl/SAMLSignatureProfileValidator.java
@@ -115,7 +115,7 @@ public class SAMLSignatureProfileValidator implements SignaturePrevalidator {
         try {
             ref = apacheSig.getSignedInfo().item(0);
         } catch (final XMLSecurityException e) {
-            log.error("Apache XML Security exception obtaining Reference", e);
+            log.error("Apache XML Security exception obtaining Reference: {}", e.getMessage());
             throw new SignatureException("Could not obtain Reference from Signature/SignedInfo", e);
         }
         if (ref == null) {
@@ -207,7 +207,7 @@ public class SAMLSignatureProfileValidator implements SignaturePrevalidator {
         try {
             transforms = reference.getTransforms();
         } catch (final XMLSecurityException e) {
-            log.error("Apache XML Security error obtaining Transforms instance", e);
+            log.error("Apache XML Security error obtaining Transforms instance: {}", e.getMessage());
             throw new SignatureException("Apache XML Security error obtaining Transforms instance", e);
         }
 
@@ -228,7 +228,7 @@ public class SAMLSignatureProfileValidator implements SignaturePrevalidator {
             try {
                 transform = transforms.item(i);
             } catch (final TransformationException e) {
-                log.error("Error obtaining transform instance", e);
+                log.error("Error obtaining transform instance: {}", e.getMessage());
                 throw new SignatureException("Error obtaining transform instance", e);
             }
             final String uri = transform.getURI();
diff --git a/opensaml-security-api/src/main/java/org/opensaml/security/crypto/SigningUtil.java b/opensaml-security-api/src/main/java/org/opensaml/security/crypto/SigningUtil.java
index c6a4877..aacf6c7 100644
--- a/opensaml-security-api/src/main/java/org/opensaml/security/crypto/SigningUtil.java
+++ b/opensaml-security-api/src/main/java/org/opensaml/security/crypto/SigningUtil.java
@@ -110,7 +110,7 @@ public final class SigningUtil {
             log.debug("Computed signature: {}", Hex.encodeHex(rawSignature));
             return rawSignature;
         } catch (final GeneralSecurityException e) {
-            log.error("Error during signature generation", e);
+            log.error("Error during signature generation: {}", e.getMessage());
             throw new SecurityException("Error during signature generation", e);
         }
     }
@@ -145,7 +145,7 @@ public final class SigningUtil {
             log.debug("Computed MAC: {}", Hex.encodeHexString(rawMAC));
             return rawMAC;
         } catch (final GeneralSecurityException e) {
-            log.error("Error during MAC generation", e);
+            log.error("Error during MAC generation: {}", e.getMessage());
             throw new SecurityException("Error during MAC generation", e);
         }
     }
@@ -217,7 +217,7 @@ public final class SigningUtil {
             sig.update(input);
             return sig.verify(signature);
         } catch (final GeneralSecurityException e) {
-            log.error("Error during signature verification", e);
+            log.error("Error during signature verification: {}", e.getMessage());
             throw new SecurityException("Error during signature verification", e);
         }
     }
diff --git a/opensaml-security-api/src/main/java/org/opensaml/security/x509/X509Support.java b/opensaml-security-api/src/main/java/org/opensaml/security/x509/X509Support.java
index c66daeb..acdfce9 100644
--- a/opensaml-security-api/src/main/java/org/opensaml/security/x509/X509Support.java
+++ b/opensaml-security-api/src/main/java/org/opensaml/security/x509/X509Support.java
@@ -208,7 +208,7 @@ public class X509Support {
             return altNames;
         } catch (final EncodingException e) {
             final Logger log = getLogger();
-            log.warn("Could not extract alt names from certificate", e);
+            log.warn("Could not extract alt names from certificate: {}", e.getMessage());
             throw e;
         }
     }
diff --git a/opensaml-security-impl/src/main/java/org/opensaml/security/credential/criteria/impl/EvaluableCredentialCriteriaRegistry.java b/opensaml-security-impl/src/main/java/org/opensaml/security/credential/criteria/impl/EvaluableCredentialCriteriaRegistry.java
index f6af0fd..9c312be 100644
--- a/opensaml-security-impl/src/main/java/org/opensaml/security/credential/criteria/impl/EvaluableCredentialCriteriaRegistry.java
+++ b/opensaml-security-impl/src/main/java/org/opensaml/security/credential/criteria/impl/EvaluableCredentialCriteriaRegistry.java
@@ -89,7 +89,7 @@ public final class EvaluableCredentialCriteriaRegistry {
 
             } catch (final java.lang.SecurityException | InstantiationException | IllegalAccessException 
                     | IllegalArgumentException | InvocationTargetException | NoSuchMethodException e) {
-                log.error("Error instantiating new EvaluableCredentialCriterion instance", e);
+                log.error("Error instantiating new EvaluableCredentialCriterion instance: {}", e.getMessage());
                 throw new SecurityException("Could not create new EvaluableCredentialCriterion", e);
             }
         }
diff --git a/opensaml-security-impl/src/main/java/org/opensaml/security/credential/impl/KeyStoreCredentialResolver.java b/opensaml-security-impl/src/main/java/org/opensaml/security/credential/impl/KeyStoreCredentialResolver.java
index 77b2a70..78b6687 100644
--- a/opensaml-security-impl/src/main/java/org/opensaml/security/credential/impl/KeyStoreCredentialResolver.java
+++ b/opensaml-security-impl/src/main/java/org/opensaml/security/credential/impl/KeyStoreCredentialResolver.java
@@ -139,7 +139,8 @@ public class KeyStoreCredentialResolver extends AbstractCriteriaFilteringCredent
             log.error("Check for invalid keystore entityID/alias entry password");
             throw new ResolverException("Could not retrieve entry from keystore", e);
         } catch (final GeneralSecurityException e) {
-            log.error("Unable to retrieve keystore entry for entityID (keystore alias): {}", entityID, e);
+            log.error("Unable to retrieve keystore entry for entityID (keystore alias): {}: {}", entityID,
+                    e.getMessage());
             throw new ResolverException("Could not retrieve entry from keystore", e);
         }
 
diff --git a/opensaml-security-impl/src/main/java/org/opensaml/security/httpclient/impl/SecurityEnhancedTLSSocketFactory.java b/opensaml-security-impl/src/main/java/org/opensaml/security/httpclient/impl/SecurityEnhancedTLSSocketFactory.java
index 7d4d252..8efbc0e 100644
--- a/opensaml-security-impl/src/main/java/org/opensaml/security/httpclient/impl/SecurityEnhancedTLSSocketFactory.java
+++ b/opensaml-security-impl/src/main/java/org/opensaml/security/httpclient/impl/SecurityEnhancedTLSSocketFactory.java
@@ -311,7 +311,7 @@ public class SecurityEnhancedTLSSocketFactory implements LayeredConnectionSocket
                 log.debug("Credential evaluated as untrusted, failure indicated as non-fatal");
             }
         } catch (final SecurityException e) {
-            log.error("Trust engine error evaluating credential", e);
+            log.error("Trust engine error evaluating credential: {}", e.getMessage());
             throw new IOException("Trust engine error evaluating credential", e);
         }
         
diff --git a/opensaml-security-impl/src/main/java/org/opensaml/security/messaging/impl/BaseTrustEngineSecurityHandler.java b/opensaml-security-impl/src/main/java/org/opensaml/security/messaging/impl/BaseTrustEngineSecurityHandler.java
index 9da44f3..09a01e7 100644
--- a/opensaml-security-impl/src/main/java/org/opensaml/security/messaging/impl/BaseTrustEngineSecurityHandler.java
+++ b/opensaml-security-impl/src/main/java/org/opensaml/security/messaging/impl/BaseTrustEngineSecurityHandler.java
@@ -126,7 +126,8 @@ public abstract class BaseTrustEngineSecurityHandler<TokenType> extends Abstract
         try {
             return getTrustEngine().validate(token, criteriaSet);
         } catch (final SecurityException e) {
-            log.error("{} There was an error evaluating the request's token using the trust engine", getLogPrefix(), e);
+            log.error("{} There was an error evaluating the request's token using the trust engine: {}", getLogPrefix(),
+                    e.getMessage());
             throw new MessageHandlerException("Error during trust engine evaluation of the token", e);
         }
     }
diff --git a/opensaml-security-impl/src/main/java/org/opensaml/security/messaging/impl/PopulateHttpClientSecurityParametersHandler.java b/opensaml-security-impl/src/main/java/org/opensaml/security/messaging/impl/PopulateHttpClientSecurityParametersHandler.java
index d70cd3e..32a7db2 100644
--- a/opensaml-security-impl/src/main/java/org/opensaml/security/messaging/impl/PopulateHttpClientSecurityParametersHandler.java
+++ b/opensaml-security-impl/src/main/java/org/opensaml/security/messaging/impl/PopulateHttpClientSecurityParametersHandler.java
@@ -222,7 +222,7 @@ public class PopulateHttpClientSecurityParametersHandler extends AbstractMessage
             log.debug("{} {} HttpClientSecurityParameters", getLogPrefix(),
                     params != null ? "Resolved" : "Failed to resolve");
         } catch (final ResolverException e) {
-            log.error("{} Error resolving HttpClientSecurityParameters", getLogPrefix(), e);
+            log.error("{} Error resolving HttpClientSecurityParameters: {}", getLogPrefix(), e.getMessage());
             throw new MessageHandlerException("Error resolving HttpClientSecurityParameters", e);
         }
     }
diff --git a/opensaml-security-impl/src/main/java/org/opensaml/security/trust/impl/TrustEngineX509TrustManager.java b/opensaml-security-impl/src/main/java/org/opensaml/security/trust/impl/TrustEngineX509TrustManager.java
index 5dcd6bc..85d6081 100644
--- a/opensaml-security-impl/src/main/java/org/opensaml/security/trust/impl/TrustEngineX509TrustManager.java
+++ b/opensaml-security-impl/src/main/java/org/opensaml/security/trust/impl/TrustEngineX509TrustManager.java
@@ -105,7 +105,7 @@ public class TrustEngineX509TrustManager implements X509TrustManager {
                 throw new CertificateException("Trust engine could not establish trust of TLS credential");
             }
         } catch (final SecurityException e) {
-            log.error("Trust engine error evaluating credential", e);
+            log.error("Trust engine error evaluating credential: {}", e.getMessage());
             throw new CertificateException("Trust engine error evaluating credential", e);
         }
     }
diff --git a/opensaml-security-impl/src/main/java/org/opensaml/security/x509/impl/CertPathPKIXTrustEvaluator.java b/opensaml-security-impl/src/main/java/org/opensaml/security/x509/impl/CertPathPKIXTrustEvaluator.java
index b2ed88d..e38746e 100644
--- a/opensaml-security-impl/src/main/java/org/opensaml/security/x509/impl/CertPathPKIXTrustEvaluator.java
+++ b/opensaml-security-impl/src/main/java/org/opensaml/security/x509/impl/CertPathPKIXTrustEvaluator.java
@@ -161,7 +161,7 @@ public class CertPathPKIXTrustEvaluator implements PKIXTrustEvaluator {
             }
             return false;
         } catch (final GeneralSecurityException e) {
-            log.error("PKIX validation failure", e);
+            log.error("PKIX validation failure: {}", e.getMessage());
             throw new SecurityException("PKIX validation failure", e);
         }
     }
diff --git a/opensaml-soap-api/src/main/java/org/opensaml/soap/client/http/AbstractPipelineHttpSOAPClient.java b/opensaml-soap-api/src/main/java/org/opensaml/soap/client/http/AbstractPipelineHttpSOAPClient.java
index 50a1146..69284a2 100644
--- a/opensaml-soap-api/src/main/java/org/opensaml/soap/client/http/AbstractPipelineHttpSOAPClient.java
+++ b/opensaml-soap-api/src/main/java/org/opensaml/soap/client/http/AbstractPipelineHttpSOAPClient.java
@@ -277,11 +277,11 @@ public abstract class AbstractPipelineHttpSOAPClient
         try {
             return newPipeline();
         } catch (final SOAPException e) {
-            log.warn("Problem resolving pipeline instance", e);
+            log.warn("Problem resolving pipeline instance: {}", e.getMessage());
             throw e;
         } catch (final Exception e) {
             // This is to handle RuntimeExceptions, for example thrown by Spring dynamic factory approaches
-            log.warn("Problem resolving pipeline instance", e);
+            log.warn("Problem resolving pipeline instance: {}", e.getMessage());
             throw new SOAPException("Could not resolve pipeline", e);
         }
     }
diff --git a/opensaml-soap-api/src/main/java/org/opensaml/soap/client/http/PipelineFactoryHttpSOAPClient.java b/opensaml-soap-api/src/main/java/org/opensaml/soap/client/http/PipelineFactoryHttpSOAPClient.java
index 31ae01e..e751553 100644
--- a/opensaml-soap-api/src/main/java/org/opensaml/soap/client/http/PipelineFactoryHttpSOAPClient.java
+++ b/opensaml-soap-api/src/main/java/org/opensaml/soap/client/http/PipelineFactoryHttpSOAPClient.java
@@ -129,11 +129,11 @@ public class PipelineFactoryHttpSOAPClient extends AbstractPipelineHttpSOAPClien
             }
             return newPipeline();
         } catch (final SOAPException e) {
-            log.warn("Problem resolving pipeline instance with name: {}", resolvedPipelineName, e);
+            log.warn("Problem resolving pipeline instance with name {}: {}", resolvedPipelineName, e.getMessage());
             throw e;
         } catch (final Exception e) {
             // This is to handle RuntimeExceptions, for example thrown by Spring dynamic factory approaches
-            log.warn("Problem resolving pipeline instance with name: {}", resolvedPipelineName, e);
+            log.warn("Problem resolving pipeline instance with name {}: {}", resolvedPipelineName, e.getMessage());
             throw new SOAPException("Could not resolve pipeline with name: " + resolvedPipelineName, e);
         }
     }
diff --git a/opensaml-soap-impl/src/main/java/org/opensaml/soap/client/soap11/decoder/http/impl/HttpClientResponseSOAP11Decoder.java b/opensaml-soap-impl/src/main/java/org/opensaml/soap/client/soap11/decoder/http/impl/HttpClientResponseSOAP11Decoder.java
index 6e8fa7c..a1d2561 100644
--- a/opensaml-soap-impl/src/main/java/org/opensaml/soap/client/soap11/decoder/http/impl/HttpClientResponseSOAP11Decoder.java
+++ b/opensaml-soap-impl/src/main/java/org/opensaml/soap/client/soap11/decoder/http/impl/HttpClientResponseSOAP11Decoder.java
@@ -102,7 +102,7 @@ public class HttpClientResponseSOAP11Decoder extends BaseHttpClientResponseXMLMe
             }
             
         } catch (final IOException e) {
-            log.error("Unable to obtain input stream from HttpResponse", e);
+            log.error("Unable to obtain input stream from HttpResponse: {}", e.getMessage());
             throw new MessageDecodingException("Unable to obtain input stream from HttpResponse", e);
         } finally {
             if (response instanceof CloseableHttpResponse) {
@@ -117,7 +117,7 @@ public class HttpClientResponseSOAP11Decoder extends BaseHttpClientResponseXMLMe
         try {
             getBodyHandler().invoke(messageContext);
         } catch (final MessageHandlerException e) {
-            log.error("Error processing SOAP Envelope body", e);
+            log.error("Error processing SOAP Envelope body: {}", e.getMessage());
             throw new MessageDecodingException("Error processing SOAP Envelope body", e);
         }
         
@@ -203,12 +203,9 @@ public class HttpClientResponseSOAP11Decoder extends BaseHttpClientResponseXMLMe
             final List<XMLObject> faults = soapMessage.getBody().getUnknownXMLObjects(Fault.DEFAULT_ELEMENT_NAME);
             if (!faults.isEmpty()) {
                 return (Fault) faults.get(0);
-            } else {
-                return null;
             }
-        } else {
-            return null;
         }
+        return null;
     }
 
     /** {@inheritDoc} */
diff --git a/opensaml-soap-impl/src/main/java/org/opensaml/soap/soap11/decoder/http/impl/HTTPSOAP11Decoder.java b/opensaml-soap-impl/src/main/java/org/opensaml/soap/soap11/decoder/http/impl/HTTPSOAP11Decoder.java
index e49f074..d0c3384 100644
--- a/opensaml-soap-impl/src/main/java/org/opensaml/soap/soap11/decoder/http/impl/HTTPSOAP11Decoder.java
+++ b/opensaml-soap-impl/src/main/java/org/opensaml/soap/soap11/decoder/http/impl/HTTPSOAP11Decoder.java
@@ -98,14 +98,14 @@ public class HTTPSOAP11Decoder extends BaseHttpServletRequestXMLMessageDecoder {
             soapMessage = (Envelope) unmarshallMessage(request.getInputStream());
             messageContext.getSubcontext(SOAP11Context.class, true).setEnvelope(soapMessage);
         } catch (final IOException e) {
-            log.error("Unable to obtain input stream from HttpServletRequest", e);
+            log.error("Unable to obtain input stream from HttpServletRequest: {}", e.getMessage());
             throw new MessageDecodingException("Unable to obtain input stream from HttpServletRequest", e);
         }
         
         try {
             getBodyHandler().invoke(messageContext);
         } catch (final MessageHandlerException e) {
-            log.error("Error processing SOAP Envelope body", e);
+            log.error("Error processing SOAP Envelope body: {}", e.getMessage());
             throw new MessageDecodingException("Error processing SOAP Envelope body", e);
         }
         
diff --git a/opensaml-storage-impl/src/main/java/org/opensaml/storage/impl/LDAPStorageService.java b/opensaml-storage-impl/src/main/java/org/opensaml/storage/impl/LDAPStorageService.java
index 714ce8b..9854b67 100644
--- a/opensaml-storage-impl/src/main/java/org/opensaml/storage/impl/LDAPStorageService.java
+++ b/opensaml-storage-impl/src/main/java/org/opensaml/storage/impl/LDAPStorageService.java
@@ -120,7 +120,7 @@ public class LDAPStorageService extends AbstractStorageService implements Storag
             merge(entry);
             return true;
         } catch (final LdapException e) {
-            log.error("LDAP merge operation failed", e);
+            log.error("LDAP merge operation failed: {}", e.getMessage());
             throw new IOException(e);
         }
     }
@@ -133,7 +133,7 @@ public class LDAPStorageService extends AbstractStorageService implements Storag
             result = search(context, key).getResult();
         } catch (final LdapException e) {
             if (e.getResultCode() != ResultCode.NO_SUCH_OBJECT) {
-                log.error("LDAP search operation failed", e);
+                log.error("LDAP search operation failed: {}", e.getMessage());
                 throw new IOException(e);
             }
         }
@@ -168,7 +168,7 @@ public class LDAPStorageService extends AbstractStorageService implements Storag
             merge(entry);
             return true;
         } catch (final LdapException e) {
-            log.error("LDAP merge operation failed", e);
+            log.error("LDAP merge operation failed: {}", e.getMessage());
             throw new IOException(e);
         }
     }
@@ -194,7 +194,7 @@ public class LDAPStorageService extends AbstractStorageService implements Storag
             deleteAttribute(context, key);
             return true;
         } catch (final LdapException e) {
-            log.error("LDAP modify operation failed", e);
+            log.error("LDAP modify operation failed: {}", e.getMessage());
             throw new IOException(e);
         }
     }
@@ -236,15 +236,11 @@ public class LDAPStorageService extends AbstractStorageService implements Storag
      * @throws LdapException if the operation fails
      */
     @Nonnull private Response<Void> merge(@Nonnull final LdapEntry entry) throws LdapException {
-        Connection conn = null;
-        try {
-            conn = connectionFactory.getConnection();
+        try (final Connection conn = connectionFactory.getConnection()) {
             final MergeOperation merge = new MergeOperation(conn);
             final MergeRequest request = new MergeRequest(entry);
             request.setIncludeAttributes(entry.getAttributeNames());
             return merge.execute(request);
-        } finally {
-            conn.close();
         }
     }
 
@@ -260,13 +256,9 @@ public class LDAPStorageService extends AbstractStorageService implements Storag
      */
     @Nonnull private Response<SearchResult> search(@Nonnull final String dn, final String... attrs)
             throws LdapException {
-        Connection conn = null;
-        try {
-            conn = connectionFactory.getConnection();
+        try (final Connection conn = connectionFactory.getConnection()) {
             final SearchOperation search = new SearchOperation(conn);
             return search.execute(SearchRequest.newObjectScopeSearchRequest(dn, attrs));
-        } finally {
-            conn.close();
         }
     }
 
@@ -282,14 +274,10 @@ public class LDAPStorageService extends AbstractStorageService implements Storag
      */
     @Nonnull private Response<Void> deleteAttribute(@Nonnull final String dn, @Nonnull final String attrName)
             throws LdapException {
-        Connection conn = null;
-        try {
-            conn = connectionFactory.getConnection();
+        try (final Connection conn = connectionFactory.getConnection()) {
             final ModifyOperation modify = new ModifyOperation(conn);
             return modify.execute(new ModifyRequest(dn, new AttributeModification(AttributeModificationType.REMOVE,
                     new LdapAttribute(attrName))));
-        } finally {
-            conn.close();
         }
     }
 
@@ -303,13 +291,9 @@ public class LDAPStorageService extends AbstractStorageService implements Storag
      * @throws LdapException if the operation fails
      */
     @Nonnull private Response<Void> delete(@Nonnull final String dn) throws LdapException {
-        Connection conn = null;
-        try {
-            conn = connectionFactory.getConnection();
+        try (final Connection conn = connectionFactory.getConnection()) {
             final DeleteOperation delete = new DeleteOperation(conn);
             return delete.execute(new DeleteRequest(dn));
-        } finally {
-            conn.close();
         }
     }
 
diff --git a/opensaml-xmlsec-api/src/main/java/org/opensaml/xmlsec/encryption/support/Decrypter.java b/opensaml-xmlsec-api/src/main/java/org/opensaml/xmlsec/encryption/support/Decrypter.java
index b0d19e5..08a0355 100644
--- a/opensaml-xmlsec-api/src/main/java/org/opensaml/xmlsec/encryption/support/Decrypter.java
+++ b/opensaml-xmlsec-api/src/main/java/org/opensaml/xmlsec/encryption/support/Decrypter.java
@@ -463,7 +463,7 @@ public class Decrypter {
                 try {
                     newDoc = parserPool.newDocument();
                 } catch (final XMLParserException e) {
-                    log.error("There was an error creating a new DOM Document", e);
+                    log.error("There was an error creating a new DOM Document: {}", e.getMessage());
                     throw new DecryptionException("Error creating new DOM Document", e);
                 }
                 newDoc.adoptNode(element);
@@ -485,7 +485,7 @@ public class Decrypter {
                 }
                 xmlObject = unmarshaller.unmarshall(element);
             } catch (final UnmarshallingException e) {
-                log.error("There was an error during unmarshalling of the decrypted element", e);
+                log.error("There was an error during unmarshalling of the decrypted element: {}", e.getMessage());
                 throw new DecryptionException("Unmarshalling error during decryption", e);
             }
 
@@ -583,21 +583,21 @@ public class Decrypter {
             }
             xmlCipher.init(XMLCipher.DECRYPT_MODE, dataEncKey);
         } catch (final XMLEncryptionException e) {
-            log.error("Error initialzing cipher instance on data decryption", e);
-            throw new DecryptionException("Error initialzing cipher instance on data decryption", e);
+            log.error("Error initializing cipher instance on data decryption: {}", e.getMessage());
+            throw new DecryptionException("Error initializing cipher instance on data decryption", e);
         }
 
         byte[] bytes = null;
         try {
             bytes = xmlCipher.decryptToByteArray(targetElement);
         } catch (final XMLEncryptionException e) {
-            log.error("Error decrypting the encrypted data element", e);
+            log.error("Error decrypting the encrypted data element: {}", e.getMessage());
             throw new DecryptionException("Error decrypting the encrypted data element", e);
         } catch (final Exception e) {
             // Catch anything else, esp. unchecked RuntimeException, and convert to our checked type.
             // BouncyCastle in particular is known to throw unchecked exceptions for what we would 
             // consider "routine" failures.
-            throw new DecryptionException("Probable runtime exception on decryption:" + e.getMessage(), e);
+            throw new DecryptionException("Probable runtime exception on decryption", e);
         }
         if (bytes == null) {
             throw new DecryptionException("EncryptedData could not be decrypted");
@@ -623,8 +623,8 @@ public class Decrypter {
             log.warn("No KEK KeyInfo credential resolver is available, cannot attempt EncryptedKey decryption");
             throw new DecryptionException("No KEK KeyInfo resolver is available for EncryptedKey decryption");
         } else if (Strings.isNullOrEmpty(algorithm)) {
-            log.error("Algorithm of encrypted key not supplied, key decryption cannot proceed.");
-            throw new DecryptionException("Algorithm of encrypted key not supplied, key decryption cannot proceed.");
+            log.error("Algorithm of encrypted key not supplied, key decryption cannot proceed");
+            throw new DecryptionException("Algorithm of encrypted key not supplied, key decryption cannot proceed");
         }
 
         final CriteriaSet criteriaSet = buildCredentialCriteria(encryptedKey, kekResolverCriteria);
@@ -663,8 +663,8 @@ public class Decrypter {
             log.error("Data encryption key was null");
             throw new IllegalArgumentException("Data encryption key cannot be null");
         } else if (Strings.isNullOrEmpty(algorithm)) {
-            log.error("Algorithm of encrypted key not supplied, key decryption cannot proceed.");
-            throw new DecryptionException("Algorithm of encrypted key not supplied, key decryption cannot proceed.");
+            log.error("Algorithm of encrypted key not supplied, key decryption cannot proceed");
+            throw new DecryptionException("Algorithm of encrypted key not supplied, key decryption cannot proceed");
         }
         
         validateAlgorithms(encryptedKey);
@@ -672,7 +672,7 @@ public class Decrypter {
         try {
             checkAndMarshall(encryptedKey);
         } catch (final DecryptionException e) {
-            log.error("Error marshalling EncryptedKey for decryption", e);
+            log.error("Error marshalling EncryptedKey for decryption: {}", e.getMessage());
             throw e;
         }
         preProcessEncryptedKey(encryptedKey, algorithm, kek);
@@ -686,7 +686,7 @@ public class Decrypter {
             }
             xmlCipher.init(XMLCipher.UNWRAP_MODE, kek);
         } catch (final XMLEncryptionException e) {
-            log.error("Error initialzing cipher instance on key decryption", e);
+            log.error("Error initialzing cipher instance on key decryption: {}", e.getMessage());
             throw new DecryptionException("Error initialzing cipher instance on key decryption", e);
         }
 
@@ -695,7 +695,7 @@ public class Decrypter {
             final Element targetElement = encryptedKey.getDOM();
             encKey = xmlCipher.loadEncryptedKey(targetElement.getOwnerDocument(), targetElement);
         } catch (final XMLEncryptionException e) {
-            log.error("Error when loading library native encrypted key representation", e);
+            log.error("Error when loading library native encrypted key representation: {}", e.getMessage());
             throw new DecryptionException("Error when loading library native encrypted key representation", e);
         } 
 
@@ -706,13 +706,13 @@ public class Decrypter {
             }
             return key;
         } catch (final XMLEncryptionException e) {
-            log.error("Error decrypting encrypted key", e);
+            log.error("Error decrypting encrypted key: {}", e.getMessage());
             throw new DecryptionException("Error decrypting encrypted key", e);
         }  catch (final Exception e) {
             // Catch anything else, esp. unchecked RuntimeException, and convert to our checked type.
             // BouncyCastle in particular is known to throw unchecked exceptions for what we would 
             // consider "routine" failures.
-            throw new DecryptionException("Probable runtime exception on decryption:" + e.getMessage(), e);
+            throw new DecryptionException("Probable runtime exception on decryption", e);
         }
     }
 
@@ -803,7 +803,7 @@ public class Decrypter {
         try {
             newDocument = parserPool.parse(input);
         } catch (final XMLParserException e) {
-            log.error("Error parsing decrypted input stream", e);
+            log.error("Error parsing decrypted input stream: {}", e.getMessage());
             throw new DecryptionException("Error parsing input stream", e);
         }
 
@@ -956,7 +956,7 @@ public class Decrypter {
             try {
                 targetElement = marshaller.marshall(xmlObject);
             } catch (final MarshallingException e) {
-                log.error("Error marshalling target XMLObject", e);
+                log.error("Error marshalling target XMLObject: {}", e.getMessage());
                 throw new DecryptionException("Error marshalling target XMLObject", e);
             }
         }
diff --git a/opensaml-xmlsec-api/src/main/java/org/opensaml/xmlsec/encryption/support/Encrypter.java b/opensaml-xmlsec-api/src/main/java/org/opensaml/xmlsec/encryption/support/Encrypter.java
index e84fd82..610b8ef 100644
--- a/opensaml-xmlsec-api/src/main/java/org/opensaml/xmlsec/encryption/support/Encrypter.java
+++ b/opensaml-xmlsec-api/src/main/java/org/opensaml/xmlsec/encryption/support/Encrypter.java
@@ -305,7 +305,7 @@ public class Encrypter {
             try {
                 encryptedKey.setKeyInfo(generator.generate(kekParams.getEncryptionCredential()));
             } catch (final SecurityException e) {
-                log.error("Error during EncryptedKey KeyInfo generation", e);
+                log.error("Error during EncryptedKey KeyInfo generation: {}", e.getMessage());
                 throw new EncryptionException("Error during EncryptedKey KeyInfo generation", e);
             }
         }
@@ -349,7 +349,7 @@ public class Encrypter {
         try {
             xmlCipher = buildXMLCipher(encryptionKey, encryptionAlgorithmURI, rsaOAEPParams);
         } catch (final XMLEncryptionException e) {
-            log.error("Error initializing cipher instance on key encryption", e);
+            log.error("Error initializing cipher instance on key encryption: {}", e.getMessage());
             throw new EncryptionException("Error initializing cipher instance on key encryption", e);
         }
 
@@ -365,7 +365,7 @@ public class Encrypter {
             postProcessApacheEncryptedKey(apacheEncryptedKey, targetKey, encryptionKey, encryptionAlgorithmURI,
                     containingDocument);
         } catch (final XMLEncryptionException e) {
-            log.error("Error encrypting element on key encryption", e);
+            log.error("Error encrypting element on key encryption: {}", e.getMessage());
             throw new EncryptionException("Error encrypting element on key encryption", e);
         }
 
@@ -373,7 +373,7 @@ public class Encrypter {
             final Element encKeyElement = xmlCipher.martial(containingDocument, apacheEncryptedKey);
             return (EncryptedKey) encryptedKeyUnmarshaller.unmarshall(encKeyElement);
         } catch (final UnmarshallingException e) {
-            log.error("Error unmarshalling EncryptedKey element", e);
+            log.error("Error unmarshalling EncryptedKey element: {}", e.getMessage());
             throw new EncryptionException("Error unmarshalling EncryptedKey element");
         }
     }
@@ -529,7 +529,7 @@ public class Encrypter {
             }
             xmlCipher.init(XMLCipher.ENCRYPT_MODE, encryptionKey);
         } catch (final XMLEncryptionException e) {
-            log.error("Error initializing cipher instance on XMLObject encryption", e);
+            log.error("Error initializing cipher instance on XMLObject encryption: {}", e.getMessage());
             throw new EncryptionException("Error initializing cipher instance", e);
         }
 
@@ -537,7 +537,7 @@ public class Encrypter {
         try {
             apacheEncryptedData = xmlCipher.encryptData(ownerDocument, targetElement, encryptContentMode);
         } catch (final Exception e) {
-            log.error("Error encrypting XMLObject", e);
+            log.error("Error encrypting XMLObject: {}", e.getMessage());
             throw new EncryptionException("Error encrypting XMLObject", e);
         }
 
@@ -545,7 +545,7 @@ public class Encrypter {
             final Element encDataElement = xmlCipher.martial(ownerDocument, apacheEncryptedData);
             return (EncryptedData) encryptedDataUnmarshaller.unmarshall(encDataElement);
         } catch (final UnmarshallingException e) {
-            log.error("Error unmarshalling EncryptedData element", e);
+            log.error("Error unmarshalling EncryptedData element: {}", e.getMessage());
             throw new EncryptionException("Error unmarshalling EncryptedData element", e);
         }
     }
@@ -586,7 +586,7 @@ public class Encrypter {
             try {
                 encryptedData.setKeyInfo(generator.generate(encParams.getEncryptionCredential()));
             } catch (final SecurityException e) {
-                log.error("Error during EncryptedData KeyInfo generation", e);
+                log.error("Error during EncryptedData KeyInfo generation: {}", e.getMessage());
                 throw new EncryptionException("Error during EncryptedData KeyInfo generation", e);
             }
         }
@@ -620,7 +620,7 @@ public class Encrypter {
                 }
                 targetElement = marshaller.marshall(xmlObject);
             } catch (final MarshallingException e) {
-                log.error("Error marshalling target XMLObject", e);
+                log.error("Error marshalling target XMLObject: {}", e.getMessage());
                 throw new EncryptionException("Error marshalling target XMLObject", e);
             }
         }
diff --git a/opensaml-xmlsec-api/src/main/java/org/opensaml/xmlsec/keyinfo/KeyInfoSupport.java b/opensaml-xmlsec-api/src/main/java/org/opensaml/xmlsec/keyinfo/KeyInfoSupport.java
index 19ef491..e4c6e1e 100644
--- a/opensaml-xmlsec-api/src/main/java/org/opensaml/xmlsec/keyinfo/KeyInfoSupport.java
+++ b/opensaml-xmlsec-api/src/main/java/org/opensaml/xmlsec/keyinfo/KeyInfoSupport.java
@@ -790,10 +790,10 @@ public class KeyInfoSupport {
             return keyFactory.generatePublic(keySpec);
         } catch (final NoSuchAlgorithmException e) {
             final String msg = keyAlgorithm + " algorithm is not supported by this JCE"; 
-            log.error(msg, e);
+            log.error(msg + ": {}", e.getMessage());
             throw new KeyException(msg, e);
         } catch (final InvalidKeySpecException e) {
-            log.error("Invalid key information", e);
+            log.error("Invalid key information: {}", e.getMessage());
             throw new KeyException("Invalid key information", e);
         }
     }
diff --git a/opensaml-xmlsec-api/src/main/java/org/opensaml/xmlsec/signature/support/SignatureSupport.java b/opensaml-xmlsec-api/src/main/java/org/opensaml/xmlsec/signature/support/SignatureSupport.java
index 38f1df3..8afbcf4 100644
--- a/opensaml-xmlsec-api/src/main/java/org/opensaml/xmlsec/signature/support/SignatureSupport.java
+++ b/opensaml-xmlsec-api/src/main/java/org/opensaml/xmlsec/signature/support/SignatureSupport.java
@@ -170,7 +170,7 @@ public final class SignatureSupport {
                     final KeyInfo keyInfo = kiGenerator.generate(signature.getSigningCredential());
                     signature.setKeyInfo(keyInfo);
                 } catch (final SecurityException e) {
-                    log.error("Error generating KeyInfo from credential", e);
+                    log.error("Error generating KeyInfo from credential: {}", e.getMessage());
                     throw e;
                 }
             } else {
diff --git a/opensaml-xmlsec-impl/src/main/java/org/opensaml/xmlsec/keyinfo/impl/provider/DEREncodedKeyValueProvider.java b/opensaml-xmlsec-impl/src/main/java/org/opensaml/xmlsec/keyinfo/impl/provider/DEREncodedKeyValueProvider.java
index 8c5be01..aca97f9 100644
--- a/opensaml-xmlsec-impl/src/main/java/org/opensaml/xmlsec/keyinfo/impl/provider/DEREncodedKeyValueProvider.java
+++ b/opensaml-xmlsec-impl/src/main/java/org/opensaml/xmlsec/keyinfo/impl/provider/DEREncodedKeyValueProvider.java
@@ -69,7 +69,7 @@ public class DEREncodedKeyValueProvider extends AbstractKeyInfoProvider {
         try {
             pubKey = KeyInfoSupport.getKey(keyValue);
         } catch (final KeyException e) {
-            log.error("Error extracting DER-encoded key value", e);
+            log.error("Error extracting DER-encoded key value: {}", e.getMessage());
             throw new SecurityException("Error extracting DER-encoded key value", e);
         }
         
diff --git a/opensaml-xmlsec-impl/src/main/java/org/opensaml/xmlsec/keyinfo/impl/provider/DSAKeyValueProvider.java b/opensaml-xmlsec-impl/src/main/java/org/opensaml/xmlsec/keyinfo/impl/provider/DSAKeyValueProvider.java
index a866b7a..59e49ca 100644
--- a/opensaml-xmlsec-impl/src/main/java/org/opensaml/xmlsec/keyinfo/impl/provider/DSAKeyValueProvider.java
+++ b/opensaml-xmlsec-impl/src/main/java/org/opensaml/xmlsec/keyinfo/impl/provider/DSAKeyValueProvider.java
@@ -81,7 +81,7 @@ public class DSAKeyValueProvider extends AbstractKeyInfoProvider {
             //TODO deal with case of incomplete DSAParams, need hook to resolve those
             pubKey = KeyInfoSupport.getDSAKey(keyValue);
         } catch (final KeyException e) {
-            log.error("Error extracting DSA key value", e);
+            log.error("Error extracting DSA key value: {}", e.getMessage());
             throw new SecurityException("Error extracting DSA key value", e);
         }
         final BasicCredential cred = new BasicCredential(pubKey);
diff --git a/opensaml-xmlsec-impl/src/main/java/org/opensaml/xmlsec/keyinfo/impl/provider/InlineX509DataProvider.java b/opensaml-xmlsec-impl/src/main/java/org/opensaml/xmlsec/keyinfo/impl/provider/InlineX509DataProvider.java
index a457c0a..c10a331 100644
--- a/opensaml-xmlsec-impl/src/main/java/org/opensaml/xmlsec/keyinfo/impl/provider/InlineX509DataProvider.java
+++ b/opensaml-xmlsec-impl/src/main/java/org/opensaml/xmlsec/keyinfo/impl/provider/InlineX509DataProvider.java
@@ -167,7 +167,7 @@ public class InlineX509DataProvider extends AbstractKeyInfoProvider {
         try {
             crls = KeyInfoSupport.getCRLs(x509Data);
         } catch (final CRLException e) {
-            log.error("Error extracting CRLs from X509Data", e);
+            log.error("Error extracting CRLs from X509Data: {}", e.getMessage());
             throw new SecurityException("Error extracting CRLs from X509Data", e);
         }
 
@@ -188,7 +188,7 @@ public class InlineX509DataProvider extends AbstractKeyInfoProvider {
         try {
             certs = KeyInfoSupport.getCertificates(x509Data);
         } catch (final CertificateException e) {
-            log.error("Error extracting certificates from X509Data", e);
+            log.error("Error extracting certificates from X509Data: {}", e.getMessage());
             throw new SecurityException("Error extracting certificates from X509Data", e);
         }
         log.debug("Found {} X509Certificates", certs.size());
diff --git a/opensaml-xmlsec-impl/src/main/java/org/opensaml/xmlsec/keyinfo/impl/provider/RSAKeyValueProvider.java b/opensaml-xmlsec-impl/src/main/java/org/opensaml/xmlsec/keyinfo/impl/provider/RSAKeyValueProvider.java
index 8719b6e..37eb4f9 100644
--- a/opensaml-xmlsec-impl/src/main/java/org/opensaml/xmlsec/keyinfo/impl/provider/RSAKeyValueProvider.java
+++ b/opensaml-xmlsec-impl/src/main/java/org/opensaml/xmlsec/keyinfo/impl/provider/RSAKeyValueProvider.java
@@ -79,7 +79,7 @@ public class RSAKeyValueProvider extends AbstractKeyInfoProvider {
         try {
             pubKey = KeyInfoSupport.getRSAKey(keyValue);
         } catch (final KeyException e) {
-            log.error("Error extracting RSA key value", e);
+            log.error("Error extracting RSA key value: {}", e.getMessage());
             throw new SecurityException("Error extracting RSA key value", e);
         }
         final BasicCredential cred = new BasicCredential(pubKey);
diff --git a/opensaml-xmlsec-impl/src/main/java/org/opensaml/xmlsec/messaging/impl/PopulateSignatureValidationParametersHandler.java b/opensaml-xmlsec-impl/src/main/java/org/opensaml/xmlsec/messaging/impl/PopulateSignatureValidationParametersHandler.java
index 5eee0b8..096468c 100644
--- a/opensaml-xmlsec-impl/src/main/java/org/opensaml/xmlsec/messaging/impl/PopulateSignatureValidationParametersHandler.java
+++ b/opensaml-xmlsec-impl/src/main/java/org/opensaml/xmlsec/messaging/impl/PopulateSignatureValidationParametersHandler.java
@@ -153,7 +153,7 @@ public class PopulateSignatureValidationParametersHandler extends AbstractMessag
             log.debug("{} {} SignatureValidationParameters", getLogPrefix(),
                     params != null ? "Resolved" : "Failed to resolve");
         } catch (final ResolverException e) {
-            log.error("{} Error resolving SignatureValidationParameters", getLogPrefix(), e);
+            log.error("{} Error resolving SignatureValidationParameters: {}", getLogPrefix(), e.getMessage());
             throw new MessageHandlerException("Error resolving SignatureValidationParameters");
         }
     }
diff --git a/opensaml-xmlsec-impl/src/main/java/org/opensaml/xmlsec/signature/impl/SignatureMarshaller.java b/opensaml-xmlsec-impl/src/main/java/org/opensaml/xmlsec/signature/impl/SignatureMarshaller.java
index 2ced898..b1b61ac 100644
--- a/opensaml-xmlsec-impl/src/main/java/org/opensaml/xmlsec/signature/impl/SignatureMarshaller.java
+++ b/opensaml-xmlsec-impl/src/main/java/org/opensaml/xmlsec/signature/impl/SignatureMarshaller.java
@@ -134,7 +134,7 @@ public class SignatureMarshaller implements Marshaller {
 
         } catch (final XMLSecurityException e) {
             final String msg = "Unable to construct signature Element " + signature.getElementQName(); 
-            log.error(msg, e);
+            log.error(msg + ": {}", e.getMessage());
             throw new MarshallingException(msg, e);
         }
     }
diff --git a/opensaml-xmlsec-impl/src/main/java/org/opensaml/xmlsec/signature/support/impl/SignatureAlgorithmValidator.java b/opensaml-xmlsec-impl/src/main/java/org/opensaml/xmlsec/signature/support/impl/SignatureAlgorithmValidator.java
index 951d70a..e87eefc 100644
--- a/opensaml-xmlsec-impl/src/main/java/org/opensaml/xmlsec/signature/support/impl/SignatureAlgorithmValidator.java
+++ b/opensaml-xmlsec-impl/src/main/java/org/opensaml/xmlsec/signature/support/impl/SignatureAlgorithmValidator.java
@@ -131,8 +131,8 @@ public class SignatureAlgorithmValidator {
      */
     protected void checkDOM(@Nonnull final Signature signature) throws SignatureException {
         if (signature.getDOM() == null) {
-            log.warn("Signgaure does not have a cached DOM Element.");
-            throw new SignatureException("Signature does not have a cached DOM Element.");
+            log.warn("Signature does not have a cached DOM Element");
+            throw new SignatureException("Signature does not have a cached DOM Element");
         }
     }
     
diff --git a/opensaml-xmlsec-impl/src/main/java/org/opensaml/xmlsec/signature/support/impl/provider/ApacheSantuarioSignerProviderImpl.java b/opensaml-xmlsec-impl/src/main/java/org/opensaml/xmlsec/signature/support/impl/provider/ApacheSantuarioSignerProviderImpl.java
index 0f98c98..51ddcf9 100644
--- a/opensaml-xmlsec-impl/src/main/java/org/opensaml/xmlsec/signature/support/impl/provider/ApacheSantuarioSignerProviderImpl.java
+++ b/opensaml-xmlsec-impl/src/main/java/org/opensaml/xmlsec/signature/support/impl/provider/ApacheSantuarioSignerProviderImpl.java
@@ -51,14 +51,14 @@ public class ApacheSantuarioSignerProviderImpl implements SignerProvider {
 
             if (xmlSignature == null) {
                 log.error("Unable to compute signature, Signature XMLObject does not have the XMLSignature "
-                        + "created during marshalling.");
+                        + "created during marshalling");
                 throw new SignatureException(
                         "XMLObject does not have XMLSignature instance, unable to compute signature");
             }
             log.debug("Computing signature over XMLSignature object");
             xmlSignature.sign(CredentialSupport.extractSigningKey(signature.getSigningCredential()));
         } catch (final XMLSecurityException e) {
-            log.error("An error occured computing the digital signature", e);
+            log.error("An error occured computing the digital signature: {}", e.getMessage());
             throw new SignatureException("Signature computation error", e);
         }
     }

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


More information about the commits mailing list