[java-opensaml] branch main updated: IDP-2069 - Null Handling Task

Scott Cantor cantor.2 at osu.edu
Mon Apr 10 14:54:16 UTC 2023


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

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

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

The following commit(s) were added to refs/heads/main by this push:
     new 50a6c789c IDP-2069 - Null Handling Task
50a6c789c is described below

commit 50a6c789cdca767c291746100838458cc3a6182f
Author: Scott Cantor <cantor.2 at osu.edu>
AuthorDate: Mon Apr 10 10:54:13 2023 -0400

    IDP-2069 - Null Handling Task
    
    https://shibboleth.atlassian.net/browse/IDP-2069
    
    Test fixes.
---
 .../artifact/impl/BasicSAMLArtifactMapTest.java    |  14 +-
 ...rageServiceSAMLArtifactMapEntryFactoryTest.java |   9 +-
 .../impl/StorageServiceSAMLArtifactMapTest.java    |  14 +-
 .../impl/AddChannelBindingsHeaderHandlerTest.java  |   1 +
 .../impl/CheckMessageVersionHandlerTest.java       |  13 +-
 .../binding/impl/DefaultEndpointResolverTest.java  |  38 +++---
 ...ulateSignatureSigningParametersHandlerTest.java |  37 +++---
 ...SAMLAddAttributeConsumingServiceHandleTest.java |  28 ++--
 .../impl/SAMLMetadataLookupHandlerTest.java        | 144 +++++++++++----------
 .../impl/SAMLOutboundDestinationHandlerTest.java   |   5 +-
 .../impl/SAMLProtocolAndRoleHandlerTest.java       |  55 ++++----
 .../impl/EndpointURLSchemeSecurityHandlerTest.java |  13 +-
 .../impl/InResponseToSecurityHandlerTest.java      |  44 +++----
 .../impl/MessageLifetimeSecurityHandlerTest.java   |  12 +-
 .../impl/MessageReplaySecurityHandlerTest.java     |   8 +-
 .../impl/ReceivedEndpointSecurityHandlerTest.java  |  10 +-
 .../SAMLMDClientCertAuthSecurityHandlerTest.java   |  44 ++++---
 ...LOutboundProtocolMessageSigningHandlerTest.java |   3 +-
 .../AddAudienceRestrictionToAssertionsTest.java    |  46 ++++---
 .../impl/AddInResponseToToResponseTest.java        |  16 ++-
 .../AddNotBeforeConditionToAssertionsTest.java     |  16 ++-
 21 files changed, 320 insertions(+), 250 deletions(-)

diff --git a/opensaml-saml-impl/src/test/java/org/opensaml/saml/common/binding/artifact/impl/BasicSAMLArtifactMapTest.java b/opensaml-saml-impl/src/test/java/org/opensaml/saml/common/binding/artifact/impl/BasicSAMLArtifactMapTest.java
index e4b4ebbfa..9748682e1 100644
--- a/opensaml-saml-impl/src/test/java/org/opensaml/saml/common/binding/artifact/impl/BasicSAMLArtifactMapTest.java
+++ b/opensaml-saml-impl/src/test/java/org/opensaml/saml/common/binding/artifact/impl/BasicSAMLArtifactMapTest.java
@@ -20,6 +20,8 @@ package org.opensaml.saml.common.binding.artifact.impl;
 import java.io.IOException;
 import java.time.Duration;
 
+import javax.annotation.Nonnull;
+
 import org.opensaml.core.testing.XMLObjectBaseTestCase;
 import org.opensaml.core.xml.io.MarshallingException;
 import org.opensaml.saml.common.SAMLObject;
@@ -34,13 +36,14 @@ import org.xmlunit.diff.Diff;
 /**
  * Test the storage-backed SAML artifact map implementation.
  */
+ at SuppressWarnings("javadoc")
 public class BasicSAMLArtifactMapTest extends XMLObjectBaseTestCase {
 
     private BasicSAMLArtifactMap artifactMap;
 
-    private String artifact = "the-artifact";
-    private String issuerId = "urn:test:issuer";
-    private String rpId = "urn:test:rp";
+    @Nonnull private final String artifact = "the-artifact";
+    @Nonnull private final String issuerId = "urn:test:issuer";
+    @Nonnull private final String rpId = "urn:test:rp";
 
     private SAMLObject samlObject;
     private Element origElement;
@@ -67,7 +70,7 @@ public class BasicSAMLArtifactMapTest extends XMLObjectBaseTestCase {
         Assert.assertTrue(artifactMap.contains(artifact));
 
         final SAMLArtifactMapEntry entry = artifactMap.get(artifact);
-        Assert.assertNotNull(entry);
+        assert entry != null;
 
         Assert.assertEquals(entry.getArtifact(), artifact, "Invalid value for artifact");
         Assert.assertEquals(entry.getIssuerId(), issuerId, "Invalid value for issuer ID");
@@ -75,8 +78,7 @@ public class BasicSAMLArtifactMapTest extends XMLObjectBaseTestCase {
 
         // Test SAMLObject reconstitution
         final SAMLObject retrievedObject = entry.getSamlMessage();
-        final Element newElement =
-                marshallerFactory.getMarshaller(retrievedObject).marshall(retrievedObject);
+        final Element newElement = marshallerFactory.ensureMarshaller(retrievedObject).marshall(retrievedObject);
         
         final Diff diff = DiffBuilder.compare(origElement).withTest(newElement).checkForIdentical().ignoreWhitespace().build();
         Assert.assertFalse(diff.hasDifferences(), diff.toString());
diff --git a/opensaml-saml-impl/src/test/java/org/opensaml/saml/common/binding/artifact/impl/StorageServiceSAMLArtifactMapEntryFactoryTest.java b/opensaml-saml-impl/src/test/java/org/opensaml/saml/common/binding/artifact/impl/StorageServiceSAMLArtifactMapEntryFactoryTest.java
index fbbe7d8c4..5182ba2ff 100644
--- a/opensaml-saml-impl/src/test/java/org/opensaml/saml/common/binding/artifact/impl/StorageServiceSAMLArtifactMapEntryFactoryTest.java
+++ b/opensaml-saml-impl/src/test/java/org/opensaml/saml/common/binding/artifact/impl/StorageServiceSAMLArtifactMapEntryFactoryTest.java
@@ -19,6 +19,8 @@ package org.opensaml.saml.common.binding.artifact.impl;
 
 import java.io.IOException;
 
+import javax.annotation.Nonnull;
+
 import org.testng.annotations.Test;
 import org.testng.annotations.BeforeMethod;
 import org.testng.Assert;
@@ -36,11 +38,12 @@ import org.opensaml.saml.saml1.core.Response;
 /**
  * Test the storage-backed SAML artifact map entry factory.
  */
+ at SuppressWarnings("javadoc")
 public class StorageServiceSAMLArtifactMapEntryFactoryTest extends XMLObjectBaseTestCase {
 
-    private String artifact = "the-artifact";
-    private String issuerId = "urn:test:issuer";
-    private String rpId = "urn:test:rp";
+    @Nonnull private final String artifact = "the-artifact";
+    @Nonnull private final String issuerId = "urn:test:issuer";
+    @Nonnull private final String rpId = "urn:test:rp";
     
     private StorageServiceSAMLArtifactMapEntryFactory factory;
     private SAMLObject samlObject;
diff --git a/opensaml-saml-impl/src/test/java/org/opensaml/saml/common/binding/artifact/impl/StorageServiceSAMLArtifactMapTest.java b/opensaml-saml-impl/src/test/java/org/opensaml/saml/common/binding/artifact/impl/StorageServiceSAMLArtifactMapTest.java
index dbc5cefb9..e9993cc68 100644
--- a/opensaml-saml-impl/src/test/java/org/opensaml/saml/common/binding/artifact/impl/StorageServiceSAMLArtifactMapTest.java
+++ b/opensaml-saml-impl/src/test/java/org/opensaml/saml/common/binding/artifact/impl/StorageServiceSAMLArtifactMapTest.java
@@ -20,6 +20,8 @@ package org.opensaml.saml.common.binding.artifact.impl;
 import java.io.IOException;
 import java.time.Duration;
 
+import javax.annotation.Nonnull;
+
 import org.opensaml.core.testing.XMLObjectBaseTestCase;
 import org.opensaml.core.xml.io.MarshallingException;
 import org.opensaml.saml.common.SAMLObject;
@@ -35,14 +37,15 @@ import org.xmlunit.diff.Diff;
 /**
  * Test the storage-backed SAML artifact map implementation.
  */
+ at SuppressWarnings("javadoc")
 public class StorageServiceSAMLArtifactMapTest extends XMLObjectBaseTestCase {
 
     private MemoryStorageService storageService;
     private StorageServiceSAMLArtifactMap artifactMap;
 
-    private String artifact = "the-artifact";
-    private String issuerId = "urn:test:issuer";
-    private String rpId = "urn:test:rp";
+    @Nonnull private final String artifact = "the-artifact";
+    @Nonnull private final String issuerId = "urn:test:issuer";
+    @Nonnull private final String rpId = "urn:test:rp";
 
     private SAMLObject samlObject;
     private Element origElement;
@@ -74,7 +77,7 @@ public class StorageServiceSAMLArtifactMapTest extends XMLObjectBaseTestCase {
         Assert.assertTrue(artifactMap.contains(artifact));
 
         final SAMLArtifactMapEntry entry = artifactMap.get(artifact);
-        Assert.assertNotNull(entry);
+        assert entry != null;
 
         Assert.assertEquals(entry.getArtifact(), artifact, "Invalid value for artifact");
         Assert.assertEquals(entry.getIssuerId(), issuerId, "Invalid value for issuer ID");
@@ -82,8 +85,7 @@ public class StorageServiceSAMLArtifactMapTest extends XMLObjectBaseTestCase {
 
         // Test SAMLObject reconstitution
         final SAMLObject retrievedObject = entry.getSamlMessage();
-        final Element newElement =
-                marshallerFactory.getMarshaller(retrievedObject).marshall(retrievedObject);
+        final Element newElement = marshallerFactory.ensureMarshaller(retrievedObject).marshall(retrievedObject);
         
         final Diff diff = DiffBuilder.compare(origElement).withTest(newElement).checkForIdentical().ignoreWhitespace().build();
         Assert.assertFalse(diff.hasDifferences(), diff.toString());
diff --git a/opensaml-saml-impl/src/test/java/org/opensaml/saml/common/binding/impl/AddChannelBindingsHeaderHandlerTest.java b/opensaml-saml-impl/src/test/java/org/opensaml/saml/common/binding/impl/AddChannelBindingsHeaderHandlerTest.java
index 04ed251bb..8bb8e5aba 100644
--- a/opensaml-saml-impl/src/test/java/org/opensaml/saml/common/binding/impl/AddChannelBindingsHeaderHandlerTest.java
+++ b/opensaml-saml-impl/src/test/java/org/opensaml/saml/common/binding/impl/AddChannelBindingsHeaderHandlerTest.java
@@ -37,6 +37,7 @@ import org.testng.annotations.Test;
 import net.shibboleth.shared.component.ComponentInitializationException;
 
 /** {@link AddChannelBindingsHeaderHandler} unit test. */
+ at SuppressWarnings("javadoc")
 public class AddChannelBindingsHeaderHandlerTest extends OpenSAMLInitBaseTestCase {
     
     private ChannelBindingsContext cbc;
diff --git a/opensaml-saml-impl/src/test/java/org/opensaml/saml/common/binding/impl/CheckMessageVersionHandlerTest.java b/opensaml-saml-impl/src/test/java/org/opensaml/saml/common/binding/impl/CheckMessageVersionHandlerTest.java
index 45486cc1f..c808df2c6 100644
--- a/opensaml-saml-impl/src/test/java/org/opensaml/saml/common/binding/impl/CheckMessageVersionHandlerTest.java
+++ b/opensaml-saml-impl/src/test/java/org/opensaml/saml/common/binding/impl/CheckMessageVersionHandlerTest.java
@@ -21,7 +21,7 @@ import org.opensaml.core.testing.OpenSAMLInitBaseTestCase;
 import org.opensaml.messaging.context.MessageContext;
 import org.opensaml.messaging.handler.MessageHandlerException;
 import org.opensaml.saml.common.SAMLVersion;
-import org.opensaml.saml.saml1.core.RequestAbstractType;
+import org.opensaml.saml.saml1.core.Request;
 import org.opensaml.saml.saml1.testing.SAML1ActionTestingSupport;
 import org.opensaml.saml.saml2.core.AttributeQuery;
 import org.opensaml.saml.saml2.testing.SAML2ActionTestingSupport;
@@ -30,6 +30,7 @@ import org.testng.annotations.Test;
 import net.shibboleth.shared.component.ComponentInitializationException;
 
 /** {@link CheckMessageVersionHandler} unit test. */
+ at SuppressWarnings("javadoc")
 public class CheckMessageVersionHandlerTest extends OpenSAMLInitBaseTestCase {
 
     @Test(expectedExceptions = MessageHandlerException.class)
@@ -106,8 +107,9 @@ public class CheckMessageVersionHandlerTest extends OpenSAMLInitBaseTestCase {
     @Test(expectedExceptions = MessageHandlerException.class)
     public void testSaml2MessageFail() throws MessageHandlerException, ComponentInitializationException {
         final MessageContext messageCtx = new MessageContext();
-        messageCtx.setMessage(SAML1ActionTestingSupport.buildAttributeQueryRequest(null));
-        ((RequestAbstractType) messageCtx.getMessage()).setVersion(SAMLVersion.VERSION_20);
+        final Request req = SAML1ActionTestingSupport.buildAttributeQueryRequest(null);
+        messageCtx.setMessage(req);
+        req.setVersion(SAMLVersion.VERSION_20);
 
         final CheckMessageVersionHandler handler = new CheckMessageVersionHandler();
         
@@ -143,8 +145,9 @@ public class CheckMessageVersionHandlerTest extends OpenSAMLInitBaseTestCase {
     @Test(expectedExceptions = MessageHandlerException.class)
     public void testSaml1MessageFail() throws MessageHandlerException, ComponentInitializationException {
         final MessageContext messageCtx = new MessageContext();
-        messageCtx.setMessage(SAML2ActionTestingSupport.buildAttributeQueryRequest(null));
-        ((AttributeQuery) messageCtx.getMessage()).setVersion(SAMLVersion.VERSION_11);
+        final AttributeQuery req = SAML2ActionTestingSupport.buildAttributeQueryRequest(null);
+        messageCtx.setMessage(req);
+        req.setVersion(SAMLVersion.VERSION_11);
 
         final CheckMessageVersionHandler handler = new CheckMessageVersionHandler();
         
diff --git a/opensaml-saml-impl/src/test/java/org/opensaml/saml/common/binding/impl/DefaultEndpointResolverTest.java b/opensaml-saml-impl/src/test/java/org/opensaml/saml/common/binding/impl/DefaultEndpointResolverTest.java
index 72dc3de1d..0053d9200 100644
--- a/opensaml-saml-impl/src/test/java/org/opensaml/saml/common/binding/impl/DefaultEndpointResolverTest.java
+++ b/opensaml-saml-impl/src/test/java/org/opensaml/saml/common/binding/impl/DefaultEndpointResolverTest.java
@@ -23,13 +23,13 @@ import java.io.FileNotFoundException;
 import java.net.URISyntaxException;
 import java.net.URL;
 import java.util.ArrayList;
-import java.util.Collections;
 import java.util.List;
 import java.util.stream.Collectors;
 
 import javax.annotation.Nonnull;
 
 import net.shibboleth.shared.annotation.constraint.NotEmpty;
+import net.shibboleth.shared.collection.CollectionSupport;
 import net.shibboleth.shared.component.ComponentInitializationException;
 import net.shibboleth.shared.resolver.CriteriaSet;
 import net.shibboleth.shared.resolver.ResolverException;
@@ -46,7 +46,6 @@ import org.opensaml.saml.criterion.RoleDescriptorCriterion;
 import org.opensaml.saml.saml2.metadata.AssertionConsumerService;
 import org.opensaml.saml.saml2.metadata.Endpoint;
 import org.opensaml.saml.saml2.metadata.SPSSODescriptor;
-import org.opensaml.saml.saml2.metadata.SingleLogoutService;
 import org.testng.Assert;
 import org.testng.annotations.BeforeClass;
 import org.testng.annotations.BeforeMethod;
@@ -54,6 +53,7 @@ import org.testng.annotations.Test;
 import org.w3c.dom.Document;
 
 /** Test for {@link DefaultEndpointResolver}. */
+ at SuppressWarnings("javadoc")
 public class DefaultEndpointResolverTest extends XMLObjectBaseTestCase {
 
     private static final String LOCATION = "https://sp.example.org/ACS";
@@ -107,7 +107,7 @@ public class DefaultEndpointResolverTest extends XMLObjectBaseTestCase {
     @Test
     public void testSignedRequestBadBinding() throws ResolverException {
         final CriteriaSet crits = new CriteriaSet(new EndpointCriterion<>(endpointCrit.getEndpoint(), true),
-                new BindingCriterion(Collections.emptyList()));
+                new BindingCriterion(CollectionSupport.emptyList()));
         final AssertionConsumerService ep = resolver.resolveSingle(crits);
         Assert.assertNull(ep);
     }
@@ -170,7 +170,7 @@ public class DefaultEndpointResolverTest extends XMLObjectBaseTestCase {
         final RoleDescriptorCriterion roleCrit =
                 new RoleDescriptorCriterion(loadMetadata("/org/opensaml/saml/common/binding/SPWithEndpoints.xml"));
         final CriteriaSet crits = new CriteriaSet(endpointCrit, roleCrit,
-                new BindingCriterion(Collections.singletonList(SAMLConstants.SAML2_ARTIFACT_BINDING_URI)));
+                new BindingCriterion(CollectionSupport.singletonList(SAMLConstants.SAML2_ARTIFACT_BINDING_URI)));
         final AssertionConsumerService ep = resolver.resolveSingle(crits);
         Assert.assertNull(ep);
     }
@@ -206,7 +206,7 @@ public class DefaultEndpointResolverTest extends XMLObjectBaseTestCase {
                 new RoleDescriptorCriterion(loadMetadata("/org/opensaml/saml/common/binding/SPWithEndpoints.xml"));
         final CriteriaSet crits = new CriteriaSet(endpointCrit, roleCrit);
         final AssertionConsumerService ep = resolver.resolveSingle(crits);
-        Assert.assertNotNull(ep);
+        assert ep != null;
         Assert.assertEquals(ep.getBinding(), SAMLConstants.SAML2_POST_BINDING_URI);
         Assert.assertEquals(ep.getLocation(), LOCATION_POST);
         Assert.assertEquals(ep.getIndex(), Integer.valueOf(2));
@@ -226,7 +226,7 @@ public class DefaultEndpointResolverTest extends XMLObjectBaseTestCase {
                 new RoleDescriptorCriterion(loadMetadata("/org/opensaml/saml/common/binding/SPWithEndpoints.xml"));
         final CriteriaSet crits = new CriteriaSet(endpointCrit, roleCrit);
         final AssertionConsumerService ep = resolver.resolveSingle(crits);
-        Assert.assertNotNull(ep);
+        assert ep != null;
         Assert.assertEquals(ep.getBinding(), SAMLConstants.SAML2_ARTIFACT_BINDING_URI);
         Assert.assertEquals(ep.getLocation(), LOCATION_ART);
         Assert.assertEquals(ep.getIndex(), Integer.valueOf(4));
@@ -245,9 +245,9 @@ public class DefaultEndpointResolverTest extends XMLObjectBaseTestCase {
         final RoleDescriptorCriterion roleCrit =
                 new RoleDescriptorCriterion(loadMetadata("/org/opensaml/saml/common/binding/SPWithEndpoints.xml"));
         final CriteriaSet crits = new CriteriaSet(endpointCrit, roleCrit,
-                new BindingCriterion(Collections.singletonList(SAMLConstants.SAML2_POST_BINDING_URI)));
+                new BindingCriterion(CollectionSupport.singletonList(SAMLConstants.SAML2_POST_BINDING_URI)));
         final AssertionConsumerService ep = resolver.resolveSingle(crits);
-        Assert.assertNotNull(ep);
+        assert ep != null;
         Assert.assertEquals(ep.getBinding(), SAMLConstants.SAML2_POST_BINDING_URI);
         Assert.assertEquals(ep.getLocation(), LOCATION_POST.replace("POST2", "POST"));
         Assert.assertEquals(ep.getIndex(), Integer.valueOf(1));
@@ -273,7 +273,7 @@ public class DefaultEndpointResolverTest extends XMLObjectBaseTestCase {
         Assert.assertEquals(eps.size(), 4);
         Assert.assertEquals(
                 eps.stream().map(Endpoint::getBinding).collect(Collectors.toUnmodifiableList()),
-                List.of(SAMLConstants.SAML2_ARTIFACT_BINDING_URI,
+                CollectionSupport.listOf(SAMLConstants.SAML2_ARTIFACT_BINDING_URI,
                         SAMLConstants.SAML2_POST_BINDING_URI,
                         SAMLConstants.SAML2_POST_BINDING_URI,
                         SAMLConstants.SAML2_ARTIFACT_BINDING_URI));
@@ -292,7 +292,7 @@ public class DefaultEndpointResolverTest extends XMLObjectBaseTestCase {
         final RoleDescriptorCriterion roleCrit =
                 new RoleDescriptorCriterion(loadMetadata("/org/opensaml/saml/common/binding/SPWithEndpoints.xml"));
         final CriteriaSet crits = new CriteriaSet(endpointCrit, roleCrit,
-                new BindingCriterion(List.of(SAMLConstants.SAML2_POST_BINDING_URI, SAMLConstants.SAML2_ARTIFACT_BINDING_URI)));
+                new BindingCriterion(CollectionSupport.listOf(SAMLConstants.SAML2_POST_BINDING_URI, SAMLConstants.SAML2_ARTIFACT_BINDING_URI)));
         final List<AssertionConsumerService> eps = new ArrayList<>();
         for (final AssertionConsumerService ep : resolver.resolve(crits)) {
             eps.add(ep);
@@ -300,7 +300,7 @@ public class DefaultEndpointResolverTest extends XMLObjectBaseTestCase {
         Assert.assertEquals(eps.size(), 4);
         Assert.assertEquals(
                 eps.stream().map(Endpoint::getBinding).collect(Collectors.toUnmodifiableList()),
-                List.of(SAMLConstants.SAML2_ARTIFACT_BINDING_URI,
+                CollectionSupport.listOf(SAMLConstants.SAML2_ARTIFACT_BINDING_URI,
                         SAMLConstants.SAML2_POST_BINDING_URI,
                         SAMLConstants.SAML2_POST_BINDING_URI,
                         SAMLConstants.SAML2_ARTIFACT_BINDING_URI));
@@ -324,7 +324,7 @@ public class DefaultEndpointResolverTest extends XMLObjectBaseTestCase {
         final RoleDescriptorCriterion roleCrit =
                 new RoleDescriptorCriterion(loadMetadata("/org/opensaml/saml/common/binding/SPWithEndpoints.xml"));
         final CriteriaSet crits = new CriteriaSet(endpointCrit, roleCrit,
-                new BindingCriterion(List.of(SAMLConstants.SAML2_POST_BINDING_URI, SAMLConstants.SAML2_ARTIFACT_BINDING_URI)));
+                new BindingCriterion(CollectionSupport.listOf(SAMLConstants.SAML2_POST_BINDING_URI, SAMLConstants.SAML2_ARTIFACT_BINDING_URI)));
         final List<AssertionConsumerService> eps = new ArrayList<>();
         for (final AssertionConsumerService ep : overridden.resolve(crits)) {
             eps.add(ep);
@@ -332,7 +332,7 @@ public class DefaultEndpointResolverTest extends XMLObjectBaseTestCase {
         Assert.assertEquals(eps.size(), 4);
         Assert.assertEquals(
                 eps.stream().map(Endpoint::getBinding).collect(Collectors.toUnmodifiableList()),
-                List.of(SAMLConstants.SAML2_POST_BINDING_URI,
+                CollectionSupport.listOf(SAMLConstants.SAML2_POST_BINDING_URI,
                         SAMLConstants.SAML2_POST_BINDING_URI,
                         SAMLConstants.SAML2_ARTIFACT_BINDING_URI,
                         SAMLConstants.SAML2_ARTIFACT_BINDING_URI));
@@ -371,22 +371,22 @@ public class DefaultEndpointResolverTest extends XMLObjectBaseTestCase {
         
         CriteriaSet crits = new CriteriaSet(endpointCrit, roleCrit, new BestMatchLocationCriterion("https://sp.example.org/Foo"));
         AssertionConsumerService ep = resolver.resolveSingle(crits);
-        Assert.assertNotNull(ep);
+        assert ep != null;
         Assert.assertEquals(ep.getLocation(), "https://sp.example.org/POST");
         
         crits = new CriteriaSet(endpointCrit, roleCrit, new BestMatchLocationCriterion("https://sp2.example.org/Foo"));
         ep = resolver.resolveSingle(crits);
-        Assert.assertNotNull(ep);
+        assert ep != null;
         Assert.assertEquals(ep.getLocation(), "https://sp2.example.org/POST");
         
         crits = new CriteriaSet(endpointCrit, roleCrit, new BestMatchLocationCriterion("https://sp2.example.org/bar/Foo"));
         ep = resolver.resolveSingle(crits);
-        Assert.assertNotNull(ep);
+        assert ep != null;
         Assert.assertEquals(ep.getLocation(), "https://sp2.example.org/POST");
         
         crits = new CriteriaSet(endpointCrit, roleCrit, new BestMatchLocationCriterion("https://sp2.example.org/sub/Foo"));
         ep = resolver.resolveSingle(crits);
-        Assert.assertNotNull(ep);
+        assert ep != null;
         Assert.assertEquals(ep.getLocation(), "https://sp2.example.org/sub/POST");
     }
     
@@ -395,9 +395,9 @@ public class DefaultEndpointResolverTest extends XMLObjectBaseTestCase {
         try {
             final URL url = getClass().getResource(path);
             Document doc = parserPool.parse(new FileInputStream(new File(url.toURI())));
-            final Unmarshaller unmarshaller = unmarshallerFactory.getUnmarshaller(doc.getDocumentElement());
+            final Unmarshaller unmarshaller = unmarshallerFactory.ensureUnmarshaller(doc.getDocumentElement());
             return (SPSSODescriptor) unmarshaller.unmarshall(doc.getDocumentElement());
-        } catch (FileNotFoundException | XMLParserException | URISyntaxException e) {
+        } catch (final FileNotFoundException | XMLParserException | URISyntaxException e) {
             throw new UnmarshallingException(e);
         }
     }
diff --git a/opensaml-saml-impl/src/test/java/org/opensaml/saml/common/binding/impl/PopulateSignatureSigningParametersHandlerTest.java b/opensaml-saml-impl/src/test/java/org/opensaml/saml/common/binding/impl/PopulateSignatureSigningParametersHandlerTest.java
index 0fddc854d..1a3e9ce4b 100644
--- a/opensaml-saml-impl/src/test/java/org/opensaml/saml/common/binding/impl/PopulateSignatureSigningParametersHandlerTest.java
+++ b/opensaml-saml-impl/src/test/java/org/opensaml/saml/common/binding/impl/PopulateSignatureSigningParametersHandlerTest.java
@@ -17,7 +17,8 @@
 
 package org.opensaml.saml.common.binding.impl;
 
-import java.util.Collections;
+import javax.annotation.Nonnull;
+import javax.annotation.Nullable;
 
 import org.opensaml.core.testing.OpenSAMLInitBaseTestCase;
 import org.opensaml.messaging.context.MessageContext;
@@ -34,13 +35,13 @@ import org.testng.Assert;
 import org.testng.annotations.BeforeMethod;
 import org.testng.annotations.Test;
 
+import net.shibboleth.shared.collection.CollectionSupport;
 import net.shibboleth.shared.component.ComponentInitializationException;
-import net.shibboleth.shared.logic.Constraint;
-import net.shibboleth.shared.logic.ConstraintViolationException;
 import net.shibboleth.shared.resolver.CriteriaSet;
 import net.shibboleth.shared.resolver.ResolverException;
 
 /** Unit test for {@link PopulateSignatureSigningParametersHandler}. */
+ at SuppressWarnings("javadoc")
 public class PopulateSignatureSigningParametersHandlerTest extends OpenSAMLInitBaseTestCase {
 
     private ProfileRequestContext prc;
@@ -57,14 +58,15 @@ public class PopulateSignatureSigningParametersHandlerTest extends OpenSAMLInitB
         handler.initialize();
     }
     
-    @Test(expectedExceptions=ConstraintViolationException.class)
     public void testNoContext() throws Exception {
         handler.setSignatureSigningParametersResolver(new MockResolver(false));
         handler.initialize();
         
         prc.setOutboundMessageContext(null);
         
-        handler.invoke(prc.getOutboundMessageContext());
+        handler.invoke(prc.ensureOutboundMessageContext());
+        Assert.assertNull(prc.ensureOutboundMessageContext().ensureSubcontext(
+                SecurityParametersContext.class).getSignatureSigningParameters());
     }
     
     @Test(expectedExceptions=MessageHandlerException.class)
@@ -72,7 +74,7 @@ public class PopulateSignatureSigningParametersHandlerTest extends OpenSAMLInitB
         handler.setSignatureSigningParametersResolver(new MockResolver(true));
         handler.initialize();
         
-        handler.invoke(prc.getOutboundMessageContext());
+        handler.invoke(prc.ensureOutboundMessageContext());
     }    
 
     @Test
@@ -80,8 +82,8 @@ public class PopulateSignatureSigningParametersHandlerTest extends OpenSAMLInitB
         handler.setSignatureSigningParametersResolver(new MockResolver(false));
         handler.initialize();
         
-        handler.invoke(prc.getOutboundMessageContext());
-        Assert.assertNotNull(prc.getOutboundMessageContext().getSubcontext(
+        handler.invoke(prc.ensureOutboundMessageContext());
+        Assert.assertNotNull(prc.ensureOutboundMessageContext().ensureSubcontext(
                 SecurityParametersContext.class).getSignatureSigningParameters());
     }    
 
@@ -98,9 +100,9 @@ public class PopulateSignatureSigningParametersHandlerTest extends OpenSAMLInitB
         
         prc.ensureSubcontext(SecurityParametersContext.class).setSignatureSigningParameters(new SignatureSigningParameters());
         
-        handler.invoke(prc.getOutboundMessageContext());
-        Assert.assertSame(prc.getSubcontext(SecurityParametersContext.class).getSignatureSigningParameters(),
-                prc.getOutboundMessageContext().getSubcontext(SecurityParametersContext.class).getSignatureSigningParameters());
+        handler.invoke(prc.ensureOutboundMessageContext());
+        Assert.assertSame(prc.ensureSubcontext(SecurityParametersContext.class).getSignatureSigningParameters(),
+                prc.ensureOutboundMessageContext().ensureSubcontext(SecurityParametersContext.class).getSignatureSigningParameters());
     }    
     
     private class MockResolver implements SignatureSigningParametersResolver {
@@ -112,19 +114,20 @@ public class PopulateSignatureSigningParametersHandlerTest extends OpenSAMLInitB
         }
         
         /** {@inheritDoc} */
-        @Override
-        public Iterable<SignatureSigningParameters> resolve(CriteriaSet criteria) throws ResolverException {
-            return Collections.singletonList(resolveSingle(criteria));
+        @Nonnull public Iterable<SignatureSigningParameters> resolve(@Nullable final CriteriaSet criteria) throws ResolverException {
+            final SignatureSigningParameters params = resolveSingle(criteria);
+            return params != null ? CollectionSupport.singletonList(params) : CollectionSupport.emptyList();
         }
 
         /** {@inheritDoc} */
-        @Override
-        public SignatureSigningParameters resolveSingle(CriteriaSet criteria) throws ResolverException {
+        @Nullable public SignatureSigningParameters resolveSingle(@Nullable final CriteriaSet criteria) throws ResolverException {
             if (throwException) {
                 throw new ResolverException();
             }
             
-            Constraint.isNotNull(criteria.get(SignatureSigningConfigurationCriterion.class), "Criterion was null");
+            if (criteria == null || criteria.get(SignatureSigningConfigurationCriterion.class) == null) {
+                return null;
+            }
             return new SignatureSigningParameters();
         }
         
diff --git a/opensaml-saml-impl/src/test/java/org/opensaml/saml/common/binding/impl/SAMLAddAttributeConsumingServiceHandleTest.java b/opensaml-saml-impl/src/test/java/org/opensaml/saml/common/binding/impl/SAMLAddAttributeConsumingServiceHandleTest.java
index 873e79d91..e86513523 100644
--- a/opensaml-saml-impl/src/test/java/org/opensaml/saml/common/binding/impl/SAMLAddAttributeConsumingServiceHandleTest.java
+++ b/opensaml-saml-impl/src/test/java/org/opensaml/saml/common/binding/impl/SAMLAddAttributeConsumingServiceHandleTest.java
@@ -39,13 +39,14 @@ import net.shibboleth.shared.component.ComponentInitializationException;
 /**
  * test for {@link SAMLAddAttributeConsumingServiceHandler}.
  */
+ at SuppressWarnings("javadoc")
 public class SAMLAddAttributeConsumingServiceHandleTest extends XMLObjectBaseTestCase {
     
     private SPSSODescriptor withACS;
     private SPSSODescriptor noACS;
     
     private SAMLMetadataContext getMetadataContext(final MessageContext message) {
-        return message.ensureSubcontext(SAMLPeerEntityContext.class).getSubcontext(SAMLMetadataContext.class, true);
+        return message.ensureSubcontext(SAMLPeerEntityContext.class).ensureSubcontext(SAMLMetadataContext.class);
     }
     
     private SAMLAddAttributeConsumingServiceHandler handler() throws ComponentInitializationException {
@@ -84,9 +85,10 @@ public class SAMLAddAttributeConsumingServiceHandleTest extends XMLObjectBaseTes
         messageContext.setMessage(request);
         
         handler().invoke(messageContext);
-        final AttributeConsumingService acs = metadataContext.getSubcontext(AttributeConsumingServiceContext.class).getAttributeConsumingService();
+        final AttributeConsumingService acs = metadataContext.ensureSubcontext(AttributeConsumingServiceContext.class).getAttributeConsumingService();
+        assert acs != null;
         
-        Assert.assertTrue(acs.isDefault());
+        Assert.assertEquals(acs.isDefault(), true);
         Assert.assertEquals(acs.getIndex(), 3);
     }
 
@@ -101,9 +103,10 @@ public class SAMLAddAttributeConsumingServiceHandleTest extends XMLObjectBaseTes
         messageContext.setMessage(request);
         
         handler().invoke(messageContext);
-        final AttributeConsumingService acs = metadataContext.getSubcontext(AttributeConsumingServiceContext.class).getAttributeConsumingService();
+        final AttributeConsumingService acs = metadataContext.ensureSubcontext(AttributeConsumingServiceContext.class).getAttributeConsumingService();
+        assert acs != null;
         
-        Assert.assertFalse(acs.isDefault());
+        Assert.assertEquals(acs.isDefault(), false);
         Assert.assertEquals(acs.getIndex(), 1);
     }
 
@@ -118,9 +121,10 @@ public class SAMLAddAttributeConsumingServiceHandleTest extends XMLObjectBaseTes
         messageContext.setMessage(request);
         
         handler().invoke(messageContext);
-        final AttributeConsumingService acs = metadataContext.getSubcontext(AttributeConsumingServiceContext.class).getAttributeConsumingService();
+        final AttributeConsumingService acs = metadataContext.ensureSubcontext(AttributeConsumingServiceContext.class).getAttributeConsumingService();
+        assert acs != null;
         
-        Assert.assertTrue(acs.isDefault());
+        Assert.assertEquals(acs.isDefault(), true);
         Assert.assertEquals(acs.getIndex(), 3);
     }
 
@@ -146,9 +150,10 @@ public class SAMLAddAttributeConsumingServiceHandleTest extends XMLObjectBaseTes
         messageContext.setMessage(request);
         
         handler().invoke(messageContext);
-        final AttributeConsumingService acs = metadataContext.getSubcontext(AttributeConsumingServiceContext.class).getAttributeConsumingService();
+        final AttributeConsumingService acs = metadataContext.ensureSubcontext(AttributeConsumingServiceContext.class).getAttributeConsumingService();
+        assert acs != null;
         
-        Assert.assertTrue(acs.isDefault());
+        Assert.assertEquals(acs.isDefault(), true);
         Assert.assertEquals(acs.getIndex(), 3);
     } 
 
@@ -167,9 +172,10 @@ public class SAMLAddAttributeConsumingServiceHandleTest extends XMLObjectBaseTes
         messageContext.setMessage(request);
         
         navigatedHandler.invoke(messageContext);
-        final AttributeConsumingService acs = metadataContext.getSubcontext(AttributeConsumingServiceContext.class).getAttributeConsumingService();
+        final AttributeConsumingService acs = metadataContext.ensureSubcontext(AttributeConsumingServiceContext.class).getAttributeConsumingService();
+        assert acs != null;
         
-        Assert.assertFalse(acs.isDefault());
+        Assert.assertEquals(acs.isDefault(), false);
         Assert.assertEquals(acs.getIndex(), 1);
     }
     
diff --git a/opensaml-saml-impl/src/test/java/org/opensaml/saml/common/binding/impl/SAMLMetadataLookupHandlerTest.java b/opensaml-saml-impl/src/test/java/org/opensaml/saml/common/binding/impl/SAMLMetadataLookupHandlerTest.java
index 43ac411ae..bf7c300e0 100644
--- a/opensaml-saml-impl/src/test/java/org/opensaml/saml/common/binding/impl/SAMLMetadataLookupHandlerTest.java
+++ b/opensaml-saml-impl/src/test/java/org/opensaml/saml/common/binding/impl/SAMLMetadataLookupHandlerTest.java
@@ -39,6 +39,7 @@ import org.opensaml.saml.saml1.core.AttributeQuery;
 import org.opensaml.saml.saml1.core.Request;
 import org.opensaml.saml.saml1.testing.SAML1ActionTestingSupport;
 import org.opensaml.saml.saml2.core.AuthnRequest;
+import org.opensaml.saml.saml2.core.Issuer;
 import org.opensaml.saml.saml2.metadata.EntityDescriptor;
 import org.opensaml.saml.saml2.metadata.IDPSSODescriptor;
 import org.opensaml.saml.saml2.metadata.RoleDescriptor;
@@ -50,7 +51,6 @@ import org.testng.annotations.BeforeMethod;
 import org.testng.annotations.Test;
 
 import net.shibboleth.shared.component.ComponentInitializationException;
-import net.shibboleth.shared.logic.ConstraintViolationException;
 import net.shibboleth.shared.resolver.CriteriaSet;
 import net.shibboleth.shared.resolver.ResolverException;
 
@@ -108,13 +108,6 @@ public class SAMLMetadataLookupHandlerTest extends XMLObjectBaseTestCase {
         } catch (ComponentInitializationException e) {
             
         }
-        
-        try {
-            handler.setRoleDescriptorResolver(null);
-            Assert.fail();
-        } catch (ConstraintViolationException e) {
-            
-        }
     }
     
     @Test
@@ -123,9 +116,9 @@ public class SAMLMetadataLookupHandlerTest extends XMLObjectBaseTestCase {
         handler.initialize();
         
         handler.invoke(messageContext);
-        Assert.assertNull(messageContext.getSubcontext(SAMLPeerEntityContext.class, false));
+        Assert.assertNull(messageContext.getSubcontext(SAMLPeerEntityContext.class));
         
-        SAMLPeerEntityContext peerContext = messageContext.getSubcontext(SAMLPeerEntityContext.class, true);
+        final SAMLPeerEntityContext peerContext = messageContext.ensureSubcontext(SAMLPeerEntityContext.class);
         peerContext.setRole(org.opensaml.saml.saml2.metadata.SPSSODescriptor.DEFAULT_ELEMENT_NAME);
         
         handler.invoke(messageContext);
@@ -137,11 +130,13 @@ public class SAMLMetadataLookupHandlerTest extends XMLObjectBaseTestCase {
         handler.setRoleDescriptorResolver(roleResolver);
         handler.initialize();
         
-        SAMLPeerEntityContext peerContext = messageContext.ensureSubcontext(SAMLPeerEntityContext.class);
+        final SAMLPeerEntityContext peerContext = messageContext.ensureSubcontext(SAMLPeerEntityContext.class);
         peerContext.setRole(IDPSSODescriptor.DEFAULT_ELEMENT_NAME);
         
-        Request request = SAML1ActionTestingSupport.buildAttributeQueryRequest(null);
-        ((AttributeQuery) request.getQuery()).setResource("urn:notfound");
+        final Request request = SAML1ActionTestingSupport.buildAttributeQueryRequest(null);
+        final AttributeQuery query = request.getAttributeQuery();
+        assert query != null;
+        query.setResource("urn:notfound");
         messageContext.setMessage(request);
 
         handler.invoke(messageContext);
@@ -153,11 +148,13 @@ public class SAMLMetadataLookupHandlerTest extends XMLObjectBaseTestCase {
         handler.setRoleDescriptorResolver(roleResolver);
         handler.initialize();
         
-        SAMLPeerEntityContext peerContext = messageContext.ensureSubcontext(SAMLPeerEntityContext.class);
+        final SAMLPeerEntityContext peerContext = messageContext.ensureSubcontext(SAMLPeerEntityContext.class);
         peerContext.setRole(SPSSODescriptor.DEFAULT_ELEMENT_NAME);
         
-        Request request = SAML1ActionTestingSupport.buildAttributeQueryRequest(null);
-        ((AttributeQuery) request.getQuery()).setResource("urn:mace:incommon:osu.edu");
+        final Request request = SAML1ActionTestingSupport.buildAttributeQueryRequest(null);
+        final AttributeQuery query = request.getAttributeQuery();
+        assert query != null;
+        query.setResource("urn:mace:incommon:osu.edu");
         messageContext.setMessage(request);
 
         handler.invoke(messageContext);
@@ -169,12 +166,14 @@ public class SAMLMetadataLookupHandlerTest extends XMLObjectBaseTestCase {
         handler.setRoleDescriptorResolver(roleResolver);
         handler.initialize();
         
-        SAMLPeerEntityContext peerContext = messageContext.ensureSubcontext(SAMLPeerEntityContext.class);
+        final SAMLPeerEntityContext peerContext = messageContext.ensureSubcontext(SAMLPeerEntityContext.class);
         peerContext.setRole(IDPSSODescriptor.DEFAULT_ELEMENT_NAME);
         messageContext.ensureSubcontext(SAMLProtocolContext.class).setProtocol("urn:foo");
         
-        Request request = SAML1ActionTestingSupport.buildAttributeQueryRequest(null);
-        ((AttributeQuery) request.getQuery()).setResource("urn:mace:incommon:osu.edu");
+        final Request request = SAML1ActionTestingSupport.buildAttributeQueryRequest(null);
+        final AttributeQuery query = request.getAttributeQuery();
+        assert query != null;
+        query.setResource("urn:mace:incommon:osu.edu");
         messageContext.setMessage(request);
 
         handler.invoke(messageContext);
@@ -186,18 +185,20 @@ public class SAMLMetadataLookupHandlerTest extends XMLObjectBaseTestCase {
         handler.setRoleDescriptorResolver(roleResolver);
         handler.initialize();
         
-        SAMLPeerEntityContext peerContext = messageContext.ensureSubcontext(SAMLPeerEntityContext.class);
+        final SAMLPeerEntityContext peerContext = messageContext.ensureSubcontext(SAMLPeerEntityContext.class);
         peerContext.setRole(IDPSSODescriptor.DEFAULT_ELEMENT_NAME);
         messageContext.ensureSubcontext(SAMLProtocolContext.class).setProtocol(SAMLConstants.SAML11P_NS);
         
-        Request request = SAML1ActionTestingSupport.buildAttributeQueryRequest(null);
-        ((AttributeQuery) request.getQuery()).setResource("urn:mace:incommon:osu.edu");
+        final Request request = SAML1ActionTestingSupport.buildAttributeQueryRequest(null);
+        final AttributeQuery query = request.getAttributeQuery();
+        assert query != null;
+        query.setResource("urn:mace:incommon:osu.edu");
         messageContext.setMessage(request);
 
         handler.invoke(messageContext);
         
-        SAMLMetadataContext mdCtx = peerContext.getSubcontext(SAMLMetadataContext.class);
-        Assert.assertNotNull(mdCtx);
+        final SAMLMetadataContext mdCtx = peerContext.getSubcontext(SAMLMetadataContext.class);
+        assert mdCtx != null;
         Assert.assertNotNull(mdCtx.getRoleDescriptor());
         Assert.assertNotNull(mdCtx.getEntityDescriptor());
     }
@@ -208,19 +209,21 @@ public class SAMLMetadataLookupHandlerTest extends XMLObjectBaseTestCase {
         handler.setRoleDescriptorResolver(roleResolver);
         handler.initialize();
         
-        SAMLPresenterEntityContext presenterContext = messageContext.ensureSubcontext(SAMLPresenterEntityContext.class);
+        final SAMLPresenterEntityContext presenterContext = messageContext.ensureSubcontext(SAMLPresenterEntityContext.class);
         presenterContext.setEntityId("https://carmenwiki.osu.edu/shibboleth");
         presenterContext.setRole(SPSSODescriptor.DEFAULT_ELEMENT_NAME);
         messageContext.ensureSubcontext(SAMLProtocolContext.class).setProtocol(SAMLConstants.SAML20P_NS);
         
-        AuthnRequest authnRequest = SAML2ActionTestingSupport.buildAuthnRequest();
-        authnRequest.getIssuer().setValue("https://carmenwiki.osu.edu/shibboleth");
+        final AuthnRequest authnRequest = SAML2ActionTestingSupport.buildAuthnRequest();
+        final Issuer issuer = authnRequest.getIssuer();
+        assert issuer != null;
+        issuer.setValue("https://carmenwiki.osu.edu/shibboleth");
         messageContext.setMessage(authnRequest);
 
         handler.invoke(messageContext);
         
-        SAMLMetadataContext mdCtx = presenterContext.getSubcontext(SAMLMetadataContext.class);
-        Assert.assertNotNull(mdCtx);
+        final SAMLMetadataContext mdCtx = presenterContext.getSubcontext(SAMLMetadataContext.class);
+        assert mdCtx != null;
         Assert.assertNotNull(mdCtx.getRoleDescriptor());
         Assert.assertNotNull(mdCtx.getEntityDescriptor());
     }
@@ -231,18 +234,20 @@ public class SAMLMetadataLookupHandlerTest extends XMLObjectBaseTestCase {
         handler.setCopyContextStrategy(copyContextStrategy);
         handler.initialize();
 
-        SAMLPeerEntityContext peerContext = messageContext.ensureSubcontext(SAMLPeerEntityContext.class);
+        final SAMLPeerEntityContext peerContext = messageContext.ensureSubcontext(SAMLPeerEntityContext.class);
         peerContext.setRole(IDPSSODescriptor.DEFAULT_ELEMENT_NAME);
         messageContext.ensureSubcontext(SAMLProtocolContext.class).setProtocol(SAMLConstants.SAML11P_NS);
 
-        Request request = SAML1ActionTestingSupport.buildAttributeQueryRequest(null);
-        ((AttributeQuery) request.getQuery()).setResource("urn:mace:incommon:osu.edu");
+        final Request request = SAML1ActionTestingSupport.buildAttributeQueryRequest(null);
+        final AttributeQuery query = request.getAttributeQuery();
+        assert query != null;
+        query.setResource("urn:mace:incommon:osu.edu");
         messageContext.setMessage(request);
 
         handler.invoke(messageContext);
 
-        SAMLMetadataContext mdCtx = peerContext.getSubcontext(SAMLMetadataContext.class);
-        Assert.assertNotNull(mdCtx);
+        final SAMLMetadataContext mdCtx = peerContext.getSubcontext(SAMLMetadataContext.class);
+        assert mdCtx != null;
         Assert.assertNotSame(mdCtx, existingMetadataContext);
         Assert.assertNotNull(mdCtx.getRoleDescriptor());
         Assert.assertSame(mdCtx.getRoleDescriptor(), existingMetadataContext.getRoleDescriptor());
@@ -258,18 +263,20 @@ public class SAMLMetadataLookupHandlerTest extends XMLObjectBaseTestCase {
         handler.setCopyContextStrategy(copyContextStrategy);
         handler.initialize();
 
-        SAMLPeerEntityContext peerContext = messageContext.ensureSubcontext(SAMLPeerEntityContext.class);
+        final SAMLPeerEntityContext peerContext = messageContext.ensureSubcontext(SAMLPeerEntityContext.class);
         peerContext.setRole(IDPSSODescriptor.DEFAULT_ELEMENT_NAME);
         messageContext.ensureSubcontext(SAMLProtocolContext.class).setProtocol(SAMLConstants.SAML11P_NS);
 
-        Request request = SAML1ActionTestingSupport.buildAttributeQueryRequest(null);
-        ((AttributeQuery) request.getQuery()).setResource("urn:mace:incommon:osu.edu");
+        final Request request = SAML1ActionTestingSupport.buildAttributeQueryRequest(null);
+        final AttributeQuery query = request.getAttributeQuery();
+        assert query != null;
+        query.setResource("urn:mace:incommon:osu.edu");
         messageContext.setMessage(request);
 
         handler.invoke(messageContext);
 
-        SAMLMetadataContext mdCtx = peerContext.getSubcontext(SAMLMetadataContext.class);
-        Assert.assertNotNull(mdCtx);
+        final SAMLMetadataContext mdCtx = peerContext.getSubcontext(SAMLMetadataContext.class);
+        assert mdCtx != null;
         Assert.assertNotSame(mdCtx, existingMetadataContext);
         Assert.assertNotNull(mdCtx.getRoleDescriptor());
         Assert.assertNotSame(mdCtx.getRoleDescriptor(), existingMetadataContext.getRoleDescriptor());
@@ -285,18 +292,20 @@ public class SAMLMetadataLookupHandlerTest extends XMLObjectBaseTestCase {
         handler.setCopyContextStrategy(copyContextStrategy);
         handler.initialize();
 
-        SAMLPeerEntityContext peerContext = messageContext.ensureSubcontext(SAMLPeerEntityContext.class);
+        final SAMLPeerEntityContext peerContext = messageContext.ensureSubcontext(SAMLPeerEntityContext.class);
         peerContext.setRole(IDPSSODescriptor.DEFAULT_ELEMENT_NAME);
         messageContext.ensureSubcontext(SAMLProtocolContext.class).setProtocol(SAMLConstants.SAML11P_NS);
 
-        Request request = SAML1ActionTestingSupport.buildAttributeQueryRequest(null);
-        ((AttributeQuery) request.getQuery()).setResource("urn:mace:incommon:osu.edu");
+        final Request request = SAML1ActionTestingSupport.buildAttributeQueryRequest(null);
+        final AttributeQuery query = request.getAttributeQuery();
+        assert query != null;
+        query.setResource("urn:mace:incommon:osu.edu");
         messageContext.setMessage(request);
 
         handler.invoke(messageContext);
 
-        SAMLMetadataContext mdCtx = peerContext.getSubcontext(SAMLMetadataContext.class);
-        Assert.assertNotNull(mdCtx);
+        final SAMLMetadataContext mdCtx = peerContext.getSubcontext(SAMLMetadataContext.class);
+        assert mdCtx != null;
         Assert.assertNotSame(mdCtx, existingMetadataContext);
         Assert.assertNotNull(mdCtx.getRoleDescriptor());
         Assert.assertNotSame(mdCtx.getRoleDescriptor(), existingMetadataContext.getRoleDescriptor());
@@ -312,18 +321,20 @@ public class SAMLMetadataLookupHandlerTest extends XMLObjectBaseTestCase {
         handler.setCopyContextStrategy(copyContextStrategy);
         handler.initialize();
 
-        SAMLPeerEntityContext peerContext = messageContext.ensureSubcontext(SAMLPeerEntityContext.class);
+        final SAMLPeerEntityContext peerContext = messageContext.ensureSubcontext(SAMLPeerEntityContext.class);
         peerContext.setRole(IDPSSODescriptor.DEFAULT_ELEMENT_NAME);
         messageContext.ensureSubcontext(SAMLProtocolContext.class).setProtocol(SAMLConstants.SAML11P_NS);
 
-        Request request = SAML1ActionTestingSupport.buildAttributeQueryRequest(null);
-        ((AttributeQuery) request.getQuery()).setResource("urn:mace:incommon:osu.edu");
+        final Request request = SAML1ActionTestingSupport.buildAttributeQueryRequest(null);
+        final AttributeQuery query = request.getAttributeQuery();
+        assert query != null;
+        query.setResource("urn:mace:incommon:osu.edu");
         messageContext.setMessage(request);
 
         handler.invoke(messageContext);
 
-        SAMLMetadataContext mdCtx = peerContext.getSubcontext(SAMLMetadataContext.class);
-        Assert.assertNotNull(mdCtx);
+        final SAMLMetadataContext mdCtx = peerContext.getSubcontext(SAMLMetadataContext.class);
+        assert mdCtx != null;
         Assert.assertNotSame(mdCtx, existingMetadataContext);
         Assert.assertNotNull(mdCtx.getRoleDescriptor());
         Assert.assertNotSame(mdCtx.getRoleDescriptor(), existingMetadataContext.getRoleDescriptor());
@@ -339,18 +350,20 @@ public class SAMLMetadataLookupHandlerTest extends XMLObjectBaseTestCase {
         handler.setCopyContextStrategy(copyContextStrategy);
         handler.initialize();
 
-        SAMLPeerEntityContext peerContext = messageContext.ensureSubcontext(SAMLPeerEntityContext.class);
+        final SAMLPeerEntityContext peerContext = messageContext.ensureSubcontext(SAMLPeerEntityContext.class);
         peerContext.setRole(IDPSSODescriptor.DEFAULT_ELEMENT_NAME);
         messageContext.ensureSubcontext(SAMLProtocolContext.class).setProtocol(SAMLConstants.SAML11P_NS);
 
-        Request request = SAML1ActionTestingSupport.buildAttributeQueryRequest(null);
-        ((AttributeQuery) request.getQuery()).setResource("urn:mace:incommon:osu.edu");
+        final Request request = SAML1ActionTestingSupport.buildAttributeQueryRequest(null);
+        final AttributeQuery query = request.getAttributeQuery();
+        assert query != null;
+        query.setResource("urn:mace:incommon:osu.edu");
         messageContext.setMessage(request);
 
         handler.invoke(messageContext);
 
-        SAMLMetadataContext mdCtx = peerContext.getSubcontext(SAMLMetadataContext.class);
-        Assert.assertNotNull(mdCtx);
+        final SAMLMetadataContext mdCtx = peerContext.getSubcontext(SAMLMetadataContext.class);
+        assert mdCtx != null;
         Assert.assertNotSame(mdCtx, existingMetadataContext);
         Assert.assertNotNull(mdCtx.getRoleDescriptor());
         Assert.assertNotSame(mdCtx.getRoleDescriptor(), existingMetadataContext.getRoleDescriptor());
@@ -363,31 +376,32 @@ public class SAMLMetadataLookupHandlerTest extends XMLObjectBaseTestCase {
         handler.setRoleDescriptorResolver(roleResolver);
         handler.initialize();
         
-        SAMLPeerEntityContext peerContext = messageContext.ensureSubcontext(SAMLPeerEntityContext.class);
+        final SAMLPeerEntityContext peerContext = messageContext.ensureSubcontext(SAMLPeerEntityContext.class);
         peerContext.setRole(IDPSSODescriptor.DEFAULT_ELEMENT_NAME);
         messageContext.ensureSubcontext(SAMLProtocolContext.class).setProtocol(SAMLConstants.SAML11P_NS);
         
         messageContext.ensureSubcontext(SAMLMetadataLookupParametersContext.class).setDetectDuplicateEntityIDs(DetectDuplicateEntityIDs.Batch);
         
-        Request request = SAML1ActionTestingSupport.buildAttributeQueryRequest(null);
-        ((AttributeQuery) request.getQuery()).setResource("urn:mace:incommon:osu.edu");
+        final Request request = SAML1ActionTestingSupport.buildAttributeQueryRequest(null);
+        final AttributeQuery query = request.getAttributeQuery();
+        assert query != null;
+        query.setResource("urn:mace:incommon:osu.edu");
         messageContext.setMessage(request);
 
         // The context data/criterion won't influence the actual results, so just test that criterion has been added as expected.
-        CriteriaSet criteria = handler.buildLookupCriteria(messageContext, "urn:mace:incommon:osu.edu", IDPSSODescriptor.DEFAULT_ELEMENT_NAME);
-        Assert.assertNotNull(criteria);
-        Assert.assertTrue(criteria.contains(DetectDuplicateEntityIDsCriterion.class));
-        Assert.assertEquals(criteria.get(DetectDuplicateEntityIDsCriterion.class).getValue(), DetectDuplicateEntityIDs.Batch);
+        final CriteriaSet criteria = handler.buildLookupCriteria(messageContext, "urn:mace:incommon:osu.edu", IDPSSODescriptor.DEFAULT_ELEMENT_NAME);
+        assert criteria != null;
+        final DetectDuplicateEntityIDsCriterion criterion = criteria.get(DetectDuplicateEntityIDsCriterion.class);
+        assert criterion != null;
+        Assert.assertEquals(criterion.getValue(), DetectDuplicateEntityIDs.Batch);
         
         // For good measure actually test resolution and that hasn't caused any failures due to side effects, etc.
         handler.invoke(messageContext);
         
-        SAMLMetadataContext mdCtx = peerContext.getSubcontext(SAMLMetadataContext.class);
-        Assert.assertNotNull(mdCtx);
+        final SAMLMetadataContext mdCtx = peerContext.getSubcontext(SAMLMetadataContext.class);
+        assert mdCtx != null;
         Assert.assertNotNull(mdCtx.getRoleDescriptor());
         Assert.assertNotNull(mdCtx.getEntityDescriptor());
-        
     }
 
-
 }
\ No newline at end of file
diff --git a/opensaml-saml-impl/src/test/java/org/opensaml/saml/common/binding/impl/SAMLOutboundDestinationHandlerTest.java b/opensaml-saml-impl/src/test/java/org/opensaml/saml/common/binding/impl/SAMLOutboundDestinationHandlerTest.java
index 8d551e3cd..7658b4ca1 100644
--- a/opensaml-saml-impl/src/test/java/org/opensaml/saml/common/binding/impl/SAMLOutboundDestinationHandlerTest.java
+++ b/opensaml-saml-impl/src/test/java/org/opensaml/saml/common/binding/impl/SAMLOutboundDestinationHandlerTest.java
@@ -32,6 +32,7 @@ import org.testng.annotations.Test;
 /**
  * Test the {@link SAMLOutboundDestinationHandler}.
  */
+ at SuppressWarnings("javadoc")
 public class SAMLOutboundDestinationHandlerTest extends XMLObjectBaseTestCase {
     
     private SAMLOutboundDestinationHandler handler;
@@ -47,8 +48,8 @@ public class SAMLOutboundDestinationHandlerTest extends XMLObjectBaseTestCase {
         
         handler = new SAMLOutboundDestinationHandler();
         messageContext = new MessageContext();
-        messageContext.getSubcontext(SAMLPeerEntityContext.class, true).
-            getSubcontext(SAMLEndpointContext.class, true).setEndpoint(samlEndpoint);
+        messageContext.ensureSubcontext(SAMLPeerEntityContext.class).
+            ensureSubcontext(SAMLEndpointContext.class).setEndpoint(samlEndpoint);
     }
     
     @Test
diff --git a/opensaml-saml-impl/src/test/java/org/opensaml/saml/common/binding/impl/SAMLProtocolAndRoleHandlerTest.java b/opensaml-saml-impl/src/test/java/org/opensaml/saml/common/binding/impl/SAMLProtocolAndRoleHandlerTest.java
index f04d983fc..dc101eba4 100644
--- a/opensaml-saml-impl/src/test/java/org/opensaml/saml/common/binding/impl/SAMLProtocolAndRoleHandlerTest.java
+++ b/opensaml-saml-impl/src/test/java/org/opensaml/saml/common/binding/impl/SAMLProtocolAndRoleHandlerTest.java
@@ -32,9 +32,7 @@ import org.testng.annotations.Test;
 
 import net.shibboleth.shared.component.ComponentInitializationException;
 
-/**
- *
- */
+ at SuppressWarnings("javadoc")
 public class SAMLProtocolAndRoleHandlerTest {
     
     private SAMLProtocolAndRoleHandler handler;
@@ -54,11 +52,13 @@ public class SAMLProtocolAndRoleHandlerTest {
 
         handler.invoke(messageContext);
 
-        Assert.assertNotNull(messageContext.getSubcontext(SAMLProtocolContext.class));
-        Assert.assertEquals(messageContext.getSubcontext(SAMLProtocolContext.class).getProtocol(), SAMLConstants.SAML20P_NS);
+        final SAMLProtocolContext protocolCtx = messageContext.getSubcontext(SAMLProtocolContext.class); 
+        assert protocolCtx != null;
+        Assert.assertEquals(protocolCtx.getProtocol(), SAMLConstants.SAML20P_NS);
 
-        Assert.assertNotNull(messageContext.getSubcontext(SAMLPeerEntityContext.class));
-        Assert.assertEquals(messageContext.getSubcontext(SAMLPeerEntityContext.class).getRole(), SPSSODescriptor.DEFAULT_ELEMENT_NAME);
+        final SAMLPresenterEntityContext presenterCtx = messageContext.getSubcontext(SAMLPresenterEntityContext.class);
+        assert presenterCtx != null;
+        Assert.assertEquals(presenterCtx.getRole(), SPSSODescriptor.DEFAULT_ELEMENT_NAME);
     }
 
     @Test
@@ -70,11 +70,13 @@ public class SAMLProtocolAndRoleHandlerTest {
 
         handler.invoke(messageContext);
 
-        Assert.assertNotNull(messageContext.getSubcontext(SAMLProtocolContext.class));
-        Assert.assertEquals(messageContext.getSubcontext(SAMLProtocolContext.class).getProtocol(), SAMLConstants.SAML20P_NS);
+        final SAMLProtocolContext protocolCtx = messageContext.getSubcontext(SAMLProtocolContext.class); 
+        assert protocolCtx != null;
+        Assert.assertEquals(protocolCtx.getProtocol(), SAMLConstants.SAML20P_NS);
 
-        Assert.assertNotNull(messageContext.getSubcontext(SAMLPresenterEntityContext.class));
-        Assert.assertEquals(messageContext.getSubcontext(SAMLPresenterEntityContext.class).getRole(), SPSSODescriptor.DEFAULT_ELEMENT_NAME);
+        final SAMLPresenterEntityContext presenterCtx = messageContext.getSubcontext(SAMLPresenterEntityContext.class);
+        assert presenterCtx != null;
+        Assert.assertEquals(presenterCtx.getRole(), SPSSODescriptor.DEFAULT_ELEMENT_NAME);
     }
     
     @Test
@@ -83,16 +85,18 @@ public class SAMLProtocolAndRoleHandlerTest {
         handler.initialize();
         
         final InOutOperationContext opContext = new InOutOperationContext(messageContext, new MessageContext());
-        opContext.getSubcontext(SAMLProtocolContext.class, true).setProtocol(SAMLConstants.SAML20P_NS); 
-        opContext.getSubcontext(SAMLPeerEntityContext.class, true).setRole(SPSSODescriptor.DEFAULT_ELEMENT_NAME);
+        opContext.ensureSubcontext(SAMLProtocolContext.class).setProtocol(SAMLConstants.SAML20P_NS); 
+        opContext.ensureSubcontext(SAMLPeerEntityContext.class).setRole(SPSSODescriptor.DEFAULT_ELEMENT_NAME);
 
         handler.invoke(messageContext);
 
-        Assert.assertNotNull(messageContext.getSubcontext(SAMLProtocolContext.class));
-        Assert.assertEquals(messageContext.getSubcontext(SAMLProtocolContext.class).getProtocol(), SAMLConstants.SAML20P_NS);
+        final SAMLProtocolContext protocolCtx = messageContext.getSubcontext(SAMLProtocolContext.class); 
+        assert protocolCtx != null;
+        Assert.assertEquals(protocolCtx.getProtocol(), SAMLConstants.SAML20P_NS);
 
-        Assert.assertNotNull(messageContext.getSubcontext(SAMLPeerEntityContext.class));
-        Assert.assertEquals(messageContext.getSubcontext(SAMLPeerEntityContext.class).getRole(), SPSSODescriptor.DEFAULT_ELEMENT_NAME);
+        final SAMLPresenterEntityContext presenterCtx = messageContext.getSubcontext(SAMLPresenterEntityContext.class);
+        assert presenterCtx != null;
+        Assert.assertEquals(presenterCtx.getRole(), SPSSODescriptor.DEFAULT_ELEMENT_NAME);
     }
     
     @Test
@@ -102,16 +106,18 @@ public class SAMLProtocolAndRoleHandlerTest {
         handler.initialize();
         
         final InOutOperationContext opContext = new InOutOperationContext(messageContext, new MessageContext());
-        opContext.getSubcontext(SAMLProtocolContext.class, true).setProtocol(SAMLConstants.SAML20P_NS); 
-        opContext.getSubcontext(SAMLPresenterEntityContext.class, true).setRole(SPSSODescriptor.DEFAULT_ELEMENT_NAME);
+        opContext.ensureSubcontext(SAMLProtocolContext.class).setProtocol(SAMLConstants.SAML20P_NS); 
+        opContext.ensureSubcontext(SAMLPresenterEntityContext.class).setRole(SPSSODescriptor.DEFAULT_ELEMENT_NAME);
 
         handler.invoke(messageContext);
 
-        Assert.assertNotNull(messageContext.getSubcontext(SAMLProtocolContext.class));
-        Assert.assertEquals(messageContext.getSubcontext(SAMLProtocolContext.class).getProtocol(), SAMLConstants.SAML20P_NS);
+        final SAMLProtocolContext protocolCtx = messageContext.getSubcontext(SAMLProtocolContext.class); 
+        assert protocolCtx != null;
+        Assert.assertEquals(protocolCtx.getProtocol(), SAMLConstants.SAML20P_NS);
 
-        Assert.assertNotNull(messageContext.getSubcontext(SAMLPresenterEntityContext.class));
-        Assert.assertEquals(messageContext.getSubcontext(SAMLPresenterEntityContext.class).getRole(), SPSSODescriptor.DEFAULT_ELEMENT_NAME);
+        final SAMLPresenterEntityContext presenterCtx = messageContext.getSubcontext(SAMLPresenterEntityContext.class);
+        assert presenterCtx != null;
+        Assert.assertEquals(presenterCtx.getRole(), SPSSODescriptor.DEFAULT_ELEMENT_NAME);
     }
 
     @Test(expectedExceptions=ComponentInitializationException.class)
@@ -135,4 +141,5 @@ public class SAMLProtocolAndRoleHandlerTest {
         
         handler.invoke(messageContext);
     }
-}
+
+}
\ No newline at end of file
diff --git a/opensaml-saml-impl/src/test/java/org/opensaml/saml/common/binding/security/impl/EndpointURLSchemeSecurityHandlerTest.java b/opensaml-saml-impl/src/test/java/org/opensaml/saml/common/binding/security/impl/EndpointURLSchemeSecurityHandlerTest.java
index 549b16dab..01ea32651 100644
--- a/opensaml-saml-impl/src/test/java/org/opensaml/saml/common/binding/security/impl/EndpointURLSchemeSecurityHandlerTest.java
+++ b/opensaml-saml-impl/src/test/java/org/opensaml/saml/common/binding/security/impl/EndpointURLSchemeSecurityHandlerTest.java
@@ -30,6 +30,7 @@ import org.testng.annotations.Test;
 /**
  * Test the security handler which evaluates message context endpoint URL schemes.
  */
+ at SuppressWarnings("javadoc")
 public class EndpointURLSchemeSecurityHandlerTest extends XMLObjectBaseTestCase {
     
     @Test
@@ -39,8 +40,7 @@ public class EndpointURLSchemeSecurityHandlerTest extends XMLObjectBaseTestCase
         
         final MessageContext messageContext = new MessageContext();
         messageContext.setMessage(buildXMLObject(AuthnRequest.DEFAULT_ELEMENT_NAME));
-        messageContext.getSubcontext(SAMLPeerEntityContext.class, true)
-            .getSubcontext(SAMLEndpointContext.class, true).setEndpoint(endpoint);
+        messageContext.ensureSubcontext(SAMLPeerEntityContext.class).ensureSubcontext(SAMLEndpointContext.class).setEndpoint(endpoint);
         
         EndpointURLSchemeSecurityHandler handler = new EndpointURLSchemeSecurityHandler();
         handler.invoke(messageContext);
@@ -53,8 +53,7 @@ public class EndpointURLSchemeSecurityHandlerTest extends XMLObjectBaseTestCase
         
         final MessageContext messageContext = new MessageContext();
         messageContext.setMessage(buildXMLObject(Response.DEFAULT_ELEMENT_NAME));
-        messageContext.getSubcontext(SAMLPeerEntityContext.class, true)
-            .getSubcontext(SAMLEndpointContext.class, true).setEndpoint(endpoint);
+        messageContext.ensureSubcontext(SAMLPeerEntityContext.class).ensureSubcontext(SAMLEndpointContext.class).setEndpoint(endpoint);
         
         EndpointURLSchemeSecurityHandler handler = new EndpointURLSchemeSecurityHandler();
         handler.invoke(messageContext);
@@ -67,8 +66,7 @@ public class EndpointURLSchemeSecurityHandlerTest extends XMLObjectBaseTestCase
         
         final MessageContext messageContext = new MessageContext();
         messageContext.setMessage(buildXMLObject(AuthnRequest.DEFAULT_ELEMENT_NAME));
-        messageContext.getSubcontext(SAMLPeerEntityContext.class, true)
-            .getSubcontext(SAMLEndpointContext.class, true).setEndpoint(endpoint);
+        messageContext.ensureSubcontext(SAMLPeerEntityContext.class).ensureSubcontext(SAMLEndpointContext.class).setEndpoint(endpoint);
         
         EndpointURLSchemeSecurityHandler handler = new EndpointURLSchemeSecurityHandler();
         handler.invoke(messageContext);
@@ -81,8 +79,7 @@ public class EndpointURLSchemeSecurityHandlerTest extends XMLObjectBaseTestCase
         
         final MessageContext messageContext = new MessageContext();
         messageContext.setMessage(buildXMLObject(Response.DEFAULT_ELEMENT_NAME));
-        messageContext.getSubcontext(SAMLPeerEntityContext.class, true)
-            .getSubcontext(SAMLEndpointContext.class, true).setEndpoint(endpoint);
+        messageContext.ensureSubcontext(SAMLPeerEntityContext.class).ensureSubcontext(SAMLEndpointContext.class).setEndpoint(endpoint);
         
         EndpointURLSchemeSecurityHandler handler = new EndpointURLSchemeSecurityHandler();
         handler.invoke(messageContext);
diff --git a/opensaml-saml-impl/src/test/java/org/opensaml/saml/common/binding/security/impl/InResponseToSecurityHandlerTest.java b/opensaml-saml-impl/src/test/java/org/opensaml/saml/common/binding/security/impl/InResponseToSecurityHandlerTest.java
index d00dc3a24..e1c5abd08 100644
--- a/opensaml-saml-impl/src/test/java/org/opensaml/saml/common/binding/security/impl/InResponseToSecurityHandlerTest.java
+++ b/opensaml-saml-impl/src/test/java/org/opensaml/saml/common/binding/security/impl/InResponseToSecurityHandlerTest.java
@@ -30,9 +30,7 @@ import org.testng.annotations.Test;
 
 import net.shibboleth.shared.component.ComponentInitializationException;
 
-/**
- *
- */
+ at SuppressWarnings("javadoc")
 public class InResponseToSecurityHandlerTest extends XMLObjectBaseTestCase {
     
     private InOutOperationContext opContext;
@@ -48,54 +46,54 @@ public class InResponseToSecurityHandlerTest extends XMLObjectBaseTestCase {
     
     @Test
     public void testSAML2Match() throws MessageHandlerException {
-        ArtifactResolve request = buildXMLObject(ArtifactResolve.DEFAULT_ELEMENT_NAME);
+        final ArtifactResolve request = buildXMLObject(ArtifactResolve.DEFAULT_ELEMENT_NAME);
         request.setID("abc123");
-        opContext.getOutboundMessageContext().setMessage(request);
+        opContext.ensureOutboundMessageContext().setMessage(request);
         
-        ArtifactResponse response = buildXMLObject(ArtifactResponse.DEFAULT_ELEMENT_NAME);
+        final ArtifactResponse response = buildXMLObject(ArtifactResponse.DEFAULT_ELEMENT_NAME);
         response.setInResponseTo("abc123");
-        opContext.getInboundMessageContext().setMessage(response);
+        opContext.ensureInboundMessageContext().setMessage(response);
         
-        handler.invoke(opContext.getInboundMessageContext());
+        handler.invoke(opContext.ensureInboundMessageContext());
     }
 
     @Test(expectedExceptions=MessageHandlerException.class)
     public void testSAML2NonMatch() throws MessageHandlerException {
-        ArtifactResolve request = buildXMLObject(ArtifactResolve.DEFAULT_ELEMENT_NAME);
+        final ArtifactResolve request = buildXMLObject(ArtifactResolve.DEFAULT_ELEMENT_NAME);
         request.setID("abc123");
-        opContext.getOutboundMessageContext().setMessage(request);
+        opContext.ensureOutboundMessageContext().setMessage(request);
         
-        ArtifactResponse response = buildXMLObject(ArtifactResponse.DEFAULT_ELEMENT_NAME);
+        final ArtifactResponse response = buildXMLObject(ArtifactResponse.DEFAULT_ELEMENT_NAME);
         response.setInResponseTo("xyz456");
-        opContext.getInboundMessageContext().setMessage(response);
+        opContext.ensureInboundMessageContext().setMessage(response);
         
-        handler.invoke(opContext.getInboundMessageContext());
+        handler.invoke(opContext.ensureInboundMessageContext());
     }
 
     @Test
     public void testSAML1Match() throws MessageHandlerException {
-        Request request = buildXMLObject(Request.DEFAULT_ELEMENT_NAME);
+        final Request request = buildXMLObject(Request.DEFAULT_ELEMENT_NAME);
         request.setID("abc123");
-        opContext.getOutboundMessageContext().setMessage(request);
+        opContext.ensureOutboundMessageContext().setMessage(request);
         
-        Response response = buildXMLObject(Response.DEFAULT_ELEMENT_NAME);
+        final Response response = buildXMLObject(Response.DEFAULT_ELEMENT_NAME);
         response.setInResponseTo("abc123");
-        opContext.getInboundMessageContext().setMessage(response);
+        opContext.ensureInboundMessageContext().setMessage(response);
         
-        handler.invoke(opContext.getInboundMessageContext());
+        handler.invoke(opContext.ensureInboundMessageContext());
     }
 
     @Test(expectedExceptions=MessageHandlerException.class)
     public void testSAML1NonMatch() throws MessageHandlerException {
-        Request request = buildXMLObject(Request.DEFAULT_ELEMENT_NAME);
+        final Request request = buildXMLObject(Request.DEFAULT_ELEMENT_NAME);
         request.setID("abc123");
-        opContext.getOutboundMessageContext().setMessage(request);
+        opContext.ensureOutboundMessageContext().setMessage(request);
         
-        Response response = buildXMLObject(Response.DEFAULT_ELEMENT_NAME);
+        final Response response = buildXMLObject(Response.DEFAULT_ELEMENT_NAME);
         response.setInResponseTo("xyz456");
-        opContext.getInboundMessageContext().setMessage(response);
+        opContext.ensureInboundMessageContext().setMessage(response);
         
-        handler.invoke(opContext.getInboundMessageContext());   
+        handler.invoke(opContext.ensureInboundMessageContext());   
     }
 
 }
diff --git a/opensaml-saml-impl/src/test/java/org/opensaml/saml/common/binding/security/impl/MessageLifetimeSecurityHandlerTest.java b/opensaml-saml-impl/src/test/java/org/opensaml/saml/common/binding/security/impl/MessageLifetimeSecurityHandlerTest.java
index 517ca852c..0b0b17929 100644
--- a/opensaml-saml-impl/src/test/java/org/opensaml/saml/common/binding/security/impl/MessageLifetimeSecurityHandlerTest.java
+++ b/opensaml-saml-impl/src/test/java/org/opensaml/saml/common/binding/security/impl/MessageLifetimeSecurityHandlerTest.java
@@ -49,7 +49,7 @@ public class MessageLifetimeSecurityHandlerTest extends XMLObjectBaseTestCase {
         
         messageContext = new MessageContext();
         
-        messageContext.getSubcontext(SAMLMessageInfoContext.class, true).setMessageIssueInstant(now);
+        messageContext.ensureSubcontext(SAMLMessageInfoContext.class).setMessageIssueInstant(now);
         
         handler = new MessageLifetimeSecurityHandler();
         handler.setClockSkew(clockSkew);
@@ -74,7 +74,7 @@ public class MessageLifetimeSecurityHandlerTest extends XMLObjectBaseTestCase {
      */
     @Test(expectedExceptions=MessageHandlerException.class)
     public void testInvalidIssuedInFuture() throws MessageHandlerException {
-        messageContext.getSubcontext(SAMLMessageInfoContext.class, true).setMessageIssueInstant(now.plus(clockSkew).plusSeconds(5));
+        messageContext.ensureSubcontext(SAMLMessageInfoContext.class).setMessageIssueInstant(now.plus(clockSkew).plusSeconds(5));
         handler.invoke(messageContext);
     }
     
@@ -85,7 +85,7 @@ public class MessageLifetimeSecurityHandlerTest extends XMLObjectBaseTestCase {
      */
     @Test
     public void testValidIssuedInFutureWithinClockSkew() throws MessageHandlerException {
-        messageContext.getSubcontext(SAMLMessageInfoContext.class, true).setMessageIssueInstant(now.plus(clockSkew).minusSeconds(5));
+        messageContext.ensureSubcontext(SAMLMessageInfoContext.class).setMessageIssueInstant(now.plus(clockSkew).minusSeconds(5));
         handler.invoke(messageContext);
     }
     
@@ -96,7 +96,7 @@ public class MessageLifetimeSecurityHandlerTest extends XMLObjectBaseTestCase {
      */
     @Test(expectedExceptions=MessageHandlerException.class)
     public void testInvalidExpired() throws MessageHandlerException {
-        messageContext.getSubcontext(SAMLMessageInfoContext.class, true).setMessageIssueInstant(now.minus(messageLifetime.plus(clockSkew).plusSeconds(5)));
+        messageContext.ensureSubcontext(SAMLMessageInfoContext.class).setMessageIssueInstant(now.minus(messageLifetime.plus(clockSkew).plusSeconds(5)));
         handler.invoke(messageContext);
     }
     
@@ -107,8 +107,8 @@ public class MessageLifetimeSecurityHandlerTest extends XMLObjectBaseTestCase {
      */
     @Test
     public void testValidExpiredWithinClockSkew() throws MessageHandlerException {
-        messageContext.getSubcontext(SAMLMessageInfoContext.class, true).setMessageIssueInstant(now.minus(messageLifetime.plus(clockSkew).minusSeconds(5)));
+        messageContext.ensureSubcontext(SAMLMessageInfoContext.class).setMessageIssueInstant(now.minus(messageLifetime.plus(clockSkew).minusSeconds(5)));
         handler.invoke(messageContext);
     }
  
-}
+}
\ No newline at end of file
diff --git a/opensaml-saml-impl/src/test/java/org/opensaml/saml/common/binding/security/impl/MessageReplaySecurityHandlerTest.java b/opensaml-saml-impl/src/test/java/org/opensaml/saml/common/binding/security/impl/MessageReplaySecurityHandlerTest.java
index d242851ee..75bde7707 100644
--- a/opensaml-saml-impl/src/test/java/org/opensaml/saml/common/binding/security/impl/MessageReplaySecurityHandlerTest.java
+++ b/opensaml-saml-impl/src/test/java/org/opensaml/saml/common/binding/security/impl/MessageReplaySecurityHandlerTest.java
@@ -53,8 +53,8 @@ public class MessageReplaySecurityHandlerTest extends XMLObjectBaseTestCase {
         
         messageID = "abc123";
 
-        messageContext.getSubcontext(SAMLPeerEntityContext.class, true).setEntityId("issuer");
-        messageContext.getSubcontext(SAMLMessageInfoContext.class, true).setMessageId(messageID);
+        messageContext.ensureSubcontext(SAMLPeerEntityContext.class).setEntityId("issuer");
+        messageContext.ensureSubcontext(SAMLMessageInfoContext.class).setMessageId(messageID);
 
         storageService = new MemoryStorageService();
         storageService.setId("test");
@@ -99,7 +99,7 @@ public class MessageReplaySecurityHandlerTest extends XMLObjectBaseTestCase {
     public void testNoReplayDistinctIDs() throws MessageHandlerException {
         handler.invoke(messageContext);
 
-        messageContext.getSubcontext(SAMLMessageInfoContext.class).setMessageId("someOther" + messageID);
+        messageContext.ensureSubcontext(SAMLMessageInfoContext.class).setMessageId("someOther" + messageID);
         handler.invoke(messageContext);
     }
 
@@ -137,4 +137,4 @@ public class MessageReplaySecurityHandlerTest extends XMLObjectBaseTestCase {
         handler.invoke(messageContext);
     }
 
-}
+}
\ No newline at end of file
diff --git a/opensaml-saml-impl/src/test/java/org/opensaml/saml/common/binding/security/impl/ReceivedEndpointSecurityHandlerTest.java b/opensaml-saml-impl/src/test/java/org/opensaml/saml/common/binding/security/impl/ReceivedEndpointSecurityHandlerTest.java
index 8c9aa338a..6d5fc68ef 100644
--- a/opensaml-saml-impl/src/test/java/org/opensaml/saml/common/binding/security/impl/ReceivedEndpointSecurityHandlerTest.java
+++ b/opensaml-saml-impl/src/test/java/org/opensaml/saml/common/binding/security/impl/ReceivedEndpointSecurityHandlerTest.java
@@ -39,6 +39,7 @@ import net.shibboleth.shared.testing.ConstantSupplier;
 /**
  * Test the received endpoint check message handler.
  */
+ at SuppressWarnings("javadoc")
 public class ReceivedEndpointSecurityHandlerTest extends XMLObjectBaseTestCase {
     
     private MessageContext messageContext;
@@ -58,7 +59,7 @@ public class ReceivedEndpointSecurityHandlerTest extends XMLObjectBaseTestCase {
         
         httpRequest = new MockHttpServletRequest();
         
-        samlBindingContext = messageContext.getSubcontext(SAMLBindingContext.class, true);
+        samlBindingContext = messageContext.ensureSubcontext(SAMLBindingContext.class);
         samlBindingContext.setBindingUri(SAMLConstants.SAML2_REDIRECT_BINDING_URI);
         samlBindingContext.setHasBindingSignature(false);
         samlBindingContext.setIntendedDestinationEndpointURIRequired(false);
@@ -100,7 +101,8 @@ public class ReceivedEndpointSecurityHandlerTest extends XMLObjectBaseTestCase {
     
     @Test
     public void testEndpointMissingDestinationNotRequired() throws MessageHandlerException {
-        AuthnRequest authnRequest = (AuthnRequest) messageContext.getMessage();
+        final AuthnRequest authnRequest = (AuthnRequest) messageContext.getMessage();
+        assert authnRequest != null;
         authnRequest.setDestination(null);
         
         samlBindingContext.setIntendedDestinationEndpointURIRequired(false);
@@ -114,7 +116,8 @@ public class ReceivedEndpointSecurityHandlerTest extends XMLObjectBaseTestCase {
     
     @Test(expectedExceptions=MessageHandlerException.class)
     public void testEndpointMissingDestinationRequired() throws MessageHandlerException {
-        AuthnRequest authnRequest = (AuthnRequest) messageContext.getMessage();
+        final AuthnRequest authnRequest = (AuthnRequest) messageContext.getMessage();
+        assert authnRequest != null;
         authnRequest.setDestination(null);
         
         samlBindingContext.setIntendedDestinationEndpointURIRequired(true);
@@ -136,6 +139,7 @@ public class ReceivedEndpointSecurityHandlerTest extends XMLObjectBaseTestCase {
         } catch (MalformedURLException e) {
             Assert.fail("Malformed URL: " + e.getMessage());
         }
+        assert url != null;
         request.setScheme(url.getProtocol());
         request.setServerName(url.getHost());
         if (url.getPort() != -1) {
diff --git a/opensaml-saml-impl/src/test/java/org/opensaml/saml/common/binding/security/impl/SAMLMDClientCertAuthSecurityHandlerTest.java b/opensaml-saml-impl/src/test/java/org/opensaml/saml/common/binding/security/impl/SAMLMDClientCertAuthSecurityHandlerTest.java
index 7d35a90c9..31c5eeada 100644
--- a/opensaml-saml-impl/src/test/java/org/opensaml/saml/common/binding/security/impl/SAMLMDClientCertAuthSecurityHandlerTest.java
+++ b/opensaml-saml-impl/src/test/java/org/opensaml/saml/common/binding/security/impl/SAMLMDClientCertAuthSecurityHandlerTest.java
@@ -164,10 +164,10 @@ public class SAMLMDClientCertAuthSecurityHandlerTest extends XMLObjectBaseTestCa
         
         messageContext = new MessageContext();
         messageContext.setMessage(buildInboundSAMLMessage());
-        messageContext.getSubcontext(SAMLPeerEntityContext.class, true).setEntityId(issuer);
-        messageContext.getSubcontext(SAMLPeerEntityContext.class, true).setRole(SPSSODescriptor.DEFAULT_ELEMENT_NAME);
-        messageContext.getSubcontext(SAMLProtocolContext.class, true).setProtocol(SAMLConstants.SAML20P_NS);
-        messageContext.getSubcontext(ClientTLSSecurityParametersContext.class, true).setValidationParameters(params);
+        messageContext.ensureSubcontext(SAMLPeerEntityContext.class).setEntityId(issuer);
+        messageContext.ensureSubcontext(SAMLPeerEntityContext.class).setRole(SPSSODescriptor.DEFAULT_ELEMENT_NAME);
+        messageContext.ensureSubcontext(SAMLProtocolContext.class).setProtocol(SAMLConstants.SAML20P_NS);
+        messageContext.ensureSubcontext(ClientTLSSecurityParametersContext.class).setValidationParameters(params);
     }
     
     /**
@@ -181,10 +181,10 @@ public class SAMLMDClientCertAuthSecurityHandlerTest extends XMLObjectBaseTestCa
         
         handler.invoke(messageContext);
         
-        Assert.assertEquals(messageContext.getSubcontext(SAMLPeerEntityContext.class, true).getEntityId(), issuer, 
+        Assert.assertEquals(messageContext.ensureSubcontext(SAMLPeerEntityContext.class).getEntityId(), issuer, 
                 "Unexpected value for Issuer found");
         //TODO this may change
-        Assert.assertTrue(messageContext.getSubcontext(SAMLPeerEntityContext.class, true).isAuthenticated(), 
+        Assert.assertTrue(messageContext.ensureSubcontext(SAMLPeerEntityContext.class).isAuthenticated(), 
                 "Unexpected value for context authentication state");
     }
     
@@ -205,15 +205,15 @@ public class SAMLMDClientCertAuthSecurityHandlerTest extends XMLObjectBaseTestCa
         
         messageContext.removeSubcontext(SAMLPeerEntityContext.class);
         Assert.assertNull(messageContext.getSubcontext(SAMLPeerEntityContext.class));
-        messageContext.getSubcontext(SAMLPresenterEntityContext.class, true).setEntityId(issuer);
-        messageContext.getSubcontext(SAMLPresenterEntityContext.class, true).setRole(SPSSODescriptor.DEFAULT_ELEMENT_NAME);
+        messageContext.ensureSubcontext(SAMLPresenterEntityContext.class).setEntityId(issuer);
+        messageContext.ensureSubcontext(SAMLPresenterEntityContext.class).setRole(SPSSODescriptor.DEFAULT_ELEMENT_NAME);
         
         handler.invoke(messageContext);
         
-        Assert.assertEquals(messageContext.getSubcontext(SAMLPresenterEntityContext.class, true).getEntityId(), issuer, 
+        Assert.assertEquals(messageContext.ensureSubcontext(SAMLPresenterEntityContext.class).getEntityId(), issuer, 
                 "Unexpected value for Issuer found");
         //TODO this may change
-        Assert.assertTrue(messageContext.getSubcontext(SAMLPresenterEntityContext.class, true).isAuthenticated(), 
+        Assert.assertTrue(messageContext.ensureSubcontext(SAMLPresenterEntityContext.class).isAuthenticated(), 
                 "Unexpected value for context authentication state");
     }
     
@@ -247,14 +247,14 @@ public class SAMLMDClientCertAuthSecurityHandlerTest extends XMLObjectBaseTestCa
         req.setQuery(query);
         messageContext.setMessage(req);
         
-        messageContext.getSubcontext(SAMLPeerEntityContext.class).setEntityId(null);
+        messageContext.ensureSubcontext(SAMLPeerEntityContext.class).setEntityId(null);
         
         handler.invoke(messageContext);
         
-        Assert.assertEquals(messageContext.getSubcontext(SAMLPeerEntityContext.class, true).getEntityId(), 
+        Assert.assertEquals(messageContext.ensureSubcontext(SAMLPeerEntityContext.class).getEntityId(), 
                 issuer, "Unexpected value for Issuer found");
         //TODO this may change
-        Assert.assertTrue(messageContext.getSubcontext(SAMLPeerEntityContext.class, true).isAuthenticated(), 
+        Assert.assertTrue(messageContext.ensureSubcontext(SAMLPeerEntityContext.class).isAuthenticated(), 
                 "Unexpected value for context authentication state");
     }
     
@@ -271,17 +271,17 @@ public class SAMLMDClientCertAuthSecurityHandlerTest extends XMLObjectBaseTestCa
         validX509Cred.setEntityId("SomeCoolIssuer");
         trustedCredentials.add(validX509Cred);
         
-        messageContext.getSubcontext(SAMLPeerEntityContext.class).setEntityId(null);
+        messageContext.ensureSubcontext(SAMLPeerEntityContext.class).setEntityId(null);
         
         
         handler.invoke(messageContext);
         
         // Note that entityID for this test will be that contained in the SAML message,
         // since it's dynamically resolved by the context.
-        Assert.assertEquals(messageContext.getSubcontext(SAMLPeerEntityContext.class, true).getEntityId(), 
+        Assert.assertEquals(messageContext.ensureSubcontext(SAMLPeerEntityContext.class).getEntityId(), 
                 "SomeCoolIssuer", "Unexpected value for Issuer found");
         //TODO this may change
-        Assert.assertTrue(messageContext.getSubcontext(SAMLPeerEntityContext.class, true).isAuthenticated(), 
+        Assert.assertTrue(messageContext.ensureSubcontext(SAMLPeerEntityContext.class).isAuthenticated(), 
                 "Unexpected value for context authentication state");
     }
     
@@ -292,8 +292,9 @@ public class SAMLMDClientCertAuthSecurityHandlerTest extends XMLObjectBaseTestCa
      */
     @Test(expectedExceptions=MessageHandlerException.class)
     public void testNoTrustEngine() throws MessageHandlerException {
-        messageContext.getSubcontext(ClientTLSSecurityParametersContext.class).getValidationParameters()
-            .setX509TrustEngine(null);
+        final var params = messageContext.ensureSubcontext(ClientTLSSecurityParametersContext.class).getValidationParameters();
+        assert params != null;
+        params.setX509TrustEngine(null);
         
         trustedCredentials.add(validX509Cred);
         
@@ -307,8 +308,9 @@ public class SAMLMDClientCertAuthSecurityHandlerTest extends XMLObjectBaseTestCa
      */
     @Test(expectedExceptions=MessageHandlerException.class)
     public void testNoNameOptions() throws MessageHandlerException {
-        messageContext.getSubcontext(ClientTLSSecurityParametersContext.class).getValidationParameters()
-            .setCertificateNameOptions(null);
+        final var params = messageContext.ensureSubcontext(ClientTLSSecurityParametersContext.class).getValidationParameters();
+        assert params != null;
+        params.setCertificateNameOptions(null);
         
         trustedCredentials.add(validX509Cred);
         
@@ -319,4 +321,4 @@ public class SAMLMDClientCertAuthSecurityHandlerTest extends XMLObjectBaseTestCa
         return unmarshallElement("/org/opensaml/saml/common/binding/security/Signed-AuthnRequest.xml");
     }
 
-}
+}
\ No newline at end of file
diff --git a/opensaml-saml-impl/src/test/java/org/opensaml/saml/common/binding/security/impl/SAMLOutboundProtocolMessageSigningHandlerTest.java b/opensaml-saml-impl/src/test/java/org/opensaml/saml/common/binding/security/impl/SAMLOutboundProtocolMessageSigningHandlerTest.java
index 0635afb4f..3f181b642 100644
--- a/opensaml-saml-impl/src/test/java/org/opensaml/saml/common/binding/security/impl/SAMLOutboundProtocolMessageSigningHandlerTest.java
+++ b/opensaml-saml-impl/src/test/java/org/opensaml/saml/common/binding/security/impl/SAMLOutboundProtocolMessageSigningHandlerTest.java
@@ -44,6 +44,7 @@ import net.shibboleth.shared.component.ComponentInitializationException;
 /**
  * Tests for {@link SAMLOutboundProtocolMessageSigningHandler}.
  */
+ at SuppressWarnings("javadoc")
 public class SAMLOutboundProtocolMessageSigningHandlerTest extends XMLObjectBaseTestCase {
     
     private MessageContext messageContext;
@@ -62,7 +63,7 @@ public class SAMLOutboundProtocolMessageSigningHandlerTest extends XMLObjectBase
         signingParameters.setSignatureCanonicalizationAlgorithm(SignatureConstants.ALGO_ID_C14N_EXCL_OMIT_COMMENTS);
         
         messageContext = new MessageContext();
-        messageContext.getSubcontext(SecurityParametersContext.class, true).setSignatureSigningParameters(signingParameters);
+        messageContext.ensureSubcontext(SecurityParametersContext.class).setSignatureSigningParameters(signingParameters);
         
         handler = new SAMLOutboundProtocolMessageSigningHandler();
         handler.setSignErrorResponses(false);
diff --git a/opensaml-saml-impl/src/test/java/org/opensaml/saml/common/profile/impl/AddAudienceRestrictionToAssertionsTest.java b/opensaml-saml-impl/src/test/java/org/opensaml/saml/common/profile/impl/AddAudienceRestrictionToAssertionsTest.java
index 518a4c293..75b95425a 100644
--- a/opensaml-saml-impl/src/test/java/org/opensaml/saml/common/profile/impl/AddAudienceRestrictionToAssertionsTest.java
+++ b/opensaml-saml-impl/src/test/java/org/opensaml/saml/common/profile/impl/AddAudienceRestrictionToAssertionsTest.java
@@ -22,6 +22,8 @@ import net.shibboleth.shared.logic.FunctionSupport;
 
 import java.util.List;
 
+import javax.annotation.Nonnull;
+
 import org.opensaml.core.testing.OpenSAMLInitBaseTestCase;
 import org.opensaml.core.xml.config.XMLObjectProviderRegistrySupport;
 import org.opensaml.profile.action.EventIds;
@@ -43,11 +45,16 @@ import org.testng.annotations.Test;
 /** {@link AddAudienceRestrictionToAssertions} unit test. */
 public class AddAudienceRestrictionToAssertionsTest extends OpenSAMLInitBaseTestCase {
 
-    private static final String AUDIENCE1 = "foo";
-    private static final String AUDIENCE2 = "foo2";
+    @Nonnull private static final String AUDIENCE1 = "foo";
+    @Nonnull private static final String AUDIENCE2 = "foo2";
     
     private AddAudienceRestrictionToAssertions action;
     
+    /**
+     * Test set up.
+     * 
+     * @throws ComponentInitializationException
+     */
     @BeforeMethod public void setUp() throws ComponentInitializationException {
         action = new AddAudienceRestrictionToAssertions();
         action.setAudienceRestrictionsLookupStrategy(FunctionSupport.constant(List.of(AUDIENCE1, AUDIENCE2)));
@@ -99,9 +106,10 @@ public class AddAudienceRestrictionToAssertionsTest extends OpenSAMLInitBaseTest
         Assert.assertNotNull(response.getAssertions());
         Assert.assertEquals(response.getAssertions().size(), 1);
 
-        Assert.assertNotNull(assertion.getConditions());
-        Assert.assertEquals(assertion.getConditions().getAudienceRestrictionConditions().size(), 1);
-        final AudienceRestrictionCondition audcond = assertion.getConditions().getAudienceRestrictionConditions().get(0);
+        final Conditions c2 = assertion.getConditions();
+        assert c2 != null;
+        Assert.assertEquals(c2.getAudienceRestrictionConditions().size(), 1);
+        final AudienceRestrictionCondition audcond = c2.getAudienceRestrictionConditions().get(0);
         Assert.assertEquals(audcond.getAudiences().size(), 2);
         Assert.assertEquals(audcond.getAudiences().get(0).getURI(), AUDIENCE1);
         Assert.assertEquals(audcond.getAudiences().get(1).getURI(), AUDIENCE2);
@@ -130,9 +138,10 @@ public class AddAudienceRestrictionToAssertionsTest extends OpenSAMLInitBaseTest
         action.execute(prc);
         ActionTestingSupport.assertProceedEvent(prc);
 
-        Assert.assertNotNull(assertion.getConditions());
-        Assert.assertEquals(assertion.getConditions().getAudienceRestrictionConditions().size(), 1);
-        final AudienceRestrictionCondition audcond = assertion.getConditions().getAudienceRestrictionConditions().get(0);
+        final Conditions c2 = assertion.getConditions();
+        assert c2 != null;
+        Assert.assertEquals(c2.getAudienceRestrictionConditions().size(), 1);
+        final AudienceRestrictionCondition audcond = c2.getAudienceRestrictionConditions().get(0);
         Assert.assertEquals(audcond.getAudiences().size(), 2);
         Assert.assertEquals(audcond.getAudiences().get(0).getURI(), AUDIENCE1);
         Assert.assertEquals(audcond.getAudiences().get(1).getURI(), AUDIENCE2);
@@ -166,9 +175,10 @@ public class AddAudienceRestrictionToAssertionsTest extends OpenSAMLInitBaseTest
         action.execute(prc);
         ActionTestingSupport.assertProceedEvent(prc);
 
-        Assert.assertNotNull(assertion.getConditions());
-        Assert.assertEquals(assertion.getConditions().getAudienceRestrictionConditions().size(), 1);
-        final AudienceRestrictionCondition audcond = assertion.getConditions().getAudienceRestrictionConditions().get(0);
+        final Conditions c2 = assertion.getConditions();
+        assert c2 != null;
+        Assert.assertEquals(c2.getAudienceRestrictionConditions().size(), 1);
+        final AudienceRestrictionCondition audcond = c2.getAudienceRestrictionConditions().get(0);
         Assert.assertEquals(audcond.getAudiences().size(), 2);
         Assert.assertEquals(audcond.getAudiences().get(0).getURI(), AUDIENCE1);
         Assert.assertEquals(audcond.getAudiences().get(1).getURI(), AUDIENCE2);
@@ -194,9 +204,10 @@ public class AddAudienceRestrictionToAssertionsTest extends OpenSAMLInitBaseTest
         Assert.assertEquals(response.getAssertions().size(), 3);
 
         for (Assertion assertion : response.getAssertions()) {
-            Assert.assertNotNull(assertion.getConditions());
-            Assert.assertEquals(assertion.getConditions().getAudienceRestrictionConditions().size(), 1);
-            final AudienceRestrictionCondition audcond = assertion.getConditions().getAudienceRestrictionConditions().get(0);
+            final Conditions c2 = assertion.getConditions();
+            assert c2 != null;
+            Assert.assertEquals(c2.getAudienceRestrictionConditions().size(), 1);
+            final AudienceRestrictionCondition audcond = c2.getAudienceRestrictionConditions().get(0);
             Assert.assertEquals(audcond.getAudiences().size(), 2);
             Assert.assertEquals(audcond.getAudiences().get(0).getURI(), AUDIENCE1);
             Assert.assertEquals(audcond.getAudiences().get(1).getURI(), AUDIENCE2);
@@ -222,9 +233,10 @@ public class AddAudienceRestrictionToAssertionsTest extends OpenSAMLInitBaseTest
         Assert.assertNotNull(response.getAssertions());
         Assert.assertEquals(response.getAssertions().size(), 1);
 
-        Assert.assertNotNull(assertion.getConditions());
-        Assert.assertEquals(assertion.getConditions().getAudienceRestrictions().size(), 1);
-        final AudienceRestriction audcond = assertion.getConditions().getAudienceRestrictions().get(0);
+        final org.opensaml.saml.saml2.core.Conditions c2 = assertion.getConditions();
+        assert c2 != null;
+        Assert.assertEquals(c2.getAudienceRestrictions().size(), 1);
+        final AudienceRestriction audcond = c2.getAudienceRestrictions().get(0);
         Assert.assertEquals(audcond.getAudiences().size(), 2);
         Assert.assertEquals(audcond.getAudiences().get(0).getURI(), AUDIENCE1);
         Assert.assertEquals(audcond.getAudiences().get(1).getURI(), AUDIENCE2);
diff --git a/opensaml-saml-impl/src/test/java/org/opensaml/saml/common/profile/impl/AddInResponseToToResponseTest.java b/opensaml-saml-impl/src/test/java/org/opensaml/saml/common/profile/impl/AddInResponseToToResponseTest.java
index 11d7b39e9..034468ada 100644
--- a/opensaml-saml-impl/src/test/java/org/opensaml/saml/common/profile/impl/AddInResponseToToResponseTest.java
+++ b/opensaml-saml-impl/src/test/java/org/opensaml/saml/common/profile/impl/AddInResponseToToResponseTest.java
@@ -38,6 +38,9 @@ public class AddInResponseToToResponseTest  extends OpenSAMLInitBaseTestCase {
 
     private ProfileRequestContext prc;
     
+    /**
+     * Test set up.
+     */
     @BeforeMethod
     public void setUp() {
         prc = new RequestContextBuilder().setInboundMessage(
@@ -65,10 +68,12 @@ public class AddInResponseToToResponseTest  extends OpenSAMLInitBaseTestCase {
      */
     @Test
     public void testNoRequestID() throws Exception {
-        ((RequestAbstractType) prc.getInboundMessageContext().getMessage()).setID(null);
+        final RequestAbstractType req = (RequestAbstractType) prc.ensureInboundMessageContext().getMessage();
+        assert req != null;
+        req.setID(null);
         
         final Response response = SAML1ActionTestingSupport.buildResponse();
-        prc.getOutboundMessageContext().setMessage(response);
+        prc.ensureOutboundMessageContext().setMessage(response);
         
         final AddInResponseToToResponse action = new AddInResponseToToResponse();
         action.initialize();
@@ -81,7 +86,7 @@ public class AddInResponseToToResponseTest  extends OpenSAMLInitBaseTestCase {
     @Test
     public void testSAML1Response() throws Exception {
         final Response response = SAML1ActionTestingSupport.buildResponse();
-        prc.getOutboundMessageContext().setMessage(response);
+        prc.ensureOutboundMessageContext().setMessage(response);
 
         final AddInResponseToToResponse action = new AddInResponseToToResponse();
         action.initialize();
@@ -94,7 +99,7 @@ public class AddInResponseToToResponseTest  extends OpenSAMLInitBaseTestCase {
     @Test
     public void testSAML2Response() throws Exception {
         final LogoutResponse response = SAML2ActionTestingSupport.buildLogoutResponse();
-        prc.getOutboundMessageContext().setMessage(response);
+        prc.ensureOutboundMessageContext().setMessage(response);
 
         final AddInResponseToToResponse action = new AddInResponseToToResponse();
         action.initialize();
@@ -103,4 +108,5 @@ public class AddInResponseToToResponseTest  extends OpenSAMLInitBaseTestCase {
         ActionTestingSupport.assertProceedEvent(prc);
         Assert.assertEquals(response.getInResponseTo(), SAML2ActionTestingSupport.REQUEST_ID);
     }
-}
+
+}
\ No newline at end of file
diff --git a/opensaml-saml-impl/src/test/java/org/opensaml/saml/common/profile/impl/AddNotBeforeConditionToAssertionsTest.java b/opensaml-saml-impl/src/test/java/org/opensaml/saml/common/profile/impl/AddNotBeforeConditionToAssertionsTest.java
index 2575e4ad5..6ff4ee49f 100644
--- a/opensaml-saml-impl/src/test/java/org/opensaml/saml/common/profile/impl/AddNotBeforeConditionToAssertionsTest.java
+++ b/opensaml-saml-impl/src/test/java/org/opensaml/saml/common/profile/impl/AddNotBeforeConditionToAssertionsTest.java
@@ -42,6 +42,11 @@ public class AddNotBeforeConditionToAssertionsTest  extends OpenSAMLInitBaseTest
     
     private AddNotBeforeConditionToAssertions action;
     
+    /**
+     * Test set up.
+     * 
+     * @throws ComponentInitializationException
+     */
     @BeforeMethod
     public void setUp() throws ComponentInitializationException {
         prc = new RequestContextBuilder().setOutboundMessage(
@@ -75,7 +80,8 @@ public class AddNotBeforeConditionToAssertionsTest  extends OpenSAMLInitBaseTest
     public void testSingleAssertion() {
         final Assertion assertion = SAML1ActionTestingSupport.buildAssertion();
 
-        final Response response = (Response) prc.getOutboundMessageContext().getMessage();
+        final Response response = (Response) prc.ensureOutboundMessageContext().getMessage();
+        assert response != null;
         response.getAssertions().add(assertion);
 
         action.execute(prc);
@@ -102,7 +108,8 @@ public class AddNotBeforeConditionToAssertionsTest  extends OpenSAMLInitBaseTest
         final Assertion assertion = SAML1ActionTestingSupport.buildAssertion();
         assertion.setConditions(conditions);
 
-        final Response response = (Response) prc.getOutboundMessageContext().getMessage();
+        final Response response = (Response) prc.ensureOutboundMessageContext().getMessage();
+        assert response != null;
         response.getAssertions().add(assertion);
 
         action.execute(prc);
@@ -116,7 +123,8 @@ public class AddNotBeforeConditionToAssertionsTest  extends OpenSAMLInitBaseTest
     /** Test that the condition is properly added if there are multiple assertions in the response. */
     @Test
     public void testMultipleAssertion() {
-        final Response response = (Response) prc.getOutboundMessageContext().getMessage();
+        final Response response = (Response) prc.ensureOutboundMessageContext().getMessage();
+        assert response != null;
         response.getAssertions().add(SAML1ActionTestingSupport.buildAssertion());
         response.getAssertions().add(SAML1ActionTestingSupport.buildAssertion());
         response.getAssertions().add(SAML1ActionTestingSupport.buildAssertion());
@@ -142,7 +150,7 @@ public class AddNotBeforeConditionToAssertionsTest  extends OpenSAMLInitBaseTest
         final org.opensaml.saml.saml2.core.Assertion assertion = SAML2ActionTestingSupport.buildAssertion();
         final org.opensaml.saml.saml2.core.Response response = SAML2ActionTestingSupport.buildResponse();
         
-        prc.getOutboundMessageContext().setMessage(response);
+        prc.ensureOutboundMessageContext().setMessage(response);
         response.getAssertions().add(assertion);
 
         action.execute(prc);

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


More information about the commits mailing list