[java-opensaml] branch main updated: Rename getBuilderOrThrow to ensureBuilder.

Scott Cantor cantor.2 at osu.edu
Tue Mar 14 21:52:23 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=de512f8c3fc01bdf615bac49f2a01eb9c5655fb9

The following commit(s) were added to refs/heads/main by this push:
     new de512f8c3 Rename getBuilderOrThrow to ensureBuilder.
de512f8c3 is described below

commit de512f8c3fc01bdf615bac49f2a01eb9c5655fb9
Author: Scott Cantor <cantor.2 at osu.edu>
AuthorDate: Tue Mar 14 17:52:20 2023 -0400

    Rename getBuilderOrThrow to ensureBuilder.
---
 .../opensaml/core/xml/XMLObjectBuilderFactory.java |  6 ++-
 .../config/XMLObjectProviderRegistrySupport.java   |  8 +--
 .../opensaml/core/xml/util/XMLObjectSupport.java   |  4 +-
 .../core/xml/schema/impl/XSBase64BinaryTest.java   |  2 +-
 .../core/xml/schema/impl/XSBooleanTest.java        |  2 +-
 .../core/xml/schema/impl/XSDateTimeTest.java       |  2 +-
 .../core/xml/schema/impl/XSIntegerTest.java        |  2 +-
 .../opensaml/core/xml/schema/impl/XSQNameTest.java |  2 +-
 .../core/xml/schema/impl/XSStringTest.java         |  2 +-
 .../opensaml/core/xml/schema/impl/XSURITest.java   |  2 +-
 .../core/xml/tests/NamespaceManagerTest.java       |  2 +-
 .../core/xml/util/tests/AttributeMapTest.java      |  2 +-
 .../AbstractSAML1NameIdentifierGenerator.java      |  2 +-
 .../saml/saml1/profile/SAML1ActionSupport.java     |  4 +-
 .../opensaml/saml/saml2/encryption/Encrypter.java  | 12 ++---
 .../profile/AbstractSAML2NameIDGenerator.java      |  2 +-
 .../saml/saml2/profile/SAML2ActionSupport.java     |  8 +--
 .../impl/AddChannelBindingsHeaderHandler.java      |  2 +-
 .../impl/AddAudienceRestrictionToAssertions.java   |  8 +--
 .../resolver/filter/impl/AlgorithmFilter.java      |  2 +-
 .../filter/impl/EntityAttributesFilter.java        |  4 +-
 .../resolver/filter/impl/NameIDFormatFilter.java   |  2 +-
 .../impl/AddDoNotCacheConditionToAssertions.java   |  2 +-
 .../profile/impl/AddNameIdentifierToSubjects.java  |  4 +-
 .../saml/saml1/profile/impl/AddResponseShell.java  |  6 +--
 .../saml1/profile/impl/AddStatusToResponse.java    |  6 +--
 .../impl/AddSubjectConfirmationToSubjects.java     |  6 +--
 .../impl/CopyNameIdentifierFromRequest.java        |  4 +-
 .../binding/impl/AddECPResponseHeaderHandler.java  |  2 +-
 .../binding/impl/AddGeneratedKeyHeaderHandler.java |  2 +-
 .../binding/impl/AddRelayStateHeaderHandler.java   |  2 +-
 .../impl/AddRequestAuthenticatedHeaderHandler.java |  2 +-
 .../profile/impl/AbstractResponseShellAction.java  |  8 +--
 .../impl/AddChannelBindingsToAssertions.java       |  2 +-
 .../profile/impl/AddGeneratedKeyToAssertions.java  |  2 +-
 .../saml2/profile/impl/AddNameIDToSubjects.java    |  4 +-
 .../impl/AddOneTimeUseConditionToAssertions.java   |  2 +-
 .../impl/AddProxyRestrictionToAssertions.java      |  4 +-
 .../saml2/profile/impl/AddStatusResponseShell.java |  8 +--
 .../saml2/profile/impl/AddStatusToResponse.java    |  6 +--
 .../impl/AddSubjectConfirmationToSubjects.java     |  6 +--
 .../saml2/profile/impl/CopyNameIDFromRequest.java  |  4 +-
 .../impl/AddChannelBindingsHeaderHandlerTest.java  |  4 +-
 .../binding/impl/DefaultEndpointResolverTest.java  |  2 +-
 .../impl/SAMLOutboundDestinationHandlerTest.java   |  8 +--
 .../AddAudienceRestrictionToAssertionsTest.java    |  6 +--
 .../AddNotBeforeConditionToAssertionsTest.java     |  2 +-
 .../AddNotOnOrAfterConditionToAssertionsTest.java  |  2 +-
 .../profile/impl/VerifyChannelBindingsTest.java    |  8 +--
 .../saml/common/testing/RoundTripTest.java         |  8 +--
 .../saml/ext/saml1md/impl/SourceIDTest.java        |  2 +-
 .../impl/DelegationRestrictionTypeTest.java        |  4 +-
 .../filter/impl/EntityAttributesFilterTest.java    |  4 +-
 .../filter/impl/RequiredValidUntilTest.java        |  2 +-
 .../resolver/filter/impl/ScriptedFunctionTest.java |  2 +-
 .../saml/saml1/core/impl/AttributeTest.java        |  2 +-
 .../saml1/core/impl/SubjectConfirmationTest.java   |  2 +-
 .../AddDoNotCacheConditionToAssertionsTest.java    |  6 +--
 .../binding/encoding/impl/HTTPPostEncoderTest.java |  8 +--
 .../impl/HTTPPostSimpleSignEncoderTest.java        |  8 +--
 .../impl/AddECPResponseHeaderHandlerTest.java      |  6 +--
 .../impl/AddGeneratedKeyHeaderHandlerTest.java     |  2 +-
 .../impl/AddRelayStateHeaderHandlerTest.java       |  2 +-
 .../AddRequestAuthenticatedHeaderHandlerTest.java  |  2 +-
 .../impl/ExtractProxiedRequestersHandlerTest.java  |  4 +-
 ...xtractChannelBindingsExtensionsHandlerTest.java | 12 ++---
 .../ExtractChannelBindingsHeadersHandlerTest.java  | 14 +++---
 ...SAML2HTTPPostSimpleSignSecurityHandlerTest.java |  2 +-
 ...edirectDeflateSignatureSecurityHandlerTest.java |  2 +-
 .../core/impl/KeyInfoConfirmationDataTypeTest.java |  2 +-
 .../core/tests/ResponseSuccessAuthnAttribTest.java |  2 +-
 .../saml/saml2/core/tests/SignedAssertionTest.java |  8 +--
 .../saml2/metadata/impl/IDPSSODescriptorTest.java  |  2 +-
 .../metadata/impl/SingleLogoutServiceTest.java     |  2 +-
 .../impl/AddChannelBindingsToAssertionsTest.java   |  2 +-
 .../profile/impl/AddNameIDToSubjectsTest.java      |  2 +-
 .../AddOneTimeUseConditionToAssertionsTest.java    |  4 +-
 .../impl/AddProxyRestrictionToAssertionsTest.java  |  2 +-
 .../saml2/profile/impl/DecryptNameIDsTest.java     |  4 +-
 .../saml2/profile/impl/EncryptAttributesTest.java  |  2 +-
 .../http/impl/HttpClientRequestSOAP11Encoder.java  |  4 +-
 .../encoder/http/impl/HTTPSOAP11Encoder.java       |  4 +-
 .../soap/soap11/profile/impl/AddSOAPFault.java     |  8 +--
 .../java/org/opensaml/soap/testing/SOAPTest.java   |  8 +--
 .../core/testing/XMLObjectBaseTestCase.java        |  2 +-
 .../saml1/testing/SAML1ActionTestingSupport.java   | 20 ++++----
 .../saml2/testing/SAML2ActionTestingSupport.java   | 40 +++++++--------
 .../xmlsec/encryption/support/Encrypter.java       |  2 +-
 .../opensaml/xmlsec/keyinfo/KeyInfoSupport.java    | 58 +++++++++++-----------
 .../xmlsec/signature/support/SignatureSupport.java |  2 +-
 .../keyinfo/impl/BasicKeyInfoGeneratorFactory.java |  2 +-
 .../impl/KeyAgreementKeyInfoGeneratorFactory.java  |  2 +-
 .../keyinfo/impl/X509KeyInfoGeneratorFactory.java  |  2 +-
 .../opensaml/xmlsec/encryption/impl/MGFTest.java   |  2 +-
 .../xmlsec/encryption/impl/OtherSourceTest.java    |  2 +-
 .../opensaml/xmlsec/encryption/impl/PRFTest.java   |  2 +-
 .../support/tests/DetachedSignatureTest.java       |  2 +-
 .../support/tests/EnvelopedSignatureTest.java      |  2 +-
 .../signature/support/tests/HMACSignatureTest.java |  4 +-
 99 files changed, 246 insertions(+), 244 deletions(-)

diff --git a/opensaml-core-api/src/main/java/org/opensaml/core/xml/XMLObjectBuilderFactory.java b/opensaml-core-api/src/main/java/org/opensaml/core/xml/XMLObjectBuilderFactory.java
index 8b6230f8f..57a9762e5 100644
--- a/opensaml-core-api/src/main/java/org/opensaml/core/xml/XMLObjectBuilderFactory.java
+++ b/opensaml-core-api/src/main/java/org/opensaml/core/xml/XMLObjectBuilderFactory.java
@@ -99,7 +99,8 @@ public class XMLObjectBuilderFactory {
      * @return the builder
      * @throws XMLRuntimeException  if the builder can't be obtained
      */
-    @Nonnull public <XMLObjectType extends XMLObject> XMLObjectBuilder<XMLObjectType> getBuilderOrThrow(
+    @SuppressWarnings("unchecked")
+    @Nonnull public <XMLObjectType extends XMLObject> XMLObjectBuilder<XMLObjectType> ensureBuilder(
             @Nonnull final QName key) {
 
         final XMLObjectBuilder<?> builder = getBuilder(key);
@@ -121,7 +122,8 @@ public class XMLObjectBuilderFactory {
      * @return the builder for the XMLObject the given element can be unmarshalled into
      * @throws XMLRuntimeException  if the builder can't be obtained
      */
-    @Nonnull public <XMLObjectType extends XMLObject> XMLObjectBuilder<XMLObjectType> getBuilderOrThrow(
+    @SuppressWarnings("unchecked")
+    @Nonnull public <XMLObjectType extends XMLObject> XMLObjectBuilder<XMLObjectType> ensureBuilder(
             @Nonnull final Element domElement) {
         
         final XMLObjectBuilder<?> builder = getBuilder(domElement);
diff --git a/opensaml-core-api/src/main/java/org/opensaml/core/xml/config/XMLObjectProviderRegistrySupport.java b/opensaml-core-api/src/main/java/org/opensaml/core/xml/config/XMLObjectProviderRegistrySupport.java
index 7dd55b4f0..3af160e10 100644
--- a/opensaml-core-api/src/main/java/org/opensaml/core/xml/config/XMLObjectProviderRegistrySupport.java
+++ b/opensaml-core-api/src/main/java/org/opensaml/core/xml/config/XMLObjectProviderRegistrySupport.java
@@ -63,7 +63,7 @@ public class XMLObjectProviderRegistrySupport {
      * 
      * @return the QName for the default object provider
      */
-    public static QName getDefaultProviderQName() {
+    @Nonnull public static QName getDefaultProviderQName() {
         return ConfigurationService.ensure(XMLObjectProviderRegistry.class).getDefaultProviderQName();
     }
 
@@ -103,7 +103,7 @@ public class XMLObjectProviderRegistrySupport {
      * 
      * @return the XMLObject builder factory
      */
-    public static XMLObjectBuilderFactory getBuilderFactory() {
+    @Nonnull public static XMLObjectBuilderFactory getBuilderFactory() {
         return ConfigurationService.ensure(XMLObjectProviderRegistry.class).getBuilderFactory();
     }
 
@@ -112,7 +112,7 @@ public class XMLObjectProviderRegistrySupport {
      * 
      * @return the XMLObject marshaller factory
      */
-    public static MarshallerFactory getMarshallerFactory() {
+    @Nonnull public static MarshallerFactory getMarshallerFactory() {
         return ConfigurationService.ensure(XMLObjectProviderRegistry.class).getMarshallerFactory();
     }
 
@@ -122,7 +122,7 @@ public class XMLObjectProviderRegistrySupport {
      * 
      * @return the XMLObject unmarshaller factory
      */
-    public static UnmarshallerFactory getUnmarshallerFactory() {
+    @Nonnull public static UnmarshallerFactory getUnmarshallerFactory() {
         return ConfigurationService.ensure(XMLObjectProviderRegistry.class).getUnmarshallerFactory();
     }
 
diff --git a/opensaml-core-api/src/main/java/org/opensaml/core/xml/util/XMLObjectSupport.java b/opensaml-core-api/src/main/java/org/opensaml/core/xml/util/XMLObjectSupport.java
index 557ba90cf..7858da6e7 100644
--- a/opensaml-core-api/src/main/java/org/opensaml/core/xml/util/XMLObjectSupport.java
+++ b/opensaml-core-api/src/main/java/org/opensaml/core/xml/util/XMLObjectSupport.java
@@ -485,7 +485,7 @@ public final class XMLObjectSupport {
      * @throws XMLRuntimeException if the required builder can not be obtained
      */
     @Nonnull public static XMLObject buildXMLObject(@Nonnull final QName elementName) {
-        final XMLObjectBuilder<?> builder = getProviderRegistry().getBuilderFactory().getBuilderOrThrow(elementName);
+        final XMLObjectBuilder<?> builder = getProviderRegistry().getBuilderFactory().ensureBuilder(elementName);
         return builder.buildObject(elementName);
     }
     
@@ -498,7 +498,7 @@ public final class XMLObjectSupport {
      * @throws XMLRuntimeException if the required builder can not be obtained
      */
     @Nonnull public static XMLObject buildXMLObject(@Nonnull final QName elementName, @Nullable final QName typeName) {
-        final XMLObjectBuilder<?> builder = getProviderRegistry().getBuilderFactory().getBuilderOrThrow(elementName);
+        final XMLObjectBuilder<?> builder = getProviderRegistry().getBuilderFactory().ensureBuilder(elementName);
         return builder.buildObject(elementName, typeName);
     }
     
diff --git a/opensaml-core-impl/src/test/java/org/opensaml/core/xml/schema/impl/XSBase64BinaryTest.java b/opensaml-core-impl/src/test/java/org/opensaml/core/xml/schema/impl/XSBase64BinaryTest.java
index 93583753d..ea517ae0a 100644
--- a/opensaml-core-impl/src/test/java/org/opensaml/core/xml/schema/impl/XSBase64BinaryTest.java
+++ b/opensaml-core-impl/src/test/java/org/opensaml/core/xml/schema/impl/XSBase64BinaryTest.java
@@ -56,7 +56,7 @@ public class XSBase64BinaryTest extends XMLObjectBaseTestCase {
      */
     @Test
     public void testMarshall() throws MarshallingException, XMLParserException{
-        XMLObjectBuilder<XSBase64Binary> xsb64bBuilder = builderFactory.getBuilderOrThrow(XSBase64Binary.TYPE_NAME);
+        XMLObjectBuilder<XSBase64Binary> xsb64bBuilder = builderFactory.ensureBuilder(XSBase64Binary.TYPE_NAME);
         XSBase64Binary xsb64b = xsb64bBuilder.buildObject(expectedXMLObjectQName, XSBase64Binary.TYPE_NAME);
         xsb64b.setValue(expectedValue);
         
diff --git a/opensaml-core-impl/src/test/java/org/opensaml/core/xml/schema/impl/XSBooleanTest.java b/opensaml-core-impl/src/test/java/org/opensaml/core/xml/schema/impl/XSBooleanTest.java
index e8ad44465..82979e148 100644
--- a/opensaml-core-impl/src/test/java/org/opensaml/core/xml/schema/impl/XSBooleanTest.java
+++ b/opensaml-core-impl/src/test/java/org/opensaml/core/xml/schema/impl/XSBooleanTest.java
@@ -57,7 +57,7 @@ public class XSBooleanTest extends XMLObjectBaseTestCase {
      */
     @Test
     public void testMarshall() throws MarshallingException, XMLParserException{
-        XMLObjectBuilder<XSBoolean> xsbBuilder = builderFactory.getBuilderOrThrow(XSBoolean.TYPE_NAME);
+        XMLObjectBuilder<XSBoolean> xsbBuilder = builderFactory.ensureBuilder(XSBoolean.TYPE_NAME);
         XSBoolean xsBoolean = xsbBuilder.buildObject(expectedXMLObjectQName, XSBoolean.TYPE_NAME);
         xsBoolean.setValue(XSBooleanValue.valueOf(expectedValue));
         
diff --git a/opensaml-core-impl/src/test/java/org/opensaml/core/xml/schema/impl/XSDateTimeTest.java b/opensaml-core-impl/src/test/java/org/opensaml/core/xml/schema/impl/XSDateTimeTest.java
index 15f23caf3..f2d95cbcb 100644
--- a/opensaml-core-impl/src/test/java/org/opensaml/core/xml/schema/impl/XSDateTimeTest.java
+++ b/opensaml-core-impl/src/test/java/org/opensaml/core/xml/schema/impl/XSDateTimeTest.java
@@ -61,7 +61,7 @@ public class XSDateTimeTest extends XMLObjectBaseTestCase {
     public void testMarshall() throws MarshallingException, XMLParserException{
         String testDocumentLocation = "/org/opensaml/core/xml/schema/impl/xsDateTime-basic.xml";
         
-        XMLObjectBuilder<XSDateTime> xsdtBuilder = builderFactory.getBuilderOrThrow(XSDateTime.TYPE_NAME);
+        XMLObjectBuilder<XSDateTime> xsdtBuilder = builderFactory.ensureBuilder(XSDateTime.TYPE_NAME);
         XSDateTime xsDateTime = xsdtBuilder.buildObject(expectedXMLObjectQName, XSDateTime.TYPE_NAME);
         xsDateTime.setValue(expectedValue);
         
diff --git a/opensaml-core-impl/src/test/java/org/opensaml/core/xml/schema/impl/XSIntegerTest.java b/opensaml-core-impl/src/test/java/org/opensaml/core/xml/schema/impl/XSIntegerTest.java
index be154ebcd..aebca0954 100644
--- a/opensaml-core-impl/src/test/java/org/opensaml/core/xml/schema/impl/XSIntegerTest.java
+++ b/opensaml-core-impl/src/test/java/org/opensaml/core/xml/schema/impl/XSIntegerTest.java
@@ -57,7 +57,7 @@ public class XSIntegerTest extends XMLObjectBaseTestCase {
      */
     @Test
     public void testMarshall() throws MarshallingException, XMLParserException{
-        XMLObjectBuilder<XSInteger> xsintBuilder = builderFactory.getBuilderOrThrow(XSInteger.TYPE_NAME);
+        XMLObjectBuilder<XSInteger> xsintBuilder = builderFactory.ensureBuilder(XSInteger.TYPE_NAME);
         XSInteger xsInteger = xsintBuilder.buildObject(expectedXMLObjectQName, XSInteger.TYPE_NAME);
         xsInteger.setValue(expectedValue);
         
diff --git a/opensaml-core-impl/src/test/java/org/opensaml/core/xml/schema/impl/XSQNameTest.java b/opensaml-core-impl/src/test/java/org/opensaml/core/xml/schema/impl/XSQNameTest.java
index 141a7a514..e6067731b 100644
--- a/opensaml-core-impl/src/test/java/org/opensaml/core/xml/schema/impl/XSQNameTest.java
+++ b/opensaml-core-impl/src/test/java/org/opensaml/core/xml/schema/impl/XSQNameTest.java
@@ -57,7 +57,7 @@ public class XSQNameTest extends XMLObjectBaseTestCase {
      */
     @Test
     public void testMarshall() throws MarshallingException, XMLParserException{
-        XMLObjectBuilder<XSQName> xsQNameBuilder = builderFactory.getBuilderOrThrow(XSQName.TYPE_NAME);
+        XMLObjectBuilder<XSQName> xsQNameBuilder = builderFactory.ensureBuilder(XSQName.TYPE_NAME);
         XSQName xsQName = xsQNameBuilder.buildObject(expectedXMLObjectQName, XSQName.TYPE_NAME);
         xsQName.setValue(expectedValue);
         
diff --git a/opensaml-core-impl/src/test/java/org/opensaml/core/xml/schema/impl/XSStringTest.java b/opensaml-core-impl/src/test/java/org/opensaml/core/xml/schema/impl/XSStringTest.java
index 2246cc69f..040fb3482 100644
--- a/opensaml-core-impl/src/test/java/org/opensaml/core/xml/schema/impl/XSStringTest.java
+++ b/opensaml-core-impl/src/test/java/org/opensaml/core/xml/schema/impl/XSStringTest.java
@@ -57,7 +57,7 @@ public class XSStringTest extends XMLObjectBaseTestCase {
      */
     @Test
     public void testMarshall() throws MarshallingException, XMLParserException{
-        XMLObjectBuilder<XSString> xssBuilder = builderFactory.getBuilderOrThrow(XSString.TYPE_NAME);
+        XMLObjectBuilder<XSString> xssBuilder = builderFactory.ensureBuilder(XSString.TYPE_NAME);
         XSString xsString = xssBuilder.buildObject(expectedXMLObjectQName, XSString.TYPE_NAME);
         xsString.setValue(expectedValue);
         
diff --git a/opensaml-core-impl/src/test/java/org/opensaml/core/xml/schema/impl/XSURITest.java b/opensaml-core-impl/src/test/java/org/opensaml/core/xml/schema/impl/XSURITest.java
index 781767094..503995a9d 100644
--- a/opensaml-core-impl/src/test/java/org/opensaml/core/xml/schema/impl/XSURITest.java
+++ b/opensaml-core-impl/src/test/java/org/opensaml/core/xml/schema/impl/XSURITest.java
@@ -57,7 +57,7 @@ public class XSURITest extends XMLObjectBaseTestCase {
      */
     @Test
     public void testMarshall() throws MarshallingException, XMLParserException{
-        XMLObjectBuilder<XSURI> uriBuilder = builderFactory.getBuilderOrThrow(XSURI.TYPE_NAME);
+        XMLObjectBuilder<XSURI> uriBuilder = builderFactory.ensureBuilder(XSURI.TYPE_NAME);
         XSURI xsURI = uriBuilder.buildObject(expectedXMLObjectQName, XSURI.TYPE_NAME);
         xsURI.setURI(expectedValue);
         
diff --git a/opensaml-core-impl/src/test/java/org/opensaml/core/xml/tests/NamespaceManagerTest.java b/opensaml-core-impl/src/test/java/org/opensaml/core/xml/tests/NamespaceManagerTest.java
index c1489c88f..6e5edbf65 100644
--- a/opensaml-core-impl/src/test/java/org/opensaml/core/xml/tests/NamespaceManagerTest.java
+++ b/opensaml-core-impl/src/test/java/org/opensaml/core/xml/tests/NamespaceManagerTest.java
@@ -68,7 +68,7 @@ public class NamespaceManagerTest extends XMLObjectBaseTestCase {
 
     @BeforeMethod
     protected void setUp() throws Exception {
-        xsAnyBuilder = builderFactory.<XSAny>getBuilderOrThrow(XSAny.TYPE_NAME);
+        xsAnyBuilder = builderFactory.<XSAny>ensureBuilder(XSAny.TYPE_NAME);
         xsAny = xsAnyBuilder.buildObject(elementName);
         nsManager = xsAny.getNamespaceManager();
     }
diff --git a/opensaml-core-impl/src/test/java/org/opensaml/core/xml/util/tests/AttributeMapTest.java b/opensaml-core-impl/src/test/java/org/opensaml/core/xml/util/tests/AttributeMapTest.java
index 40d6b2862..743736f43 100644
--- a/opensaml-core-impl/src/test/java/org/opensaml/core/xml/util/tests/AttributeMapTest.java
+++ b/opensaml-core-impl/src/test/java/org/opensaml/core/xml/util/tests/AttributeMapTest.java
@@ -64,7 +64,7 @@ public class AttributeMapTest extends XMLObjectBaseTestCase {
 
     @BeforeMethod
     protected void setUp() throws Exception {
-        xsAnyBuilder = builderFactory.<XSAny>getBuilderOrThrow(XSAny.TYPE_NAME);
+        xsAnyBuilder = builderFactory.<XSAny>ensureBuilder(XSAny.TYPE_NAME);
         owner = xsAnyBuilder.buildObject(elementName);
         attributeMap = owner.getUnknownAttributes();
     }
diff --git a/opensaml-saml-api/src/main/java/org/opensaml/saml/saml1/profile/AbstractSAML1NameIdentifierGenerator.java b/opensaml-saml-api/src/main/java/org/opensaml/saml/saml1/profile/AbstractSAML1NameIdentifierGenerator.java
index 8dd1e68e9..7fb26e8ce 100644
--- a/opensaml-saml-api/src/main/java/org/opensaml/saml/saml1/profile/AbstractSAML1NameIdentifierGenerator.java
+++ b/opensaml-saml-api/src/main/java/org/opensaml/saml/saml1/profile/AbstractSAML1NameIdentifierGenerator.java
@@ -50,7 +50,7 @@ public abstract class AbstractSAML1NameIdentifierGenerator extends AbstractNameI
     /** Constructor. */
     protected AbstractSAML1NameIdentifierGenerator() {
         nameBuilder = (SAMLObjectBuilder<NameIdentifier>)
-                XMLObjectProviderRegistrySupport.getBuilderFactory().<NameIdentifier>getBuilderOrThrow(
+                XMLObjectProviderRegistrySupport.getBuilderFactory().<NameIdentifier>ensureBuilder(
                         NameIdentifier.DEFAULT_ELEMENT_NAME);
     }
 
diff --git a/opensaml-saml-api/src/main/java/org/opensaml/saml/saml1/profile/SAML1ActionSupport.java b/opensaml-saml-api/src/main/java/org/opensaml/saml/saml1/profile/SAML1ActionSupport.java
index 5c1bf2568..578b7c15f 100644
--- a/opensaml-saml-api/src/main/java/org/opensaml/saml/saml1/profile/SAML1ActionSupport.java
+++ b/opensaml-saml-api/src/main/java/org/opensaml/saml/saml1/profile/SAML1ActionSupport.java
@@ -59,7 +59,7 @@ public final class SAML1ActionSupport {
             @Nonnull final IdentifierGenerationStrategy idGenerator, @Nonnull @NotEmpty final String issuer) {
         
         final SAMLObjectBuilder<Assertion> assertionBuilder = (SAMLObjectBuilder<Assertion>)
-                XMLObjectProviderRegistrySupport.getBuilderFactory().<Assertion>getBuilderOrThrow(
+                XMLObjectProviderRegistrySupport.getBuilderFactory().<Assertion>ensureBuilder(
                         Assertion.DEFAULT_ELEMENT_NAME);
 
         final Assertion assertion = assertionBuilder.buildObject();
@@ -113,7 +113,7 @@ public final class SAML1ActionSupport {
         Conditions conditions = assertion.getConditions();
         if (conditions == null) {
             final SAMLObjectBuilder<Conditions> conditionsBuilder = (SAMLObjectBuilder<Conditions>)
-                    XMLObjectProviderRegistrySupport.getBuilderFactory().<Conditions>getBuilderOrThrow(
+                    XMLObjectProviderRegistrySupport.getBuilderFactory().<Conditions>ensureBuilder(
                             Conditions.DEFAULT_ELEMENT_NAME);
             conditions = conditionsBuilder.buildObject();
             assertion.setConditions(conditions);
diff --git a/opensaml-saml-api/src/main/java/org/opensaml/saml/saml2/encryption/Encrypter.java b/opensaml-saml-api/src/main/java/org/opensaml/saml/saml2/encryption/Encrypter.java
index e638ed4a7..03c2d2a83 100644
--- a/opensaml-saml-api/src/main/java/org/opensaml/saml/saml2/encryption/Encrypter.java
+++ b/opensaml-saml-api/src/main/java/org/opensaml/saml/saml2/encryption/Encrypter.java
@@ -208,20 +208,20 @@ public class Encrypter extends org.opensaml.xmlsec.encryption.support.Encrypter
     private void init() {
         builderFactory = XMLObjectProviderRegistrySupport.getBuilderFactory();
         keyInfoBuilder =
-                (XMLSignatureBuilder<KeyInfo>) builderFactory.<KeyInfo>getBuilderOrThrow(KeyInfo.DEFAULT_ELEMENT_NAME);
+                (XMLSignatureBuilder<KeyInfo>) builderFactory.<KeyInfo>ensureBuilder(KeyInfo.DEFAULT_ELEMENT_NAME);
         dataReferenceBuilder =
-                (XMLEncryptionBuilder<DataReference>) builderFactory.<DataReference>getBuilderOrThrow(
+                (XMLEncryptionBuilder<DataReference>) builderFactory.<DataReference>ensureBuilder(
                         DataReference.DEFAULT_ELEMENT_NAME);
         referenceListBuilder =
-                (XMLEncryptionBuilder<ReferenceList>) builderFactory.<ReferenceList>getBuilderOrThrow(
+                (XMLEncryptionBuilder<ReferenceList>) builderFactory.<ReferenceList>ensureBuilder(
                         ReferenceList.DEFAULT_ELEMENT_NAME);
         retrievalMethodBuilder =
-                (XMLSignatureBuilder<RetrievalMethod>) builderFactory.<RetrievalMethod>getBuilderOrThrow(
+                (XMLSignatureBuilder<RetrievalMethod>) builderFactory.<RetrievalMethod>ensureBuilder(
                         RetrievalMethod.DEFAULT_ELEMENT_NAME);
         keyNameBuilder =
-                (XMLSignatureBuilder<KeyName>) builderFactory.<KeyName>getBuilderOrThrow(KeyName.DEFAULT_ELEMENT_NAME);
+                (XMLSignatureBuilder<KeyName>) builderFactory.<KeyName>ensureBuilder(KeyName.DEFAULT_ELEMENT_NAME);
         carriedKeyNameBuilder =
-                (XMLEncryptionBuilder<CarriedKeyName>) builderFactory.<CarriedKeyName>getBuilderOrThrow(
+                (XMLEncryptionBuilder<CarriedKeyName>) builderFactory.<CarriedKeyName>ensureBuilder(
                         CarriedKeyName.DEFAULT_ELEMENT_NAME);
 
         idGenerator = IdentifierGenerationStrategy.getInstance(ProviderType.RANDOM);
diff --git a/opensaml-saml-api/src/main/java/org/opensaml/saml/saml2/profile/AbstractSAML2NameIDGenerator.java b/opensaml-saml-api/src/main/java/org/opensaml/saml/saml2/profile/AbstractSAML2NameIDGenerator.java
index ef3291b12..5d3773410 100644
--- a/opensaml-saml-api/src/main/java/org/opensaml/saml/saml2/profile/AbstractSAML2NameIDGenerator.java
+++ b/opensaml-saml-api/src/main/java/org/opensaml/saml/saml2/profile/AbstractSAML2NameIDGenerator.java
@@ -62,7 +62,7 @@ public abstract class AbstractSAML2NameIDGenerator extends AbstractNameIdentifie
     /** Constructor. */
     protected AbstractSAML2NameIDGenerator() {
         nameBuilder = (SAMLObjectBuilder<NameID>)
-                XMLObjectProviderRegistrySupport.getBuilderFactory().<NameID>getBuilderOrThrow(
+                XMLObjectProviderRegistrySupport.getBuilderFactory().<NameID>ensureBuilder(
                         NameID.DEFAULT_ELEMENT_NAME);
         requestLookupStrategy = new MessageLookup<>(AuthnRequest.class).compose(new InboundMessageContextLookup());
     }
diff --git a/opensaml-saml-api/src/main/java/org/opensaml/saml/saml2/profile/SAML2ActionSupport.java b/opensaml-saml-api/src/main/java/org/opensaml/saml/saml2/profile/SAML2ActionSupport.java
index 71c63b5af..c80bb18fa 100644
--- a/opensaml-saml-api/src/main/java/org/opensaml/saml/saml2/profile/SAML2ActionSupport.java
+++ b/opensaml-saml-api/src/main/java/org/opensaml/saml/saml2/profile/SAML2ActionSupport.java
@@ -61,7 +61,7 @@ public final class SAML2ActionSupport {
             @Nonnull final IdentifierGenerationStrategy idGenerator, @Nullable final String issuer) {
    
         final SAMLObjectBuilder<Assertion> assertionBuilder = (SAMLObjectBuilder<Assertion>)
-                XMLObjectProviderRegistrySupport.getBuilderFactory().<Assertion>getBuilderOrThrow(
+                XMLObjectProviderRegistrySupport.getBuilderFactory().<Assertion>ensureBuilder(
                         Assertion.DEFAULT_ELEMENT_NAME);
 
         final Assertion assertion = assertionBuilder.buildObject();
@@ -71,7 +71,7 @@ public final class SAML2ActionSupport {
 
         if (issuer != null) {
             final SAMLObjectBuilder<Issuer> issuerBuilder = (SAMLObjectBuilder<Issuer>)
-                    XMLObjectProviderRegistrySupport.getBuilderFactory().<Issuer>getBuilderOrThrow(
+                    XMLObjectProviderRegistrySupport.getBuilderFactory().<Issuer>ensureBuilder(
                             Issuer.DEFAULT_ELEMENT_NAME);
             final Issuer issuerObject = issuerBuilder.buildObject();
             issuerObject.setValue(issuer);
@@ -123,7 +123,7 @@ public final class SAML2ActionSupport {
         Conditions conditions = assertion.getConditions();
         if (conditions == null) {
             final SAMLObjectBuilder<Conditions> conditionsBuilder = (SAMLObjectBuilder<Conditions>)
-                    XMLObjectProviderRegistrySupport.getBuilderFactory().<Conditions>getBuilderOrThrow(
+                    XMLObjectProviderRegistrySupport.getBuilderFactory().<Conditions>ensureBuilder(
                             Conditions.DEFAULT_ELEMENT_NAME);
             conditions = conditionsBuilder.buildObject();
             assertion.setConditions(conditions);
@@ -151,7 +151,7 @@ public final class SAML2ActionSupport {
         Advice advice = assertion.getAdvice();
         if (advice == null) {
             final SAMLObjectBuilder<Advice> adviceBuilder = (SAMLObjectBuilder<Advice>)
-                    XMLObjectProviderRegistrySupport.getBuilderFactory().<Advice>getBuilderOrThrow(
+                    XMLObjectProviderRegistrySupport.getBuilderFactory().<Advice>ensureBuilder(
                             Advice.DEFAULT_ELEMENT_NAME);
             advice = adviceBuilder.buildObject();
             assertion.setAdvice(advice);
diff --git a/opensaml-saml-impl/src/main/java/org/opensaml/saml/common/binding/impl/AddChannelBindingsHeaderHandler.java b/opensaml-saml-impl/src/main/java/org/opensaml/saml/common/binding/impl/AddChannelBindingsHeaderHandler.java
index 53aa80e38..f909dee10 100644
--- a/opensaml-saml-impl/src/main/java/org/opensaml/saml/common/binding/impl/AddChannelBindingsHeaderHandler.java
+++ b/opensaml-saml-impl/src/main/java/org/opensaml/saml/common/binding/impl/AddChannelBindingsHeaderHandler.java
@@ -92,7 +92,7 @@ public class AddChannelBindingsHeaderHandler extends AbstractMessageHandler {
     protected void doInvoke(@Nonnull final MessageContext messageContext) throws MessageHandlerException {
 
         final SAMLObjectBuilder<ChannelBindings> cbBuilder = (SAMLObjectBuilder<ChannelBindings>)
-                XMLObjectProviderRegistrySupport.getBuilderFactory().<ChannelBindings>getBuilderOrThrow(
+                XMLObjectProviderRegistrySupport.getBuilderFactory().<ChannelBindings>ensureBuilder(
                         ChannelBindings.DEFAULT_ELEMENT_NAME);
         
         for (final ChannelBindings cb : channelBindingsContext.getChannelBindings()) {
diff --git a/opensaml-saml-impl/src/main/java/org/opensaml/saml/common/profile/impl/AddAudienceRestrictionToAssertions.java b/opensaml-saml-impl/src/main/java/org/opensaml/saml/common/profile/impl/AddAudienceRestrictionToAssertions.java
index 9b48f88e6..f046ed96a 100644
--- a/opensaml-saml-impl/src/main/java/org/opensaml/saml/common/profile/impl/AddAudienceRestrictionToAssertions.java
+++ b/opensaml-saml-impl/src/main/java/org/opensaml/saml/common/profile/impl/AddAudienceRestrictionToAssertions.java
@@ -200,7 +200,7 @@ public class AddAudienceRestrictionToAssertions extends AbstractConditionalProfi
         final SAMLObjectBuilder<org.opensaml.saml.saml1.core.Audience> audienceBuilder =
                 (SAMLObjectBuilder<org.opensaml.saml.saml1.core.Audience>) 
                 XMLObjectProviderRegistrySupport.getBuilderFactory(
-                        ).<org.opensaml.saml.saml1.core.Audience>getBuilderOrThrow(
+                        ).<org.opensaml.saml.saml1.core.Audience>ensureBuilder(
                                 org.opensaml.saml.saml1.core.Audience.DEFAULT_ELEMENT_NAME);
         for (final String audienceId : audiences) {
             log.debug("{} Adding {} as an Audience of the AudienceRestrictionCondition", getLogPrefix(), audienceId);
@@ -224,7 +224,7 @@ public class AddAudienceRestrictionToAssertions extends AbstractConditionalProfi
         final SAMLObjectBuilder<org.opensaml.saml.saml2.core.Audience> audienceBuilder =
                 (SAMLObjectBuilder<org.opensaml.saml.saml2.core.Audience>) 
                 XMLObjectProviderRegistrySupport.getBuilderFactory(
-                        ).<org.opensaml.saml.saml2.core.Audience>getBuilderOrThrow(
+                        ).<org.opensaml.saml.saml2.core.Audience>ensureBuilder(
                                 org.opensaml.saml.saml2.core.Audience.DEFAULT_ELEMENT_NAME);
         for (final String audienceId : audiences) {
             log.debug("{} Adding {} as an Audience of the AudienceRestriction", getLogPrefix(), audienceId);
@@ -249,7 +249,7 @@ public class AddAudienceRestrictionToAssertions extends AbstractConditionalProfi
         if (!addingAudiencesToExistingRestriction || conditions.getAudienceRestrictionConditions().isEmpty()) {
             final SAMLObjectBuilder<AudienceRestrictionCondition> conditionBuilder =
                     (SAMLObjectBuilder<AudienceRestrictionCondition>) XMLObjectProviderRegistrySupport
-                            .getBuilderFactory().<AudienceRestrictionCondition>getBuilderOrThrow(
+                            .getBuilderFactory().<AudienceRestrictionCondition>ensureBuilder(
                                     AudienceRestrictionCondition.DEFAULT_ELEMENT_NAME);
             log.debug("{} Adding new AudienceRestrictionCondition", getLogPrefix());
             condition = conditionBuilder.buildObject();
@@ -277,7 +277,7 @@ public class AddAudienceRestrictionToAssertions extends AbstractConditionalProfi
         if (!addingAudiencesToExistingRestriction || conditions.getAudienceRestrictions().isEmpty()) {
             final SAMLObjectBuilder<AudienceRestriction> conditionBuilder =
                     (SAMLObjectBuilder<AudienceRestriction>) XMLObjectProviderRegistrySupport
-                            .getBuilderFactory().<AudienceRestriction>getBuilderOrThrow(
+                            .getBuilderFactory().<AudienceRestriction>ensureBuilder(
                                     AudienceRestriction.DEFAULT_ELEMENT_NAME);
             log.debug("{} Adding new AudienceRestriction", getLogPrefix());
             condition = conditionBuilder.buildObject();
diff --git a/opensaml-saml-impl/src/main/java/org/opensaml/saml/metadata/resolver/filter/impl/AlgorithmFilter.java b/opensaml-saml-impl/src/main/java/org/opensaml/saml/metadata/resolver/filter/impl/AlgorithmFilter.java
index d448e715e..ed02ea113 100644
--- a/opensaml-saml-impl/src/main/java/org/opensaml/saml/metadata/resolver/filter/impl/AlgorithmFilter.java
+++ b/opensaml-saml-impl/src/main/java/org/opensaml/saml/metadata/resolver/filter/impl/AlgorithmFilter.java
@@ -85,7 +85,7 @@ public class AlgorithmFilter extends AbstractInitializableComponent implements M
     /** Constructor. */
     public AlgorithmFilter() {
         extBuilder = (SAMLObjectBuilder<Extensions>)
-                XMLObjectProviderRegistrySupport.getBuilderFactory().<Extensions>getBuilderOrThrow(
+                XMLObjectProviderRegistrySupport.getBuilderFactory().<Extensions>ensureBuilder(
                         Extensions.DEFAULT_ELEMENT_NAME);
         applyMap = ArrayListMultimap.create();
     }
diff --git a/opensaml-saml-impl/src/main/java/org/opensaml/saml/metadata/resolver/filter/impl/EntityAttributesFilter.java b/opensaml-saml-impl/src/main/java/org/opensaml/saml/metadata/resolver/filter/impl/EntityAttributesFilter.java
index 12acc520f..2670e7df7 100644
--- a/opensaml-saml-impl/src/main/java/org/opensaml/saml/metadata/resolver/filter/impl/EntityAttributesFilter.java
+++ b/opensaml-saml-impl/src/main/java/org/opensaml/saml/metadata/resolver/filter/impl/EntityAttributesFilter.java
@@ -83,10 +83,10 @@ public class EntityAttributesFilter extends AbstractInitializableComponent imple
     /** Constructor. */
     public EntityAttributesFilter() {
         extBuilder = (SAMLObjectBuilder<Extensions>)
-                XMLObjectProviderRegistrySupport.getBuilderFactory().<Extensions>getBuilderOrThrow(
+                XMLObjectProviderRegistrySupport.getBuilderFactory().<Extensions>ensureBuilder(
                         Extensions.DEFAULT_ELEMENT_NAME);
         entityAttributesBuilder = (SAMLObjectBuilder<EntityAttributes>)
-                XMLObjectProviderRegistrySupport.getBuilderFactory().<EntityAttributes>getBuilderOrThrow(
+                XMLObjectProviderRegistrySupport.getBuilderFactory().<EntityAttributes>ensureBuilder(
                         EntityAttributes.DEFAULT_ELEMENT_NAME);
         applyMap = ArrayListMultimap.create();
     }
diff --git a/opensaml-saml-impl/src/main/java/org/opensaml/saml/metadata/resolver/filter/impl/NameIDFormatFilter.java b/opensaml-saml-impl/src/main/java/org/opensaml/saml/metadata/resolver/filter/impl/NameIDFormatFilter.java
index 1cdd52d8c..c4b99e2f0 100644
--- a/opensaml-saml-impl/src/main/java/org/opensaml/saml/metadata/resolver/filter/impl/NameIDFormatFilter.java
+++ b/opensaml-saml-impl/src/main/java/org/opensaml/saml/metadata/resolver/filter/impl/NameIDFormatFilter.java
@@ -75,7 +75,7 @@ public class NameIDFormatFilter extends AbstractInitializableComponent implement
     /** Constructor. */
     public NameIDFormatFilter() {
         formatBuilder = (SAMLObjectBuilder<NameIDFormat>)
-                XMLObjectProviderRegistrySupport.getBuilderFactory().<NameIDFormat>getBuilderOrThrow(
+                XMLObjectProviderRegistrySupport.getBuilderFactory().<NameIDFormat>ensureBuilder(
                         NameIDFormat.DEFAULT_ELEMENT_NAME);
     }
     
diff --git a/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml1/profile/impl/AddDoNotCacheConditionToAssertions.java b/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml1/profile/impl/AddDoNotCacheConditionToAssertions.java
index 10ce62d88..d7c3b5e2c 100644
--- a/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml1/profile/impl/AddDoNotCacheConditionToAssertions.java
+++ b/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml1/profile/impl/AddDoNotCacheConditionToAssertions.java
@@ -97,7 +97,7 @@ public class AddDoNotCacheConditionToAssertions extends AbstractConditionalProfi
     protected void doExecute(@Nonnull final ProfileRequestContext profileRequestContext) {
 
         final SAMLObjectBuilder<DoNotCacheCondition> dncConditionBuilder = (SAMLObjectBuilder<DoNotCacheCondition>)
-                XMLObjectProviderRegistrySupport.getBuilderFactory().<DoNotCacheCondition>getBuilderOrThrow(
+                XMLObjectProviderRegistrySupport.getBuilderFactory().<DoNotCacheCondition>ensureBuilder(
                         DoNotCacheCondition.DEFAULT_ELEMENT_NAME);
 
         for (final Assertion assertion : response.getAssertions()) {
diff --git a/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml1/profile/impl/AddNameIdentifierToSubjects.java b/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml1/profile/impl/AddNameIdentifierToSubjects.java
index f3167eed4..2bc04baf9 100644
--- a/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml1/profile/impl/AddNameIdentifierToSubjects.java
+++ b/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml1/profile/impl/AddNameIdentifierToSubjects.java
@@ -90,10 +90,10 @@ public class AddNameIdentifierToSubjects extends AbstractProfileAction {
     /** Constructor. */
     public AddNameIdentifierToSubjects() {
         subjectBuilder = (SAMLObjectBuilder<Subject>)
-                XMLObjectProviderRegistrySupport.getBuilderFactory().<Subject>getBuilderOrThrow(
+                XMLObjectProviderRegistrySupport.getBuilderFactory().<Subject>ensureBuilder(
                         Subject.DEFAULT_ELEMENT_NAME);
         nameIdentifierBuilder = (SAMLObjectBuilder<NameIdentifier>)
-                XMLObjectProviderRegistrySupport.getBuilderFactory().<NameIdentifier>getBuilderOrThrow(
+                XMLObjectProviderRegistrySupport.getBuilderFactory().<NameIdentifier>ensureBuilder(
                         NameIdentifier.DEFAULT_ELEMENT_NAME);
         
         overwriteExisting = true;
diff --git a/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml1/profile/impl/AddResponseShell.java b/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml1/profile/impl/AddResponseShell.java
index aabde6b7e..30e10fa48 100644
--- a/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml1/profile/impl/AddResponseShell.java
+++ b/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml1/profile/impl/AddResponseShell.java
@@ -134,11 +134,11 @@ public class AddResponseShell extends AbstractProfileAction {
 
         final XMLObjectBuilderFactory bf = XMLObjectProviderRegistrySupport.getBuilderFactory();
         final SAMLObjectBuilder<StatusCode> statusCodeBuilder =
-                (SAMLObjectBuilder<StatusCode>) bf.<StatusCode>getBuilderOrThrow(StatusCode.DEFAULT_ELEMENT_NAME);
+                (SAMLObjectBuilder<StatusCode>) bf.<StatusCode>ensureBuilder(StatusCode.DEFAULT_ELEMENT_NAME);
         final SAMLObjectBuilder<Status> statusBuilder =
-                (SAMLObjectBuilder<Status>) bf.<Status>getBuilderOrThrow(Status.DEFAULT_ELEMENT_NAME);
+                (SAMLObjectBuilder<Status>) bf.<Status>ensureBuilder(Status.DEFAULT_ELEMENT_NAME);
         final SAMLObjectBuilder<Response> responseBuilder =
-                (SAMLObjectBuilder<Response>) bf.<Response>getBuilderOrThrow(Response.DEFAULT_ELEMENT_NAME);
+                (SAMLObjectBuilder<Response>) bf.<Response>ensureBuilder(Response.DEFAULT_ELEMENT_NAME);
 
         final StatusCode statusCode = statusCodeBuilder.buildObject();
         statusCode.setValue(StatusCode.SUCCESS);
diff --git a/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml1/profile/impl/AddStatusToResponse.java b/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml1/profile/impl/AddStatusToResponse.java
index 8276f731a..63b559bdf 100644
--- a/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml1/profile/impl/AddStatusToResponse.java
+++ b/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml1/profile/impl/AddStatusToResponse.java
@@ -188,7 +188,7 @@ public class AddStatusToResponse extends AbstractProfileAction {
     protected void doExecute(@Nonnull final ProfileRequestContext profileRequestContext) {
 
         final SAMLObjectBuilder<Status> statusBuilder = (SAMLObjectBuilder<Status>)
-                XMLObjectProviderRegistrySupport.getBuilderFactory().<Status>getBuilderOrThrow(Status.TYPE_NAME);
+                XMLObjectProviderRegistrySupport.getBuilderFactory().<Status>ensureBuilder(Status.TYPE_NAME);
 
         final Status status = statusBuilder.buildObject();
         response.setStatus(status);
@@ -232,7 +232,7 @@ public class AddStatusToResponse extends AbstractProfileAction {
      */
     private void buildStatusCode(@Nonnull final Status status, @Nonnull @NonnullElements final List<QName> codes) {
         final SAMLObjectBuilder<StatusCode> statusCodeBuilder = (SAMLObjectBuilder<StatusCode>)
-                XMLObjectProviderRegistrySupport.getBuilderFactory().<StatusCode>getBuilderOrThrow(
+                XMLObjectProviderRegistrySupport.getBuilderFactory().<StatusCode>ensureBuilder(
                         StatusCode.TYPE_NAME);
                 
         // Build nested StatusCodes.
@@ -261,7 +261,7 @@ public class AddStatusToResponse extends AbstractProfileAction {
      */
     private void buildStatusMessage(@Nonnull final Status status, @Nonnull @NotEmpty final String message) {
         final SAMLObjectBuilder<StatusMessage> statusMessageBuilder = (SAMLObjectBuilder<StatusMessage>)
-                XMLObjectProviderRegistrySupport.getBuilderFactory().<StatusMessage>getBuilderOrThrow(
+                XMLObjectProviderRegistrySupport.getBuilderFactory().<StatusMessage>ensureBuilder(
                         StatusMessage.DEFAULT_ELEMENT_NAME);
         final StatusMessage sm = statusMessageBuilder.buildObject();
         sm.setValue(message);
diff --git a/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml1/profile/impl/AddSubjectConfirmationToSubjects.java b/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml1/profile/impl/AddSubjectConfirmationToSubjects.java
index 866232b3d..daf4976b5 100644
--- a/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml1/profile/impl/AddSubjectConfirmationToSubjects.java
+++ b/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml1/profile/impl/AddSubjectConfirmationToSubjects.java
@@ -93,13 +93,13 @@ public class AddSubjectConfirmationToSubjects extends AbstractProfileAction {
     /** Constructor. */
     public AddSubjectConfirmationToSubjects() {
         subjectBuilder = (SAMLObjectBuilder<Subject>)
-                XMLObjectProviderRegistrySupport.getBuilderFactory().<Subject>getBuilderOrThrow(
+                XMLObjectProviderRegistrySupport.getBuilderFactory().<Subject>ensureBuilder(
                         Subject.DEFAULT_ELEMENT_NAME);
         confirmationBuilder = (SAMLObjectBuilder<SubjectConfirmation>)
-                XMLObjectProviderRegistrySupport.getBuilderFactory().<SubjectConfirmation>getBuilderOrThrow(
+                XMLObjectProviderRegistrySupport.getBuilderFactory().<SubjectConfirmation>ensureBuilder(
                         SubjectConfirmation.DEFAULT_ELEMENT_NAME);
         confirmationMethodBuilder = (SAMLObjectBuilder<ConfirmationMethod>)
-                XMLObjectProviderRegistrySupport.getBuilderFactory().<ConfirmationMethod>getBuilderOrThrow(
+                XMLObjectProviderRegistrySupport.getBuilderFactory().<ConfirmationMethod>ensureBuilder(
                         ConfirmationMethod.DEFAULT_ELEMENT_NAME);
         
         overwriteExisting = true;
diff --git a/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml1/profile/impl/CopyNameIdentifierFromRequest.java b/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml1/profile/impl/CopyNameIdentifierFromRequest.java
index 41bc65e96..851d3f2cb 100644
--- a/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml1/profile/impl/CopyNameIdentifierFromRequest.java
+++ b/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml1/profile/impl/CopyNameIdentifierFromRequest.java
@@ -88,10 +88,10 @@ public class CopyNameIdentifierFromRequest extends AbstractProfileAction {
     /** Constructor. */
     public CopyNameIdentifierFromRequest() {
         subjectBuilder = (SAMLObjectBuilder<Subject>)
-                XMLObjectProviderRegistrySupport.getBuilderFactory().<Subject>getBuilderOrThrow(
+                XMLObjectProviderRegistrySupport.getBuilderFactory().<Subject>ensureBuilder(
                         Subject.DEFAULT_ELEMENT_NAME);
         nameIdentifierBuilder = (SAMLObjectBuilder<NameIdentifier>)
-                XMLObjectProviderRegistrySupport.getBuilderFactory().<NameIdentifier>getBuilderOrThrow(
+                XMLObjectProviderRegistrySupport.getBuilderFactory().<NameIdentifier>ensureBuilder(
                         NameIdentifier.DEFAULT_ELEMENT_NAME);
         
         overwriteExisting = true;
diff --git a/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/binding/impl/AddECPResponseHeaderHandler.java b/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/binding/impl/AddECPResponseHeaderHandler.java
index 7d0f99420..b1e20f5d6 100644
--- a/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/binding/impl/AddECPResponseHeaderHandler.java
+++ b/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/binding/impl/AddECPResponseHeaderHandler.java
@@ -69,7 +69,7 @@ public class AddECPResponseHeaderHandler extends AbstractMessageHandler {
     @Override
     protected void doInvoke(@Nonnull final MessageContext messageContext) throws MessageHandlerException {
         final SAMLObjectBuilder<Response> responseBuilder = (SAMLObjectBuilder<Response>)
-                XMLObjectProviderRegistrySupport.getBuilderFactory().<Response>getBuilderOrThrow(
+                XMLObjectProviderRegistrySupport.getBuilderFactory().<Response>ensureBuilder(
                         Response.DEFAULT_ELEMENT_NAME);
         
         final Response header = responseBuilder.buildObject();
diff --git a/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/binding/impl/AddGeneratedKeyHeaderHandler.java b/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/binding/impl/AddGeneratedKeyHeaderHandler.java
index 4fde53961..e3fb087b7 100644
--- a/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/binding/impl/AddGeneratedKeyHeaderHandler.java
+++ b/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/binding/impl/AddGeneratedKeyHeaderHandler.java
@@ -57,7 +57,7 @@ public class AddGeneratedKeyHeaderHandler extends AbstractMessageHandler {
     @Override
     protected void doInvoke(@Nonnull final MessageContext messageContext) throws MessageHandlerException {
         final SAMLObjectBuilder<GeneratedKey> builder = (SAMLObjectBuilder<GeneratedKey>)
-                XMLObjectProviderRegistrySupport.getBuilderFactory().<GeneratedKey>getBuilderOrThrow(
+                XMLObjectProviderRegistrySupport.getBuilderFactory().<GeneratedKey>ensureBuilder(
                         GeneratedKey.DEFAULT_ELEMENT_NAME);
         try {
             final GeneratedKey header = builder.buildObject();
diff --git a/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/binding/impl/AddRelayStateHeaderHandler.java b/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/binding/impl/AddRelayStateHeaderHandler.java
index 9dfbe729e..8e0db68b7 100644
--- a/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/binding/impl/AddRelayStateHeaderHandler.java
+++ b/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/binding/impl/AddRelayStateHeaderHandler.java
@@ -59,7 +59,7 @@ public class AddRelayStateHeaderHandler extends AbstractMessageHandler {
     @Override
     protected void doInvoke(@Nonnull final MessageContext messageContext) throws MessageHandlerException {
         final SAMLObjectBuilder<RelayState> builder = (SAMLObjectBuilder<RelayState>)
-                XMLObjectProviderRegistrySupport.getBuilderFactory().<RelayState>getBuilderOrThrow(
+                XMLObjectProviderRegistrySupport.getBuilderFactory().<RelayState>ensureBuilder(
                         RelayState.DEFAULT_ELEMENT_NAME);
         
         final RelayState header = builder.buildObject();
diff --git a/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/binding/impl/AddRequestAuthenticatedHeaderHandler.java b/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/binding/impl/AddRequestAuthenticatedHeaderHandler.java
index b3fae0138..0b24e293c 100644
--- a/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/binding/impl/AddRequestAuthenticatedHeaderHandler.java
+++ b/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/binding/impl/AddRequestAuthenticatedHeaderHandler.java
@@ -56,7 +56,7 @@ public class AddRequestAuthenticatedHeaderHandler extends AbstractMessageHandler
     protected void doInvoke(@Nonnull final MessageContext messageContext) throws MessageHandlerException {
         
         final SAMLObjectBuilder<RequestAuthenticated> builder = (SAMLObjectBuilder<RequestAuthenticated>)
-                XMLObjectProviderRegistrySupport.getBuilderFactory().<RequestAuthenticated>getBuilderOrThrow(
+                XMLObjectProviderRegistrySupport.getBuilderFactory().<RequestAuthenticated>ensureBuilder(
                         RequestAuthenticated.DEFAULT_ELEMENT_NAME);
         
         final RequestAuthenticated header = builder.buildObject();
diff --git a/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/profile/impl/AbstractResponseShellAction.java b/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/profile/impl/AbstractResponseShellAction.java
index 6f1e6a7b5..297000fba 100644
--- a/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/profile/impl/AbstractResponseShellAction.java
+++ b/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/profile/impl/AbstractResponseShellAction.java
@@ -163,11 +163,11 @@ public abstract class AbstractResponseShellAction<MessageType extends StatusResp
 
         final XMLObjectBuilderFactory bf = XMLObjectProviderRegistrySupport.getBuilderFactory();
         final SAMLObjectBuilder<StatusCode> statusCodeBuilder =
-                (SAMLObjectBuilder<StatusCode>) bf.<StatusCode>getBuilderOrThrow(StatusCode.TYPE_NAME);
+                (SAMLObjectBuilder<StatusCode>) bf.<StatusCode>ensureBuilder(StatusCode.TYPE_NAME);
         final SAMLObjectBuilder<Status> statusBuilder =
-                (SAMLObjectBuilder<Status>) bf.<Status>getBuilderOrThrow(Status.TYPE_NAME);
+                (SAMLObjectBuilder<Status>) bf.<Status>ensureBuilder(Status.TYPE_NAME);
         final SAMLObjectBuilder<MessageType> responseBuilder =
-                (SAMLObjectBuilder<MessageType>) bf.<MessageType>getBuilderOrThrow(getMessageType());
+                (SAMLObjectBuilder<MessageType>) bf.<MessageType>ensureBuilder(getMessageType());
 
         final StatusCode statusCode = statusCodeBuilder.buildObject();
         statusCode.setValue(StatusCode.SUCCESS);
@@ -185,7 +185,7 @@ public abstract class AbstractResponseShellAction<MessageType extends StatusResp
         if (issuerId != null) {
             log.debug("{} Setting Issuer to {}", getLogPrefix(), issuerId);
             final SAMLObjectBuilder<Issuer> issuerBuilder =
-                    (SAMLObjectBuilder<Issuer>) bf.<Issuer>getBuilderOrThrow(Issuer.DEFAULT_ELEMENT_NAME);
+                    (SAMLObjectBuilder<Issuer>) bf.<Issuer>ensureBuilder(Issuer.DEFAULT_ELEMENT_NAME);
             final Issuer issuer = issuerBuilder.buildObject();
             issuer.setValue(issuerId);
             response.setIssuer(issuer);
diff --git a/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/profile/impl/AddChannelBindingsToAssertions.java b/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/profile/impl/AddChannelBindingsToAssertions.java
index 90700f193..8d84ef25a 100644
--- a/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/profile/impl/AddChannelBindingsToAssertions.java
+++ b/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/profile/impl/AddChannelBindingsToAssertions.java
@@ -136,7 +136,7 @@ public class AddChannelBindingsToAssertions extends AbstractConditionalProfileAc
     protected void doExecute(@Nonnull final ProfileRequestContext profileRequestContext) {
         
         final SAMLObjectBuilder<ChannelBindings> cbBuilder = (SAMLObjectBuilder<ChannelBindings>)
-                XMLObjectProviderRegistrySupport.getBuilderFactory().<ChannelBindings>getBuilderOrThrow(
+                XMLObjectProviderRegistrySupport.getBuilderFactory().<ChannelBindings>ensureBuilder(
                         ChannelBindings.DEFAULT_ELEMENT_NAME);
 
         for (final Assertion assertion : response.getAssertions()) {
diff --git a/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/profile/impl/AddGeneratedKeyToAssertions.java b/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/profile/impl/AddGeneratedKeyToAssertions.java
index 1b0a24667..260f3664e 100644
--- a/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/profile/impl/AddGeneratedKeyToAssertions.java
+++ b/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/profile/impl/AddGeneratedKeyToAssertions.java
@@ -138,7 +138,7 @@ public class AddGeneratedKeyToAssertions extends AbstractConditionalProfileActio
     protected void doExecute(@Nonnull final ProfileRequestContext profileRequestContext) {
         
         final SAMLObjectBuilder<GeneratedKey> keyBuilder = (SAMLObjectBuilder<GeneratedKey>)
-                XMLObjectProviderRegistrySupport.getBuilderFactory().<GeneratedKey>getBuilderOrThrow(
+                XMLObjectProviderRegistrySupport.getBuilderFactory().<GeneratedKey>ensureBuilder(
                         GeneratedKey.DEFAULT_ELEMENT_NAME);
 
         try {
diff --git a/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/profile/impl/AddNameIDToSubjects.java b/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/profile/impl/AddNameIDToSubjects.java
index f0ecded0f..c28e7b3bb 100644
--- a/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/profile/impl/AddNameIDToSubjects.java
+++ b/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/profile/impl/AddNameIDToSubjects.java
@@ -140,10 +140,10 @@ public class AddNameIDToSubjects extends AbstractProfileAction {
      */
     public AddNameIDToSubjects() throws ComponentInitializationException {
         subjectBuilder = (SAMLObjectBuilder<Subject>)
-                XMLObjectProviderRegistrySupport.getBuilderFactory().<Subject>getBuilderOrThrow(
+                XMLObjectProviderRegistrySupport.getBuilderFactory().<Subject>ensureBuilder(
                         Subject.DEFAULT_ELEMENT_NAME);
         nameIdBuilder = (SAMLObjectBuilder<NameID>)
-                XMLObjectProviderRegistrySupport.getBuilderFactory().<NameID>getBuilderOrThrow(
+                XMLObjectProviderRegistrySupport.getBuilderFactory().<NameID>ensureBuilder(
                         NameID.DEFAULT_ELEMENT_NAME);
         
         overwriteExisting = true;
diff --git a/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/profile/impl/AddOneTimeUseConditionToAssertions.java b/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/profile/impl/AddOneTimeUseConditionToAssertions.java
index 734cd1aa8..3b8a8a215 100644
--- a/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/profile/impl/AddOneTimeUseConditionToAssertions.java
+++ b/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/profile/impl/AddOneTimeUseConditionToAssertions.java
@@ -97,7 +97,7 @@ public class AddOneTimeUseConditionToAssertions extends AbstractConditionalProfi
     protected void doExecute(@Nonnull final ProfileRequestContext profileRequestContext) {
 
         final SAMLObjectBuilder<OneTimeUse> conditionBuilder = (SAMLObjectBuilder<OneTimeUse>)
-                XMLObjectProviderRegistrySupport.getBuilderFactory().<OneTimeUse>getBuilderOrThrow(
+                XMLObjectProviderRegistrySupport.getBuilderFactory().<OneTimeUse>ensureBuilder(
                         OneTimeUse.DEFAULT_ELEMENT_NAME);
 
         for (final Assertion assertion : response.getAssertions()) {
diff --git a/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/profile/impl/AddProxyRestrictionToAssertions.java b/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/profile/impl/AddProxyRestrictionToAssertions.java
index 2d7a428be..45377b56f 100644
--- a/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/profile/impl/AddProxyRestrictionToAssertions.java
+++ b/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/profile/impl/AddProxyRestrictionToAssertions.java
@@ -174,7 +174,7 @@ public class AddProxyRestrictionToAssertions extends AbstractConditionalProfileA
         
         if (audiences != null && !audiences.isEmpty()) {
             final SAMLObjectBuilder<Audience> audienceBuilder = (SAMLObjectBuilder<Audience>)
-                    XMLObjectProviderRegistrySupport.getBuilderFactory().<Audience>getBuilderOrThrow(
+                    XMLObjectProviderRegistrySupport.getBuilderFactory().<Audience>ensureBuilder(
                             Audience.DEFAULT_ELEMENT_NAME);
             for (final String audienceId : audiences) {
                 log.debug("{} Adding {} as an Audience of the ProxyRestriction", getLogPrefix(), audienceId);
@@ -198,7 +198,7 @@ public class AddProxyRestrictionToAssertions extends AbstractConditionalProfileA
 
         if (conditions.getProxyRestriction() == null) {
             final SAMLObjectBuilder<ProxyRestriction> conditionBuilder = (SAMLObjectBuilder<ProxyRestriction>)
-                    XMLObjectProviderRegistrySupport.getBuilderFactory().<ProxyRestriction>getBuilderOrThrow(
+                    XMLObjectProviderRegistrySupport.getBuilderFactory().<ProxyRestriction>ensureBuilder(
                             ProxyRestriction.DEFAULT_ELEMENT_NAME);
             log.debug("{} Adding new ProxyRestriction", getLogPrefix());
             condition = conditionBuilder.buildObject();
diff --git a/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/profile/impl/AddStatusResponseShell.java b/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/profile/impl/AddStatusResponseShell.java
index a4b3f8741..183264a03 100644
--- a/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/profile/impl/AddStatusResponseShell.java
+++ b/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/profile/impl/AddStatusResponseShell.java
@@ -185,10 +185,10 @@ public class AddStatusResponseShell extends AbstractProfileAction {
 
         final XMLObjectBuilderFactory bf = XMLObjectProviderRegistrySupport.getBuilderFactory();
         final SAMLObjectBuilder<StatusCode> statusCodeBuilder =
-                (SAMLObjectBuilder<StatusCode>) bf.<StatusCode>getBuilderOrThrow(StatusCode.TYPE_NAME);
+                (SAMLObjectBuilder<StatusCode>) bf.<StatusCode>ensureBuilder(StatusCode.TYPE_NAME);
         final SAMLObjectBuilder<Status> statusBuilder =
-                (SAMLObjectBuilder<Status>) bf.<Status>getBuilderOrThrow(Status.TYPE_NAME);
-        final SAMLObjectBuilder<?> responseBuilder = (SAMLObjectBuilder<?>) bf.getBuilderOrThrow(messageType);
+                (SAMLObjectBuilder<Status>) bf.<Status>ensureBuilder(Status.TYPE_NAME);
+        final SAMLObjectBuilder<?> responseBuilder = (SAMLObjectBuilder<?>) bf.ensureBuilder(messageType);
 
         final StatusCode statusCode = statusCodeBuilder.buildObject();
         statusCode.setValue(StatusCode.SUCCESS);
@@ -214,7 +214,7 @@ public class AddStatusResponseShell extends AbstractProfileAction {
         if (issuerId != null) {
             log.debug("{} Setting Issuer to {}", getLogPrefix(), issuerId);
             final SAMLObjectBuilder<Issuer> issuerBuilder =
-                    (SAMLObjectBuilder<Issuer>) bf.<Issuer>getBuilderOrThrow(Issuer.DEFAULT_ELEMENT_NAME);
+                    (SAMLObjectBuilder<Issuer>) bf.<Issuer>ensureBuilder(Issuer.DEFAULT_ELEMENT_NAME);
             final Issuer issuer = issuerBuilder.buildObject();
             issuer.setValue(issuerId);
             response.setIssuer(issuer);
diff --git a/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/profile/impl/AddStatusToResponse.java b/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/profile/impl/AddStatusToResponse.java
index 8ba937d9b..5a7d33e34 100644
--- a/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/profile/impl/AddStatusToResponse.java
+++ b/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/profile/impl/AddStatusToResponse.java
@@ -196,7 +196,7 @@ public class AddStatusToResponse extends AbstractProfileAction {
     protected void doExecute(@Nonnull final ProfileRequestContext profileRequestContext) {
 
         final SAMLObjectBuilder<Status> statusBuilder = (SAMLObjectBuilder<Status>)
-                XMLObjectProviderRegistrySupport.getBuilderFactory().<Status>getBuilderOrThrow(Status.TYPE_NAME);
+                XMLObjectProviderRegistrySupport.getBuilderFactory().<Status>ensureBuilder(Status.TYPE_NAME);
 
         final Status status = statusBuilder.buildObject();
         response.setStatus(status);
@@ -240,7 +240,7 @@ public class AddStatusToResponse extends AbstractProfileAction {
      */
     private void buildStatusCode(@Nonnull final Status status, @Nonnull @NonnullElements final List<String> codes) {
         final SAMLObjectBuilder<StatusCode> statusCodeBuilder = (SAMLObjectBuilder<StatusCode>)
-                XMLObjectProviderRegistrySupport.getBuilderFactory().<StatusCode>getBuilderOrThrow(
+                XMLObjectProviderRegistrySupport.getBuilderFactory().<StatusCode>ensureBuilder(
                         StatusCode.TYPE_NAME);
 
         // Build nested StatusCodes.
@@ -269,7 +269,7 @@ public class AddStatusToResponse extends AbstractProfileAction {
      */
     private void buildStatusMessage(@Nonnull final Status status, @Nonnull @NotEmpty final String message) {
         final SAMLObjectBuilder<StatusMessage> statusMessageBuilder = (SAMLObjectBuilder<StatusMessage>)
-                XMLObjectProviderRegistrySupport.getBuilderFactory().<StatusMessage>getBuilderOrThrow(
+                XMLObjectProviderRegistrySupport.getBuilderFactory().<StatusMessage>ensureBuilder(
                         StatusMessage.DEFAULT_ELEMENT_NAME);
         final StatusMessage sm = statusMessageBuilder.buildObject();
         sm.setValue(message);
diff --git a/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/profile/impl/AddSubjectConfirmationToSubjects.java b/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/profile/impl/AddSubjectConfirmationToSubjects.java
index 5f7892dae..d00e63e1d 100644
--- a/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/profile/impl/AddSubjectConfirmationToSubjects.java
+++ b/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/profile/impl/AddSubjectConfirmationToSubjects.java
@@ -105,13 +105,13 @@ public class AddSubjectConfirmationToSubjects extends AbstractProfileAction {
     /** Constructor. */
     public AddSubjectConfirmationToSubjects() {
         subjectBuilder = (SAMLObjectBuilder<Subject>)
-                XMLObjectProviderRegistrySupport.getBuilderFactory().<Subject>getBuilderOrThrow(
+                XMLObjectProviderRegistrySupport.getBuilderFactory().<Subject>ensureBuilder(
                         Subject.DEFAULT_ELEMENT_NAME);
         confirmationBuilder = (SAMLObjectBuilder<SubjectConfirmation>)
-                XMLObjectProviderRegistrySupport.getBuilderFactory().<SubjectConfirmation>getBuilderOrThrow(
+                XMLObjectProviderRegistrySupport.getBuilderFactory().<SubjectConfirmation>ensureBuilder(
                         SubjectConfirmation.DEFAULT_ELEMENT_NAME);
         confirmationDataBuilder = (SAMLObjectBuilder<SubjectConfirmationData>)
-                XMLObjectProviderRegistrySupport.getBuilderFactory().<SubjectConfirmationData>getBuilderOrThrow(
+                XMLObjectProviderRegistrySupport.getBuilderFactory().<SubjectConfirmationData>ensureBuilder(
                         SubjectConfirmationData.DEFAULT_ELEMENT_NAME);
         overwriteExisting = true;
         responseLookupStrategy = new MessageLookup<>(Response.class).compose(new OutboundMessageContextLookup());
diff --git a/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/profile/impl/CopyNameIDFromRequest.java b/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/profile/impl/CopyNameIDFromRequest.java
index a89ffc424..69bd279ab 100644
--- a/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/profile/impl/CopyNameIDFromRequest.java
+++ b/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/profile/impl/CopyNameIDFromRequest.java
@@ -86,10 +86,10 @@ public class CopyNameIDFromRequest extends AbstractProfileAction {
     /** Constructor. */
     public CopyNameIDFromRequest() {
         subjectBuilder = (SAMLObjectBuilder<Subject>)
-                XMLObjectProviderRegistrySupport.getBuilderFactory().<Subject>getBuilderOrThrow(
+                XMLObjectProviderRegistrySupport.getBuilderFactory().<Subject>ensureBuilder(
                         Subject.DEFAULT_ELEMENT_NAME);
         nameIdBuilder = (SAMLObjectBuilder<NameID>)
-                XMLObjectProviderRegistrySupport.getBuilderFactory().<NameID>getBuilderOrThrow(
+                XMLObjectProviderRegistrySupport.getBuilderFactory().<NameID>ensureBuilder(
                         NameID.DEFAULT_ELEMENT_NAME);
         
         overwriteExisting = true;
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 998c939ad..77b59eca4 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
@@ -49,7 +49,7 @@ public class AddChannelBindingsHeaderHandlerTest extends OpenSAMLInitBaseTestCas
         messageCtx = new MessageContext();
         
         final ChannelBindings cb = ((SAMLObjectBuilder<ChannelBindings>)
-                XMLObjectProviderRegistrySupport.getBuilderFactory().<ChannelBindings>getBuilderOrThrow(
+                XMLObjectProviderRegistrySupport.getBuilderFactory().<ChannelBindings>ensureBuilder(
                         ChannelBindings.DEFAULT_ELEMENT_NAME)).buildObject();
         cb.setType("foo");
         cbc = new ChannelBindingsContext();
@@ -96,7 +96,7 @@ public class AddChannelBindingsHeaderHandlerTest extends OpenSAMLInitBaseTestCas
     @Test public void testSuccess() throws MessageHandlerException, ComponentInitializationException {
         messageCtx.addSubcontext(cbc);
 
-        final Envelope env = XMLObjectProviderRegistrySupport.getBuilderFactory().<Envelope>getBuilderOrThrow(
+        final Envelope env = XMLObjectProviderRegistrySupport.getBuilderFactory().<Envelope>ensureBuilder(
                 Envelope.DEFAULT_ELEMENT_NAME).buildObject(Envelope.DEFAULT_ELEMENT_NAME);
         messageCtx.getOrCreateSubcontext(SOAP11Context.class).setEnvelope(env);
         
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 1971935a7..72dc3de1d 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
@@ -72,7 +72,7 @@ public class DefaultEndpointResolverTest extends XMLObjectBaseTestCase {
     
     @BeforeMethod
     public void setUp() {
-        final AssertionConsumerService ep = (AssertionConsumerService) builderFactory.getBuilderOrThrow(
+        final AssertionConsumerService ep = (AssertionConsumerService) builderFactory.ensureBuilder(
                 AssertionConsumerService.DEFAULT_ELEMENT_NAME).buildObject(
                         AssertionConsumerService.DEFAULT_ELEMENT_NAME);
         ep.setBinding(SAMLConstants.SAML2_POST_BINDING_URI);
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 321d62d40..8d551e3cd 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
@@ -40,7 +40,7 @@ public class SAMLOutboundDestinationHandlerTest extends XMLObjectBaseTestCase {
     @BeforeMethod
     public void setUp() {
         SAMLObjectBuilder<AssertionConsumerService> endpointBuilder =
-                (SAMLObjectBuilder<AssertionConsumerService>) builderFactory.<AssertionConsumerService>getBuilderOrThrow(
+                (SAMLObjectBuilder<AssertionConsumerService>) builderFactory.<AssertionConsumerService>ensureBuilder(
                         AssertionConsumerService.DEFAULT_ELEMENT_NAME);
         AssertionConsumerService samlEndpoint = endpointBuilder.buildObject();
         samlEndpoint.setLocation("http://example.org");
@@ -55,7 +55,7 @@ public class SAMLOutboundDestinationHandlerTest extends XMLObjectBaseTestCase {
     public void testSAML1Response() throws MessageHandlerException {
         SAMLObjectBuilder<org.opensaml.saml.saml1.core.Response> requestBuilder = 
                 (SAMLObjectBuilder<org.opensaml.saml.saml1.core.Response>)
-                builderFactory.<org.opensaml.saml.saml1.core.Response>getBuilderOrThrow(
+                builderFactory.<org.opensaml.saml.saml1.core.Response>ensureBuilder(
                         org.opensaml.saml.saml1.core.Response.DEFAULT_ELEMENT_NAME);
         org.opensaml.saml.saml1.core.Response samlMessage = requestBuilder.buildObject();
         messageContext.setMessage(samlMessage);
@@ -70,7 +70,7 @@ public class SAMLOutboundDestinationHandlerTest extends XMLObjectBaseTestCase {
     @Test
     public void testSAML2Request() throws MessageHandlerException {
         SAMLObjectBuilder<AuthnRequest> requestBuilder =
-                (SAMLObjectBuilder<AuthnRequest>) builderFactory.<AuthnRequest>getBuilderOrThrow(
+                (SAMLObjectBuilder<AuthnRequest>) builderFactory.<AuthnRequest>ensureBuilder(
                         AuthnRequest.DEFAULT_ELEMENT_NAME);
         AuthnRequest samlMessage = requestBuilder.buildObject();
         messageContext.setMessage(samlMessage);
@@ -86,7 +86,7 @@ public class SAMLOutboundDestinationHandlerTest extends XMLObjectBaseTestCase {
     public void testSAML2Response() throws MessageHandlerException {
         SAMLObjectBuilder<org.opensaml.saml.saml2.core.Response> requestBuilder = 
                 (SAMLObjectBuilder<org.opensaml.saml.saml2.core.Response>)
-                builderFactory.<org.opensaml.saml.saml2.core.Response>getBuilderOrThrow(
+                builderFactory.<org.opensaml.saml.saml2.core.Response>ensureBuilder(
                         org.opensaml.saml.saml2.core.Response.DEFAULT_ELEMENT_NAME);
         org.opensaml.saml.saml2.core.Response samlMessage = requestBuilder.buildObject();
         messageContext.setMessage(samlMessage);
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 5d8b4629c..518a4c293 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
@@ -115,7 +115,7 @@ public class AddAudienceRestrictionToAssertionsTest extends OpenSAMLInitBaseTest
      */
     @Test public void testSingleAssertionWithExistingCondition() throws Exception {
         final SAMLObjectBuilder<Conditions> conditionsBuilder = (SAMLObjectBuilder<Conditions>)
-                XMLObjectProviderRegistrySupport.getBuilderFactory().<Conditions>getBuilderOrThrow(
+                XMLObjectProviderRegistrySupport.getBuilderFactory().<Conditions>ensureBuilder(
                         Conditions.DEFAULT_ELEMENT_NAME);
         final Conditions conditions = conditionsBuilder.buildObject();
 
@@ -145,12 +145,12 @@ public class AddAudienceRestrictionToAssertionsTest extends OpenSAMLInitBaseTest
      */
     @Test public void testSingleAssertionWithExistingAudienceCondition() throws Exception {
         final SAMLObjectBuilder<AudienceRestrictionCondition> conditionBuilder = (SAMLObjectBuilder<AudienceRestrictionCondition>)
-                XMLObjectProviderRegistrySupport.getBuilderFactory().<AudienceRestrictionCondition>getBuilderOrThrow(
+                XMLObjectProviderRegistrySupport.getBuilderFactory().<AudienceRestrictionCondition>ensureBuilder(
                         AudienceRestrictionCondition.DEFAULT_ELEMENT_NAME);
         final AudienceRestrictionCondition condition = conditionBuilder.buildObject();
 
         final SAMLObjectBuilder<Conditions> conditionsBuilder = (SAMLObjectBuilder<Conditions>)
-                XMLObjectProviderRegistrySupport.getBuilderFactory().<Conditions>getBuilderOrThrow(
+                XMLObjectProviderRegistrySupport.getBuilderFactory().<Conditions>ensureBuilder(
                         Conditions.DEFAULT_ELEMENT_NAME);
         final Conditions conditions = conditionsBuilder.buildObject();
         conditions.getAudienceRestrictionConditions().add(condition);
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 2133fc710..2575e4ad5 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
@@ -95,7 +95,7 @@ public class AddNotBeforeConditionToAssertionsTest  extends OpenSAMLInitBaseTest
     @Test
     public void testSingleAssertionWithExistingConditions() {
         SAMLObjectBuilder<Conditions> conditionsBuilder = (SAMLObjectBuilder<Conditions>)
-                XMLObjectProviderRegistrySupport.getBuilderFactory().<Conditions>getBuilderOrThrow(
+                XMLObjectProviderRegistrySupport.getBuilderFactory().<Conditions>ensureBuilder(
                         Conditions.DEFAULT_ELEMENT_NAME);
         final Conditions conditions = conditionsBuilder.buildObject();
 
diff --git a/opensaml-saml-impl/src/test/java/org/opensaml/saml/common/profile/impl/AddNotOnOrAfterConditionToAssertionsTest.java b/opensaml-saml-impl/src/test/java/org/opensaml/saml/common/profile/impl/AddNotOnOrAfterConditionToAssertionsTest.java
index 8f927c51c..6b8c09358 100644
--- a/opensaml-saml-impl/src/test/java/org/opensaml/saml/common/profile/impl/AddNotOnOrAfterConditionToAssertionsTest.java
+++ b/opensaml-saml-impl/src/test/java/org/opensaml/saml/common/profile/impl/AddNotOnOrAfterConditionToAssertionsTest.java
@@ -104,7 +104,7 @@ public class AddNotOnOrAfterConditionToAssertionsTest  extends OpenSAMLInitBaseT
     @Test
     public void testSingleAssertionWithExistingConditions() throws ComponentInitializationException {
         SAMLObjectBuilder<Conditions> conditionsBuilder = (SAMLObjectBuilder<Conditions>)
-                XMLObjectProviderRegistrySupport.getBuilderFactory().<Conditions>getBuilderOrThrow(
+                XMLObjectProviderRegistrySupport.getBuilderFactory().<Conditions>ensureBuilder(
                         Conditions.DEFAULT_ELEMENT_NAME);
         final Conditions conditions = conditionsBuilder.buildObject();
 
diff --git a/opensaml-saml-impl/src/test/java/org/opensaml/saml/common/profile/impl/VerifyChannelBindingsTest.java b/opensaml-saml-impl/src/test/java/org/opensaml/saml/common/profile/impl/VerifyChannelBindingsTest.java
index d5d1a9b69..71a3680a0 100644
--- a/opensaml-saml-impl/src/test/java/org/opensaml/saml/common/profile/impl/VerifyChannelBindingsTest.java
+++ b/opensaml-saml-impl/src/test/java/org/opensaml/saml/common/profile/impl/VerifyChannelBindingsTest.java
@@ -57,7 +57,7 @@ public class VerifyChannelBindingsTest extends OpenSAMLInitBaseTestCase {
     
     @Test public void testMatch() throws MessageHandlerException {
         
-        final ChannelBindings cb = XMLObjectProviderRegistrySupport.getBuilderFactory().<ChannelBindings>getBuilderOrThrow(
+        final ChannelBindings cb = XMLObjectProviderRegistrySupport.getBuilderFactory().<ChannelBindings>ensureBuilder(
                 ChannelBindings.DEFAULT_ELEMENT_NAME).buildObject(ChannelBindings.DEFAULT_ELEMENT_NAME);
         cb.setType("foo");
         cb.setValue("foo");
@@ -79,12 +79,12 @@ public class VerifyChannelBindingsTest extends OpenSAMLInitBaseTestCase {
 
     @Test public void testNoMatch() throws MessageHandlerException {
         
-        final ChannelBindings cb = XMLObjectProviderRegistrySupport.getBuilderFactory().<ChannelBindings>getBuilderOrThrow(
+        final ChannelBindings cb = XMLObjectProviderRegistrySupport.getBuilderFactory().<ChannelBindings>ensureBuilder(
                 ChannelBindings.DEFAULT_ELEMENT_NAME).buildObject(ChannelBindings.DEFAULT_ELEMENT_NAME);
         cb.setType("foo");
         cb.setValue("foo");
 
-        final ChannelBindings cb2 = XMLObjectProviderRegistrySupport.getBuilderFactory().<ChannelBindings>getBuilderOrThrow(
+        final ChannelBindings cb2 = XMLObjectProviderRegistrySupport.getBuilderFactory().<ChannelBindings>ensureBuilder(
                 ChannelBindings.DEFAULT_ELEMENT_NAME).buildObject(ChannelBindings.DEFAULT_ELEMENT_NAME);
         cb.setType("bar");
         cb.setValue("foo");
@@ -100,7 +100,7 @@ public class VerifyChannelBindingsTest extends OpenSAMLInitBaseTestCase {
     
     @Test public void testNoMatch2() throws MessageHandlerException {
         
-        final ChannelBindings cb = XMLObjectProviderRegistrySupport.getBuilderFactory().<ChannelBindings>getBuilderOrThrow(
+        final ChannelBindings cb = XMLObjectProviderRegistrySupport.getBuilderFactory().<ChannelBindings>ensureBuilder(
                 ChannelBindings.DEFAULT_ELEMENT_NAME).buildObject(ChannelBindings.DEFAULT_ELEMENT_NAME);
         cb.setType("foo");
         cb.setValue("foo");
diff --git a/opensaml-saml-impl/src/test/java/org/opensaml/saml/common/testing/RoundTripTest.java b/opensaml-saml-impl/src/test/java/org/opensaml/saml/common/testing/RoundTripTest.java
index ffd36d942..de70781e4 100644
--- a/opensaml-saml-impl/src/test/java/org/opensaml/saml/common/testing/RoundTripTest.java
+++ b/opensaml-saml-impl/src/test/java/org/opensaml/saml/common/testing/RoundTripTest.java
@@ -52,12 +52,12 @@ public class RoundTripTest extends XMLObjectBaseTestCase {
     @BeforeMethod
     protected void setUp() throws Exception {
         SAMLObjectBuilder<Organization> orgBuilder = (SAMLObjectBuilder<Organization>)
-                XMLObjectProviderRegistrySupport.getBuilderFactory().<Organization>getBuilderOrThrow(
+                XMLObjectProviderRegistrySupport.getBuilderFactory().<Organization>ensureBuilder(
                         Organization.DEFAULT_ELEMENT_NAME);
         organization = orgBuilder.buildObject();            
 
         SAMLObjectBuilder<OrganizationName> orgNameBuilder = (SAMLObjectBuilder<OrganizationName>)
-                XMLObjectProviderRegistrySupport.getBuilderFactory().<OrganizationName>getBuilderOrThrow(
+                XMLObjectProviderRegistrySupport.getBuilderFactory().<OrganizationName>ensureBuilder(
                         OrganizationName.DEFAULT_ELEMENT_NAME);
         OrganizationName newOrgName = orgNameBuilder.buildObject();
         newOrgName.setValue("OrgFullName");
@@ -65,7 +65,7 @@ public class RoundTripTest extends XMLObjectBaseTestCase {
         organization.getOrganizationNames().add(newOrgName);
 
         SAMLObjectBuilder<OrganizationDisplayName> orgDisplayNameBuilder = (SAMLObjectBuilder<OrganizationDisplayName>)
-                XMLObjectProviderRegistrySupport.getBuilderFactory().<OrganizationDisplayName>getBuilderOrThrow(
+                XMLObjectProviderRegistrySupport.getBuilderFactory().<OrganizationDisplayName>ensureBuilder(
                         OrganizationDisplayName.DEFAULT_ELEMENT_NAME);
         OrganizationDisplayName newOrgDisplayName = orgDisplayNameBuilder.buildObject();
         newOrgDisplayName.setValue("OrgDisplayName");
@@ -73,7 +73,7 @@ public class RoundTripTest extends XMLObjectBaseTestCase {
         organization.getDisplayNames().add(newOrgDisplayName);
 
         SAMLObjectBuilder<OrganizationURL> orgURLBuilder = (SAMLObjectBuilder<OrganizationURL>)
-                XMLObjectProviderRegistrySupport.getBuilderFactory().<OrganizationURL>getBuilderOrThrow(
+                XMLObjectProviderRegistrySupport.getBuilderFactory().<OrganizationURL>ensureBuilder(
                         OrganizationURL.DEFAULT_ELEMENT_NAME);
         OrganizationURL newOrgURL = orgURLBuilder.buildObject();    
         newOrgURL.setURI("http://org.url.edu");
diff --git a/opensaml-saml-impl/src/test/java/org/opensaml/saml/ext/saml1md/impl/SourceIDTest.java b/opensaml-saml-impl/src/test/java/org/opensaml/saml/ext/saml1md/impl/SourceIDTest.java
index 2554c7f84..514c097b5 100644
--- a/opensaml-saml-impl/src/test/java/org/opensaml/saml/ext/saml1md/impl/SourceIDTest.java
+++ b/opensaml-saml-impl/src/test/java/org/opensaml/saml/ext/saml1md/impl/SourceIDTest.java
@@ -46,7 +46,7 @@ public class SourceIDTest extends XMLObjectProviderBaseTestCase {
     @Test
     public void testSingleElementMarshall() {
         SAMLObjectBuilder<SourceID> builder = (SAMLObjectBuilder<SourceID>)
-                builderFactory.<SourceID>getBuilderOrThrow(SourceID.DEFAULT_ELEMENT_NAME);
+                builderFactory.<SourceID>ensureBuilder(SourceID.DEFAULT_ELEMENT_NAME);
 
         SourceID sourceID = builder.buildObject();
         sourceID.setValue(expectedValue);
diff --git a/opensaml-saml-impl/src/test/java/org/opensaml/saml/ext/saml2delrestrict/impl/DelegationRestrictionTypeTest.java b/opensaml-saml-impl/src/test/java/org/opensaml/saml/ext/saml2delrestrict/impl/DelegationRestrictionTypeTest.java
index af1fb68fd..108ffd681 100644
--- a/opensaml-saml-impl/src/test/java/org/opensaml/saml/ext/saml2delrestrict/impl/DelegationRestrictionTypeTest.java
+++ b/opensaml-saml-impl/src/test/java/org/opensaml/saml/ext/saml2delrestrict/impl/DelegationRestrictionTypeTest.java
@@ -67,7 +67,7 @@ public class DelegationRestrictionTypeTest extends XMLObjectProviderBaseTestCase
     @Test
     public void testSingleElementMarshall() {
         SAMLObjectBuilder<DelegationRestrictionType> builder = (SAMLObjectBuilder<DelegationRestrictionType>)
-                XMLObjectProviderRegistrySupport.getBuilderFactory().<DelegationRestrictionType>getBuilderOrThrow(
+                XMLObjectProviderRegistrySupport.getBuilderFactory().<DelegationRestrictionType>ensureBuilder(
                         DelegationRestrictionType.TYPE_NAME);
         
         DelegationRestrictionType drt = builder.buildObject();
@@ -80,7 +80,7 @@ public class DelegationRestrictionTypeTest extends XMLObjectProviderBaseTestCase
     @Test
     public void testChildElementsMarshall() {
         SAMLObjectBuilder<DelegationRestrictionType> builder = (SAMLObjectBuilder<DelegationRestrictionType>)
-                XMLObjectProviderRegistrySupport.getBuilderFactory().<DelegationRestrictionType>getBuilderOrThrow(
+                XMLObjectProviderRegistrySupport.getBuilderFactory().<DelegationRestrictionType>ensureBuilder(
                         DelegationRestrictionType.TYPE_NAME);
         
         DelegationRestrictionType drt = builder.buildObject();
diff --git a/opensaml-saml-impl/src/test/java/org/opensaml/saml/metadata/resolver/filter/impl/EntityAttributesFilterTest.java b/opensaml-saml-impl/src/test/java/org/opensaml/saml/metadata/resolver/filter/impl/EntityAttributesFilterTest.java
index aa2f6e38c..c50f41467 100644
--- a/opensaml-saml-impl/src/test/java/org/opensaml/saml/metadata/resolver/filter/impl/EntityAttributesFilterTest.java
+++ b/opensaml-saml-impl/src/test/java/org/opensaml/saml/metadata/resolver/filter/impl/EntityAttributesFilterTest.java
@@ -60,9 +60,9 @@ public class EntityAttributesFilterTest extends XMLObjectBaseTestCase implements
     protected void setUp() throws Exception {
 
         tagBuilder = (SAMLObjectBuilder<Attribute>)
-                XMLObjectProviderRegistrySupport.getBuilderFactory().<Attribute>getBuilderOrThrow(
+                XMLObjectProviderRegistrySupport.getBuilderFactory().<Attribute>ensureBuilder(
                         Attribute.DEFAULT_ELEMENT_NAME);
-        valueBuilder = XMLObjectProviderRegistrySupport.getBuilderFactory().<XSString>getBuilderOrThrow(
+        valueBuilder = XMLObjectProviderRegistrySupport.getBuilderFactory().<XSString>ensureBuilder(
                 XSString.TYPE_NAME);
 
         URL mdURL = FilesystemMetadataResolverTest.class
diff --git a/opensaml-saml-impl/src/test/java/org/opensaml/saml/metadata/resolver/filter/impl/RequiredValidUntilTest.java b/opensaml-saml-impl/src/test/java/org/opensaml/saml/metadata/resolver/filter/impl/RequiredValidUntilTest.java
index c4c4b2cc4..9404ed7ef 100644
--- a/opensaml-saml-impl/src/test/java/org/opensaml/saml/metadata/resolver/filter/impl/RequiredValidUntilTest.java
+++ b/opensaml-saml-impl/src/test/java/org/opensaml/saml/metadata/resolver/filter/impl/RequiredValidUntilTest.java
@@ -85,7 +85,7 @@ public class RequiredValidUntilTest extends XMLObjectBaseTestCase {
     @Test
     public void testRequiredValidUntilAlreadyPast() throws Exception {
         SAMLObjectBuilder<EntitiesDescriptor> entitiesDescriptorBuilder = (SAMLObjectBuilder<EntitiesDescriptor>)
-                XMLObjectProviderRegistrySupport.getBuilderFactory().<EntitiesDescriptor>getBuilderOrThrow(
+                XMLObjectProviderRegistrySupport.getBuilderFactory().<EntitiesDescriptor>ensureBuilder(
                         EntitiesDescriptor.TYPE_NAME);
         EntitiesDescriptor descriptor = entitiesDescriptorBuilder.buildObject();
         descriptor.setValidUntil(Instant.now().minusMillis(10000));
diff --git a/opensaml-saml-impl/src/test/java/org/opensaml/saml/metadata/resolver/filter/impl/ScriptedFunctionTest.java b/opensaml-saml-impl/src/test/java/org/opensaml/saml/metadata/resolver/filter/impl/ScriptedFunctionTest.java
index 24ffaf5cc..f27f1332d 100644
--- a/opensaml-saml-impl/src/test/java/org/opensaml/saml/metadata/resolver/filter/impl/ScriptedFunctionTest.java
+++ b/opensaml-saml-impl/src/test/java/org/opensaml/saml/metadata/resolver/filter/impl/ScriptedFunctionTest.java
@@ -46,7 +46,7 @@ public class ScriptedFunctionTest extends XMLObjectBaseTestCase {
     
     private XMLObject makeObject() {
         final SAMLObjectBuilder<EntityDescriptor> builder = (SAMLObjectBuilder<EntityDescriptor>)
-                XMLObjectProviderRegistrySupport.getBuilderFactory().<EntityDescriptor>getBuilderOrThrow(
+                XMLObjectProviderRegistrySupport.getBuilderFactory().<EntityDescriptor>ensureBuilder(
                         EntityDescriptor.DEFAULT_ELEMENT_NAME);
         return builder.buildObject();
     }
diff --git a/opensaml-saml-impl/src/test/java/org/opensaml/saml/saml1/core/impl/AttributeTest.java b/opensaml-saml-impl/src/test/java/org/opensaml/saml/saml1/core/impl/AttributeTest.java
index b4ba5755e..f172fb3ef 100644
--- a/opensaml-saml-impl/src/test/java/org/opensaml/saml/saml1/core/impl/AttributeTest.java
+++ b/opensaml-saml-impl/src/test/java/org/opensaml/saml/saml1/core/impl/AttributeTest.java
@@ -108,7 +108,7 @@ public class AttributeTest extends XMLObjectProviderBaseTestCase {
     public void testChildElementsMarshall(){
         Attribute attribute = (Attribute) buildXMLObject(qname);
 
-        final XMLObjectBuilder<XSString> attributeValueBuilder = builderFactory.getBuilderOrThrow(XSString.TYPE_NAME);
+        final XMLObjectBuilder<XSString> attributeValueBuilder = builderFactory.ensureBuilder(XSString.TYPE_NAME);
         
         attribute.getAttributeValues().add(attributeValueBuilder.buildObject(AttributeValue.DEFAULT_ELEMENT_NAME, XSString.TYPE_NAME)); 
         attribute.getAttributeValues().add(attributeValueBuilder.buildObject(AttributeValue.DEFAULT_ELEMENT_NAME, XSString.TYPE_NAME)); 
diff --git a/opensaml-saml-impl/src/test/java/org/opensaml/saml/saml1/core/impl/SubjectConfirmationTest.java b/opensaml-saml-impl/src/test/java/org/opensaml/saml/saml1/core/impl/SubjectConfirmationTest.java
index 40e2205c1..6bf18d8b4 100644
--- a/opensaml-saml-impl/src/test/java/org/opensaml/saml/saml1/core/impl/SubjectConfirmationTest.java
+++ b/opensaml-saml-impl/src/test/java/org/opensaml/saml/saml1/core/impl/SubjectConfirmationTest.java
@@ -114,7 +114,7 @@ public class SubjectConfirmationTest extends XMLObjectProviderBaseTestCase {
         subjectConfirmation.getConfirmationMethods().add((ConfirmationMethod) buildXMLObject(oqname));
         subjectConfirmation.getConfirmationMethods().add((ConfirmationMethod) buildXMLObject(oqname));
         
-        final XMLObjectBuilder<XSAny> proxyBuilder = builderFactory.getBuilderOrThrow(XSAny.TYPE_NAME);
+        final XMLObjectBuilder<XSAny> proxyBuilder = builderFactory.ensureBuilder(XSAny.TYPE_NAME);
         oqname = new QName(SAMLConstants.SAML1_NS, SubjectConfirmationData.DEFAULT_ELEMENT_LOCAL_NAME, SAMLConstants.SAML1_PREFIX);
         subjectConfirmation.setSubjectConfirmationData(proxyBuilder.buildObject(oqname));
 
diff --git a/opensaml-saml-impl/src/test/java/org/opensaml/saml/saml1/profile/impl/AddDoNotCacheConditionToAssertionsTest.java b/opensaml-saml-impl/src/test/java/org/opensaml/saml/saml1/profile/impl/AddDoNotCacheConditionToAssertionsTest.java
index b94bf275c..cad773e11 100644
--- a/opensaml-saml-impl/src/test/java/org/opensaml/saml/saml1/profile/impl/AddDoNotCacheConditionToAssertionsTest.java
+++ b/opensaml-saml-impl/src/test/java/org/opensaml/saml/saml1/profile/impl/AddDoNotCacheConditionToAssertionsTest.java
@@ -101,7 +101,7 @@ public class AddDoNotCacheConditionToAssertionsTest extends OpenSAMLInitBaseTest
      */
     @Test public void testSingleAssertionWithExistingCondition() throws Exception {
         final SAMLObjectBuilder<Conditions> conditionsBuilder = (SAMLObjectBuilder<Conditions>)
-                XMLObjectProviderRegistrySupport.getBuilderFactory().<Conditions>getBuilderOrThrow(
+                XMLObjectProviderRegistrySupport.getBuilderFactory().<Conditions>ensureBuilder(
                         Conditions.DEFAULT_ELEMENT_NAME);
         final Conditions conditions = conditionsBuilder.buildObject();
 
@@ -131,12 +131,12 @@ public class AddDoNotCacheConditionToAssertionsTest extends OpenSAMLInitBaseTest
      */
     @Test public void testSingleAssertionWithExistingDoNotCacheCondition() throws Exception {
         final SAMLObjectBuilder<DoNotCacheCondition> dncConditionBuilder = (SAMLObjectBuilder<DoNotCacheCondition>)
-                XMLObjectProviderRegistrySupport.getBuilderFactory().<DoNotCacheCondition>getBuilderOrThrow(
+                XMLObjectProviderRegistrySupport.getBuilderFactory().<DoNotCacheCondition>ensureBuilder(
                         DoNotCacheCondition.DEFAULT_ELEMENT_NAME);
         final DoNotCacheCondition dncCondition = dncConditionBuilder.buildObject();
 
         final SAMLObjectBuilder<Conditions> conditionsBuilder = (SAMLObjectBuilder<Conditions>)
-                XMLObjectProviderRegistrySupport.getBuilderFactory().<Conditions>getBuilderOrThrow(
+                XMLObjectProviderRegistrySupport.getBuilderFactory().<Conditions>ensureBuilder(
                         Conditions.DEFAULT_ELEMENT_NAME);
         final Conditions conditions = conditionsBuilder.buildObject();
         conditions.getDoNotCacheConditions().add(dncCondition);
diff --git a/opensaml-saml-impl/src/test/java/org/opensaml/saml/saml2/binding/encoding/impl/HTTPPostEncoderTest.java b/opensaml-saml-impl/src/test/java/org/opensaml/saml/saml2/binding/encoding/impl/HTTPPostEncoderTest.java
index b1c2caf6c..7ca844110 100644
--- a/opensaml-saml-impl/src/test/java/org/opensaml/saml/saml2/binding/encoding/impl/HTTPPostEncoderTest.java
+++ b/opensaml-saml-impl/src/test/java/org/opensaml/saml/saml2/binding/encoding/impl/HTTPPostEncoderTest.java
@@ -77,18 +77,18 @@ public class HTTPPostEncoderTest extends XMLObjectBaseTestCase {
     @Test
     public void testResponseEncoding() throws Exception {
         SAMLObjectBuilder<StatusCode> statusCodeBuilder =
-                (SAMLObjectBuilder<StatusCode>) builderFactory.<StatusCode>getBuilderOrThrow(
+                (SAMLObjectBuilder<StatusCode>) builderFactory.<StatusCode>ensureBuilder(
                         StatusCode.DEFAULT_ELEMENT_NAME);
         StatusCode statusCode = statusCodeBuilder.buildObject();
         statusCode.setValue(StatusCode.SUCCESS);
 
         SAMLObjectBuilder<Status> statusBuilder =
-                (SAMLObjectBuilder<Status>) builderFactory.<Status>getBuilderOrThrow(Status.DEFAULT_ELEMENT_NAME);
+                (SAMLObjectBuilder<Status>) builderFactory.<Status>ensureBuilder(Status.DEFAULT_ELEMENT_NAME);
         Status responseStatus = statusBuilder.buildObject();
         responseStatus.setStatusCode(statusCode);
 
         SAMLObjectBuilder<Response> responseBuilder =
-                (SAMLObjectBuilder<Response>) builderFactory.<Response>getBuilderOrThrow(Response.DEFAULT_ELEMENT_NAME);
+                (SAMLObjectBuilder<Response>) builderFactory.<Response>ensureBuilder(Response.DEFAULT_ELEMENT_NAME);
         Response samlMessage = responseBuilder.buildObject();
         samlMessage.setID("foo");
         samlMessage.setVersion(SAMLVersion.VERSION_20);
@@ -96,7 +96,7 @@ public class HTTPPostEncoderTest extends XMLObjectBaseTestCase {
         samlMessage.setStatus(responseStatus);
 
         SAMLObjectBuilder<AssertionConsumerService> endpointBuilder =
-                (SAMLObjectBuilder<AssertionConsumerService>) builderFactory.<AssertionConsumerService>getBuilderOrThrow(
+                (SAMLObjectBuilder<AssertionConsumerService>) builderFactory.<AssertionConsumerService>ensureBuilder(
                         AssertionConsumerService.DEFAULT_ELEMENT_NAME);
         AssertionConsumerService samlEndpoint = endpointBuilder.buildObject();
         samlEndpoint.setLocation("http://example.org");
diff --git a/opensaml-saml-impl/src/test/java/org/opensaml/saml/saml2/binding/encoding/impl/HTTPPostSimpleSignEncoderTest.java b/opensaml-saml-impl/src/test/java/org/opensaml/saml/saml2/binding/encoding/impl/HTTPPostSimpleSignEncoderTest.java
index 766c6f691..0e7f9f115 100644
--- a/opensaml-saml-impl/src/test/java/org/opensaml/saml/saml2/binding/encoding/impl/HTTPPostSimpleSignEncoderTest.java
+++ b/opensaml-saml-impl/src/test/java/org/opensaml/saml/saml2/binding/encoding/impl/HTTPPostSimpleSignEncoderTest.java
@@ -87,18 +87,18 @@ public class HTTPPostSimpleSignEncoderTest extends XMLObjectBaseTestCase {
     @Test
     public void testResponseEncoding() throws Exception {
         SAMLObjectBuilder<StatusCode> statusCodeBuilder =
-                (SAMLObjectBuilder<StatusCode>) builderFactory.<StatusCode>getBuilderOrThrow(
+                (SAMLObjectBuilder<StatusCode>) builderFactory.<StatusCode>ensureBuilder(
                         StatusCode.DEFAULT_ELEMENT_NAME);
         StatusCode statusCode = statusCodeBuilder.buildObject();
         statusCode.setValue(StatusCode.SUCCESS);
 
         SAMLObjectBuilder<Status> statusBuilder =
-                (SAMLObjectBuilder<Status>) builderFactory.<Status>getBuilderOrThrow(Status.DEFAULT_ELEMENT_NAME);
+                (SAMLObjectBuilder<Status>) builderFactory.<Status>ensureBuilder(Status.DEFAULT_ELEMENT_NAME);
         Status responseStatus = statusBuilder.buildObject();
         responseStatus.setStatusCode(statusCode);
 
         SAMLObjectBuilder<Response> responseBuilder =
-                (SAMLObjectBuilder<Response>) builderFactory.<Response>getBuilderOrThrow(Response.DEFAULT_ELEMENT_NAME);
+                (SAMLObjectBuilder<Response>) builderFactory.<Response>ensureBuilder(Response.DEFAULT_ELEMENT_NAME);
         Response samlMessage = responseBuilder.buildObject();
         samlMessage.setID("foo");
         samlMessage.setVersion(SAMLVersion.VERSION_20);
@@ -106,7 +106,7 @@ public class HTTPPostSimpleSignEncoderTest extends XMLObjectBaseTestCase {
         samlMessage.setStatus(responseStatus);
 
         SAMLObjectBuilder<AssertionConsumerService> endpointBuilder =
-                (SAMLObjectBuilder<AssertionConsumerService>) builderFactory.<AssertionConsumerService>getBuilderOrThrow(
+                (SAMLObjectBuilder<AssertionConsumerService>) builderFactory.<AssertionConsumerService>ensureBuilder(
                         AssertionConsumerService.DEFAULT_ELEMENT_NAME);
         Endpoint samlEndpoint = endpointBuilder.buildObject();
         samlEndpoint.setLocation("http://example.org");
diff --git a/opensaml-saml-impl/src/test/java/org/opensaml/saml/saml2/binding/impl/AddECPResponseHeaderHandlerTest.java b/opensaml-saml-impl/src/test/java/org/opensaml/saml/saml2/binding/impl/AddECPResponseHeaderHandlerTest.java
index 649855abb..45fb4c8af 100644
--- a/opensaml-saml-impl/src/test/java/org/opensaml/saml/saml2/binding/impl/AddECPResponseHeaderHandlerTest.java
+++ b/opensaml-saml-impl/src/test/java/org/opensaml/saml/saml2/binding/impl/AddECPResponseHeaderHandlerTest.java
@@ -73,7 +73,7 @@ public class AddECPResponseHeaderHandlerTest extends OpenSAMLInitBaseTestCase {
         final MessageContext messageCtx = new MessageContext();
         messageCtx.setMessage(SAML2ActionTestingSupport.buildResponse());
         
-        final Endpoint ep = XMLObjectProviderRegistrySupport.getBuilderFactory().<AssertionConsumerService>getBuilderOrThrow(
+        final Endpoint ep = XMLObjectProviderRegistrySupport.getBuilderFactory().<AssertionConsumerService>ensureBuilder(
                 AssertionConsumerService.DEFAULT_ELEMENT_NAME).buildObject(AssertionConsumerService.DEFAULT_ELEMENT_NAME);
         ep.setLocation("foo");
         messageCtx.getSubcontext(
@@ -93,14 +93,14 @@ public class AddECPResponseHeaderHandlerTest extends OpenSAMLInitBaseTestCase {
      * @throws ComponentInitializationException ...
      */
     @Test public void testSuccess() throws MessageHandlerException, ComponentInitializationException {
-        final Envelope env = XMLObjectProviderRegistrySupport.getBuilderFactory().<Envelope>getBuilderOrThrow(
+        final Envelope env = XMLObjectProviderRegistrySupport.getBuilderFactory().<Envelope>ensureBuilder(
                 Envelope.DEFAULT_ELEMENT_NAME).buildObject(Envelope.DEFAULT_ELEMENT_NAME);
 
         final MessageContext messageCtx = new MessageContext();
         messageCtx.setMessage(SAML2ActionTestingSupport.buildResponse());
         messageCtx.getSubcontext(SOAP11Context.class, true).setEnvelope(env);
         
-        final Endpoint ep = XMLObjectProviderRegistrySupport.getBuilderFactory().<AssertionConsumerService>getBuilderOrThrow(
+        final Endpoint ep = XMLObjectProviderRegistrySupport.getBuilderFactory().<AssertionConsumerService>ensureBuilder(
                 AssertionConsumerService.DEFAULT_ELEMENT_NAME).buildObject(AssertionConsumerService.DEFAULT_ELEMENT_NAME);
         ep.setLocation("foo");
         messageCtx.getSubcontext(
diff --git a/opensaml-saml-impl/src/test/java/org/opensaml/saml/saml2/binding/impl/AddGeneratedKeyHeaderHandlerTest.java b/opensaml-saml-impl/src/test/java/org/opensaml/saml/saml2/binding/impl/AddGeneratedKeyHeaderHandlerTest.java
index 334feb050..9d045536c 100644
--- a/opensaml-saml-impl/src/test/java/org/opensaml/saml/saml2/binding/impl/AddGeneratedKeyHeaderHandlerTest.java
+++ b/opensaml-saml-impl/src/test/java/org/opensaml/saml/saml2/binding/impl/AddGeneratedKeyHeaderHandlerTest.java
@@ -102,7 +102,7 @@ public class AddGeneratedKeyHeaderHandlerTest extends OpenSAMLInitBaseTestCase {
         SecureRandom.getInstance("SHA1prng").nextBytes(key);
         messageCtx.getSubcontext(ECPContext.class, true).setSessionKey(key);
 
-        final Envelope env = XMLObjectProviderRegistrySupport.getBuilderFactory().<Envelope>getBuilderOrThrow(
+        final Envelope env = XMLObjectProviderRegistrySupport.getBuilderFactory().<Envelope>ensureBuilder(
                 Envelope.DEFAULT_ELEMENT_NAME).buildObject(Envelope.DEFAULT_ELEMENT_NAME);
         messageCtx.getSubcontext(SOAP11Context.class, true).setEnvelope(env);
         
diff --git a/opensaml-saml-impl/src/test/java/org/opensaml/saml/saml2/binding/impl/AddRelayStateHeaderHandlerTest.java b/opensaml-saml-impl/src/test/java/org/opensaml/saml/saml2/binding/impl/AddRelayStateHeaderHandlerTest.java
index 69f317731..06bb30103 100644
--- a/opensaml-saml-impl/src/test/java/org/opensaml/saml/saml2/binding/impl/AddRelayStateHeaderHandlerTest.java
+++ b/opensaml-saml-impl/src/test/java/org/opensaml/saml/saml2/binding/impl/AddRelayStateHeaderHandlerTest.java
@@ -83,7 +83,7 @@ public class AddRelayStateHeaderHandlerTest extends OpenSAMLInitBaseTestCase {
      */
     @Test public void testSuccess() throws MessageHandlerException {
 
-        final Envelope env = XMLObjectProviderRegistrySupport.getBuilderFactory().<Envelope>getBuilderOrThrow(
+        final Envelope env = XMLObjectProviderRegistrySupport.getBuilderFactory().<Envelope>ensureBuilder(
                 Envelope.DEFAULT_ELEMENT_NAME).buildObject(Envelope.DEFAULT_ELEMENT_NAME);
         messageCtx.getSubcontext(SOAP11Context.class, true).setEnvelope(env);
         
diff --git a/opensaml-saml-impl/src/test/java/org/opensaml/saml/saml2/binding/impl/AddRequestAuthenticatedHeaderHandlerTest.java b/opensaml-saml-impl/src/test/java/org/opensaml/saml/saml2/binding/impl/AddRequestAuthenticatedHeaderHandlerTest.java
index 18e9ab4d3..8855e2941 100644
--- a/opensaml-saml-impl/src/test/java/org/opensaml/saml/saml2/binding/impl/AddRequestAuthenticatedHeaderHandlerTest.java
+++ b/opensaml-saml-impl/src/test/java/org/opensaml/saml/saml2/binding/impl/AddRequestAuthenticatedHeaderHandlerTest.java
@@ -90,7 +90,7 @@ public class AddRequestAuthenticatedHeaderHandlerTest extends OpenSAMLInitBaseTe
         final MessageContext messageCtx = new MessageContext();
         messageCtx.getSubcontext(ECPContext.class, true).setRequestAuthenticated(true);
 
-        final Envelope env = XMLObjectProviderRegistrySupport.getBuilderFactory().<Envelope>getBuilderOrThrow(
+        final Envelope env = XMLObjectProviderRegistrySupport.getBuilderFactory().<Envelope>ensureBuilder(
                 Envelope.DEFAULT_ELEMENT_NAME).buildObject(Envelope.DEFAULT_ELEMENT_NAME);
         messageCtx.getSubcontext(SOAP11Context.class, true).setEnvelope(env);
         
diff --git a/opensaml-saml-impl/src/test/java/org/opensaml/saml/saml2/binding/impl/ExtractProxiedRequestersHandlerTest.java b/opensaml-saml-impl/src/test/java/org/opensaml/saml/saml2/binding/impl/ExtractProxiedRequestersHandlerTest.java
index a34a2e7b2..d55a09822 100644
--- a/opensaml-saml-impl/src/test/java/org/opensaml/saml/saml2/binding/impl/ExtractProxiedRequestersHandlerTest.java
+++ b/opensaml-saml-impl/src/test/java/org/opensaml/saml/saml2/binding/impl/ExtractProxiedRequestersHandlerTest.java
@@ -44,10 +44,10 @@ public class ExtractProxiedRequestersHandlerTest extends OpenSAMLInitBaseTestCas
     
     @BeforeClass public void setUp() {
         scopingBuilder = (SAMLObjectBuilder<Scoping>)
-                XMLObjectProviderRegistrySupport.getBuilderFactory().<Scoping>getBuilderOrThrow(
+                XMLObjectProviderRegistrySupport.getBuilderFactory().<Scoping>ensureBuilder(
                         Scoping.DEFAULT_ELEMENT_NAME);
         requesterIDBuilder = (SAMLObjectBuilder<RequesterID>)
-                XMLObjectProviderRegistrySupport.getBuilderFactory().<RequesterID>getBuilderOrThrow(
+                XMLObjectProviderRegistrySupport.getBuilderFactory().<RequesterID>ensureBuilder(
                         RequesterID.DEFAULT_ELEMENT_NAME);
     }
     
diff --git a/opensaml-saml-impl/src/test/java/org/opensaml/saml/saml2/binding/security/impl/ExtractChannelBindingsExtensionsHandlerTest.java b/opensaml-saml-impl/src/test/java/org/opensaml/saml/saml2/binding/security/impl/ExtractChannelBindingsExtensionsHandlerTest.java
index 5293a7484..af25cc757 100644
--- a/opensaml-saml-impl/src/test/java/org/opensaml/saml/saml2/binding/security/impl/ExtractChannelBindingsExtensionsHandlerTest.java
+++ b/opensaml-saml-impl/src/test/java/org/opensaml/saml/saml2/binding/security/impl/ExtractChannelBindingsExtensionsHandlerTest.java
@@ -82,18 +82,18 @@ public class ExtractChannelBindingsExtensionsHandlerTest extends OpenSAMLInitBas
      * @throws MessageHandlerException ...
      */
     @Test public void testUnsigned() throws MessageHandlerException {
-        final Extensions ext = XMLObjectProviderRegistrySupport.getBuilderFactory().<Extensions>getBuilderOrThrow(
+        final Extensions ext = XMLObjectProviderRegistrySupport.getBuilderFactory().<Extensions>ensureBuilder(
                 Extensions.DEFAULT_ELEMENT_NAME).buildObject(Extensions.DEFAULT_ELEMENT_NAME);
 
         messageCtx.setMessage(SAML2ActionTestingSupport.buildAuthnRequest());
         ((AuthnRequest) messageCtx.getMessage()).setExtensions(ext);
         
-        final ChannelBindings cb = XMLObjectProviderRegistrySupport.getBuilderFactory().<ChannelBindings>getBuilderOrThrow(
+        final ChannelBindings cb = XMLObjectProviderRegistrySupport.getBuilderFactory().<ChannelBindings>ensureBuilder(
                 ChannelBindings.DEFAULT_ELEMENT_NAME).buildObject(ChannelBindings.DEFAULT_ELEMENT_NAME);
         cb.setValue("foo");
         ext.getUnknownXMLObjects().add(cb);
 
-        final ChannelBindings cb2 = XMLObjectProviderRegistrySupport.getBuilderFactory().<ChannelBindings>getBuilderOrThrow(
+        final ChannelBindings cb2 = XMLObjectProviderRegistrySupport.getBuilderFactory().<ChannelBindings>ensureBuilder(
                 ChannelBindings.DEFAULT_ELEMENT_NAME).buildObject(ChannelBindings.DEFAULT_ELEMENT_NAME);
         cb2.setValue("bar");
         ext.getUnknownXMLObjects().add(cb2);
@@ -111,18 +111,18 @@ public class ExtractChannelBindingsExtensionsHandlerTest extends OpenSAMLInitBas
      * @throws MessageHandlerException ...
      */
     @Test public void testSuccess() throws MessageHandlerException {
-        final Extensions ext = XMLObjectProviderRegistrySupport.getBuilderFactory().<Extensions>getBuilderOrThrow(
+        final Extensions ext = XMLObjectProviderRegistrySupport.getBuilderFactory().<Extensions>ensureBuilder(
                 Extensions.DEFAULT_ELEMENT_NAME).buildObject(Extensions.DEFAULT_ELEMENT_NAME);
 
         messageCtx.setMessage(SAML2ActionTestingSupport.buildAuthnRequest());
         ((AuthnRequest) messageCtx.getMessage()).setExtensions(ext);
         
-        final ChannelBindings cb = XMLObjectProviderRegistrySupport.getBuilderFactory().<ChannelBindings>getBuilderOrThrow(
+        final ChannelBindings cb = XMLObjectProviderRegistrySupport.getBuilderFactory().<ChannelBindings>ensureBuilder(
                 ChannelBindings.DEFAULT_ELEMENT_NAME).buildObject(ChannelBindings.DEFAULT_ELEMENT_NAME);
         cb.setValue("foo");
         ext.getUnknownXMLObjects().add(cb);
 
-        final ChannelBindings cb2 = XMLObjectProviderRegistrySupport.getBuilderFactory().<ChannelBindings>getBuilderOrThrow(
+        final ChannelBindings cb2 = XMLObjectProviderRegistrySupport.getBuilderFactory().<ChannelBindings>ensureBuilder(
                 ChannelBindings.DEFAULT_ELEMENT_NAME).buildObject(ChannelBindings.DEFAULT_ELEMENT_NAME);
         cb2.setValue("bar");
         ext.getUnknownXMLObjects().add(cb2);
diff --git a/opensaml-saml-impl/src/test/java/org/opensaml/saml/saml2/binding/security/impl/ExtractChannelBindingsHeadersHandlerTest.java b/opensaml-saml-impl/src/test/java/org/opensaml/saml/saml2/binding/security/impl/ExtractChannelBindingsHeadersHandlerTest.java
index c27e44e82..784631936 100644
--- a/opensaml-saml-impl/src/test/java/org/opensaml/saml/saml2/binding/security/impl/ExtractChannelBindingsHeadersHandlerTest.java
+++ b/opensaml-saml-impl/src/test/java/org/opensaml/saml/saml2/binding/security/impl/ExtractChannelBindingsHeadersHandlerTest.java
@@ -61,7 +61,7 @@ public class ExtractChannelBindingsHeadersHandlerTest extends OpenSAMLInitBaseTe
      * @throws ComponentInitializationException ...
      */
     @Test public void testNoHeaders() throws MessageHandlerException, ComponentInitializationException {
-        final Envelope env = XMLObjectProviderRegistrySupport.getBuilderFactory().<Envelope>getBuilderOrThrow(
+        final Envelope env = XMLObjectProviderRegistrySupport.getBuilderFactory().<Envelope>ensureBuilder(
                 Envelope.DEFAULT_ELEMENT_NAME).buildObject(Envelope.DEFAULT_ELEMENT_NAME);
 
         final MessageContext messageCtx = new MessageContext();
@@ -84,20 +84,20 @@ public class ExtractChannelBindingsHeadersHandlerTest extends OpenSAMLInitBaseTe
      * @throws ComponentInitializationException ...
      */
     @Test public void testSuccess() throws MessageHandlerException, ComponentInitializationException {
-        final Envelope env = XMLObjectProviderRegistrySupport.getBuilderFactory().<Envelope>getBuilderOrThrow(
+        final Envelope env = XMLObjectProviderRegistrySupport.getBuilderFactory().<Envelope>ensureBuilder(
                 Envelope.DEFAULT_ELEMENT_NAME).buildObject(Envelope.DEFAULT_ELEMENT_NAME);
 
         final MessageContext messageCtx = new MessageContext();
         messageCtx.setMessage(SAML2ActionTestingSupport.buildAuthnRequest());
         messageCtx.getSubcontext(SOAP11Context.class, true).setEnvelope(env);
         
-        final ChannelBindings cb = XMLObjectProviderRegistrySupport.getBuilderFactory().<ChannelBindings>getBuilderOrThrow(
+        final ChannelBindings cb = XMLObjectProviderRegistrySupport.getBuilderFactory().<ChannelBindings>ensureBuilder(
                 ChannelBindings.DEFAULT_ELEMENT_NAME).buildObject(ChannelBindings.DEFAULT_ELEMENT_NAME);
         cb.setValue("foo");
         SOAPSupport.addSOAP11ActorAttribute(cb, ActorBearing.SOAP11_ACTOR_NEXT);
         SOAPMessagingSupport.addHeaderBlock(messageCtx, cb);
 
-        final ChannelBindings cb2 = XMLObjectProviderRegistrySupport.getBuilderFactory().<ChannelBindings>getBuilderOrThrow(
+        final ChannelBindings cb2 = XMLObjectProviderRegistrySupport.getBuilderFactory().<ChannelBindings>ensureBuilder(
                 ChannelBindings.DEFAULT_ELEMENT_NAME).buildObject(ChannelBindings.DEFAULT_ELEMENT_NAME);
         cb2.setValue("bar");
         SOAPSupport.addSOAP11ActorAttribute(cb2, ActorBearing.SOAP11_ACTOR_NEXT);
@@ -124,20 +124,20 @@ public class ExtractChannelBindingsHeadersHandlerTest extends OpenSAMLInitBaseTe
      * @throws ComponentInitializationException ...
      */
     @Test public void testActor() throws MessageHandlerException, ComponentInitializationException {
-        final Envelope env = XMLObjectProviderRegistrySupport.getBuilderFactory().<Envelope>getBuilderOrThrow(
+        final Envelope env = XMLObjectProviderRegistrySupport.getBuilderFactory().<Envelope>ensureBuilder(
                 Envelope.DEFAULT_ELEMENT_NAME).buildObject(Envelope.DEFAULT_ELEMENT_NAME);
 
         final MessageContext messageCtx = new MessageContext();
         messageCtx.setMessage(SAML2ActionTestingSupport.buildAuthnRequest());
         messageCtx.getSubcontext(SOAP11Context.class, true).setEnvelope(env);
         
-        final ChannelBindings cb = XMLObjectProviderRegistrySupport.getBuilderFactory().<ChannelBindings>getBuilderOrThrow(
+        final ChannelBindings cb = XMLObjectProviderRegistrySupport.getBuilderFactory().<ChannelBindings>ensureBuilder(
                 ChannelBindings.DEFAULT_ELEMENT_NAME).buildObject(ChannelBindings.DEFAULT_ELEMENT_NAME);
         cb.setValue("foo");
         SOAPSupport.addSOAP11ActorAttribute(cb, ActorBearing.SOAP11_ACTOR_NEXT);
         SOAPMessagingSupport.addHeaderBlock(messageCtx, cb);
 
-        final ChannelBindings cb2 = XMLObjectProviderRegistrySupport.getBuilderFactory().<ChannelBindings>getBuilderOrThrow(
+        final ChannelBindings cb2 = XMLObjectProviderRegistrySupport.getBuilderFactory().<ChannelBindings>ensureBuilder(
                 ChannelBindings.DEFAULT_ELEMENT_NAME).buildObject(ChannelBindings.DEFAULT_ELEMENT_NAME);
         cb2.setValue("bar");
         SOAPMessagingSupport.addHeaderBlock(messageCtx, cb2);
diff --git a/opensaml-saml-impl/src/test/java/org/opensaml/saml/saml2/binding/security/impl/SAML2HTTPPostSimpleSignSecurityHandlerTest.java b/opensaml-saml-impl/src/test/java/org/opensaml/saml/saml2/binding/security/impl/SAML2HTTPPostSimpleSignSecurityHandlerTest.java
index aab033c9a..f1d862ca5 100644
--- a/opensaml-saml-impl/src/test/java/org/opensaml/saml/saml2/binding/security/impl/SAML2HTTPPostSimpleSignSecurityHandlerTest.java
+++ b/opensaml-saml-impl/src/test/java/org/opensaml/saml/saml2/binding/security/impl/SAML2HTTPPostSimpleSignSecurityHandlerTest.java
@@ -397,7 +397,7 @@ public class SAML2HTTPPostSimpleSignSecurityHandlerTest extends XMLObjectBaseTes
         // Encode the "outbound" message context, with simple signature
         //
         SAMLObjectBuilder<AssertionConsumerService> endpointBuilder =
-                (SAMLObjectBuilder<AssertionConsumerService>) builderFactory.<AssertionConsumerService>getBuilderOrThrow(
+                (SAMLObjectBuilder<AssertionConsumerService>) builderFactory.<AssertionConsumerService>ensureBuilder(
                         AssertionConsumerService.DEFAULT_ELEMENT_NAME);
         AssertionConsumerService samlEndpoint = endpointBuilder.buildObject();
         samlEndpoint.setLocation("http://example.org");
diff --git a/opensaml-saml-impl/src/test/java/org/opensaml/saml/saml2/binding/security/impl/SAML2HTTPRedirectDeflateSignatureSecurityHandlerTest.java b/opensaml-saml-impl/src/test/java/org/opensaml/saml/saml2/binding/security/impl/SAML2HTTPRedirectDeflateSignatureSecurityHandlerTest.java
index 4a066b0ce..f96ad6979 100644
--- a/opensaml-saml-impl/src/test/java/org/opensaml/saml/saml2/binding/security/impl/SAML2HTTPRedirectDeflateSignatureSecurityHandlerTest.java
+++ b/opensaml-saml-impl/src/test/java/org/opensaml/saml/saml2/binding/security/impl/SAML2HTTPRedirectDeflateSignatureSecurityHandlerTest.java
@@ -308,7 +308,7 @@ public class SAML2HTTPRedirectDeflateSignatureSecurityHandlerTest extends XMLObj
         // Encode the "outbound" message context, with simple signature
         //
         SAMLObjectBuilder<AssertionConsumerService> endpointBuilder =
-                (SAMLObjectBuilder<AssertionConsumerService>) builderFactory.<AssertionConsumerService>getBuilderOrThrow(
+                (SAMLObjectBuilder<AssertionConsumerService>) builderFactory.<AssertionConsumerService>ensureBuilder(
                         AssertionConsumerService.DEFAULT_ELEMENT_NAME);
         AssertionConsumerService samlEndpoint = endpointBuilder.buildObject();
         samlEndpoint.setLocation("http://example.org");
diff --git a/opensaml-saml-impl/src/test/java/org/opensaml/saml/saml2/core/impl/KeyInfoConfirmationDataTypeTest.java b/opensaml-saml-impl/src/test/java/org/opensaml/saml/saml2/core/impl/KeyInfoConfirmationDataTypeTest.java
index 78071f7c4..d4984a546 100644
--- a/opensaml-saml-impl/src/test/java/org/opensaml/saml/saml2/core/impl/KeyInfoConfirmationDataTypeTest.java
+++ b/opensaml-saml-impl/src/test/java/org/opensaml/saml/saml2/core/impl/KeyInfoConfirmationDataTypeTest.java
@@ -157,7 +157,7 @@ public class KeyInfoConfirmationDataTypeTest extends XMLObjectProviderBaseTestCa
     
     public KeyInfoConfirmationDataType buildXMLObject() {
         SAMLObjectBuilder<KeyInfoConfirmationDataType> builder = (SAMLObjectBuilder<KeyInfoConfirmationDataType>)
-                XMLObjectProviderRegistrySupport.getBuilderFactory().<KeyInfoConfirmationDataType>getBuilderOrThrow(
+                XMLObjectProviderRegistrySupport.getBuilderFactory().<KeyInfoConfirmationDataType>ensureBuilder(
                         KeyInfoConfirmationDataType.TYPE_NAME);
         
         if(builder == null){
diff --git a/opensaml-saml-impl/src/test/java/org/opensaml/saml/saml2/core/tests/ResponseSuccessAuthnAttribTest.java b/opensaml-saml-impl/src/test/java/org/opensaml/saml/saml2/core/tests/ResponseSuccessAuthnAttribTest.java
index 1494b8305..4357fec0e 100644
--- a/opensaml-saml-impl/src/test/java/org/opensaml/saml/saml2/core/tests/ResponseSuccessAuthnAttribTest.java
+++ b/opensaml-saml-impl/src/test/java/org/opensaml/saml/saml2/core/tests/ResponseSuccessAuthnAttribTest.java
@@ -160,7 +160,7 @@ public class ResponseSuccessAuthnAttribTest extends BaseComplexSAMLObjectTestCas
         classRef.setURI(AuthnContext.PPT_AUTHN_CTX);
         
         AttributeStatement attribStatement = (AttributeStatement) buildXMLObject(AttributeStatement.DEFAULT_ELEMENT_NAME);
-        XMLObjectBuilder<XSString> stringBuilder = builderFactory.getBuilderOrThrow(XSString.TYPE_NAME);
+        XMLObjectBuilder<XSString> stringBuilder = builderFactory.ensureBuilder(XSString.TYPE_NAME);
         
         Attribute fooAttrib = (Attribute) buildXMLObject(Attribute.DEFAULT_ELEMENT_NAME);
         fooAttrib.setFriendlyName("fooAttrib");
diff --git a/opensaml-saml-impl/src/test/java/org/opensaml/saml/saml2/core/tests/SignedAssertionTest.java b/opensaml-saml-impl/src/test/java/org/opensaml/saml/saml2/core/tests/SignedAssertionTest.java
index 08f3fc43d..71b70583a 100644
--- a/opensaml-saml-impl/src/test/java/org/opensaml/saml/saml2/core/tests/SignedAssertionTest.java
+++ b/opensaml-saml-impl/src/test/java/org/opensaml/saml/saml2/core/tests/SignedAssertionTest.java
@@ -85,11 +85,11 @@ public class SignedAssertionTest extends XMLObjectBaseTestCase {
         keyPair = KeySupport.generateKeyPair("RSA", 1024, null);
         CredentialSupport.getSimpleCredential(keyPair.getPublic(), null);
         
-        assertionBuilder = (SAMLObjectBuilder<Assertion>) builderFactory.<Assertion>getBuilderOrThrow(Assertion.DEFAULT_ELEMENT_NAME);
-        issuerBuilder = (SAMLObjectBuilder<Issuer>) builderFactory.<Issuer>getBuilderOrThrow(Issuer.DEFAULT_ELEMENT_NAME);
-        authnStatementBuilder = (SAMLObjectBuilder<AuthnStatement>) builderFactory.<AuthnStatement>getBuilderOrThrow(
+        assertionBuilder = (SAMLObjectBuilder<Assertion>) builderFactory.<Assertion>ensureBuilder(Assertion.DEFAULT_ELEMENT_NAME);
+        issuerBuilder = (SAMLObjectBuilder<Issuer>) builderFactory.<Issuer>ensureBuilder(Issuer.DEFAULT_ELEMENT_NAME);
+        authnStatementBuilder = (SAMLObjectBuilder<AuthnStatement>) builderFactory.<AuthnStatement>ensureBuilder(
                 AuthnStatement.DEFAULT_ELEMENT_NAME);
-        signatureBuilder = builderFactory.getBuilderOrThrow(Signature.DEFAULT_ELEMENT_NAME);
+        signatureBuilder = builderFactory.ensureBuilder(Signature.DEFAULT_ELEMENT_NAME);
         
         idGenerator = IdentifierGenerationStrategy.getInstance(ProviderType.RANDOM);
     }
diff --git a/opensaml-saml-impl/src/test/java/org/opensaml/saml/saml2/metadata/impl/IDPSSODescriptorTest.java b/opensaml-saml-impl/src/test/java/org/opensaml/saml/saml2/metadata/impl/IDPSSODescriptorTest.java
index 868583e5b..534c66abe 100644
--- a/opensaml-saml-impl/src/test/java/org/opensaml/saml/saml2/metadata/impl/IDPSSODescriptorTest.java
+++ b/opensaml-saml-impl/src/test/java/org/opensaml/saml/saml2/metadata/impl/IDPSSODescriptorTest.java
@@ -273,7 +273,7 @@ public class IDPSSODescriptorTest extends XMLObjectProviderBaseTestCase {
         }
 
         final SAMLObjectBuilder<Attribute> builder = (SAMLObjectBuilder<Attribute>)
-                XMLObjectProviderRegistrySupport.getBuilderFactory().<Attribute>getBuilderOrThrow(
+                XMLObjectProviderRegistrySupport.getBuilderFactory().<Attribute>ensureBuilder(
                         Attribute.DEFAULT_ELEMENT_NAME);
         descriptor.getAttributes().add(builder.buildObject());
         assertXMLEquals(expectedChildElementsDOM, descriptor);
diff --git a/opensaml-saml-impl/src/test/java/org/opensaml/saml/saml2/metadata/impl/SingleLogoutServiceTest.java b/opensaml-saml-impl/src/test/java/org/opensaml/saml/saml2/metadata/impl/SingleLogoutServiceTest.java
index f7406e06a..c59beadcc 100644
--- a/opensaml-saml-impl/src/test/java/org/opensaml/saml/saml2/metadata/impl/SingleLogoutServiceTest.java
+++ b/opensaml-saml-impl/src/test/java/org/opensaml/saml/saml2/metadata/impl/SingleLogoutServiceTest.java
@@ -141,7 +141,7 @@ public class SingleLogoutServiceTest extends XMLObjectProviderBaseTestCase {
         service.setLocation(expectedLocation);
 
 
-        XMLObject obj = builderFactory.getBuilderOrThrow(XSAny.TYPE_NAME).buildObject(new QName("http://example.org/", "bar", "foo"));
+        XMLObject obj = builderFactory.ensureBuilder(XSAny.TYPE_NAME).buildObject(new QName("http://example.org/", "bar", "foo"));
         
         service.getUnknownXMLObjects().add(obj);
 
diff --git a/opensaml-saml-impl/src/test/java/org/opensaml/saml/saml2/profile/impl/AddChannelBindingsToAssertionsTest.java b/opensaml-saml-impl/src/test/java/org/opensaml/saml/saml2/profile/impl/AddChannelBindingsToAssertionsTest.java
index 558b68477..64cbbb35e 100644
--- a/opensaml-saml-impl/src/test/java/org/opensaml/saml/saml2/profile/impl/AddChannelBindingsToAssertionsTest.java
+++ b/opensaml-saml-impl/src/test/java/org/opensaml/saml/saml2/profile/impl/AddChannelBindingsToAssertionsTest.java
@@ -47,7 +47,7 @@ public class AddChannelBindingsToAssertionsTest  extends OpenSAMLInitBaseTestCas
     public void setUp() throws ComponentInitializationException {
         
         final SAMLObjectBuilder<ChannelBindings> cbBuilder = (SAMLObjectBuilder<ChannelBindings>)
-                XMLObjectProviderRegistrySupport.getBuilderFactory().<ChannelBindings>getBuilderOrThrow(
+                XMLObjectProviderRegistrySupport.getBuilderFactory().<ChannelBindings>ensureBuilder(
                         ChannelBindings.DEFAULT_ELEMENT_NAME);
         final ChannelBindings cb = cbBuilder.buildObject();
         cb.setType("foo");
diff --git a/opensaml-saml-impl/src/test/java/org/opensaml/saml/saml2/profile/impl/AddNameIDToSubjectsTest.java b/opensaml-saml-impl/src/test/java/org/opensaml/saml/saml2/profile/impl/AddNameIDToSubjectsTest.java
index e1a63a962..a34c15770 100644
--- a/opensaml-saml-impl/src/test/java/org/opensaml/saml/saml2/profile/impl/AddNameIDToSubjectsTest.java
+++ b/opensaml-saml-impl/src/test/java/org/opensaml/saml/saml2/profile/impl/AddNameIDToSubjectsTest.java
@@ -118,7 +118,7 @@ public class AddNameIDToSubjectsTest extends XMLObjectBaseTestCase {
         action.setNameIDGenerator(generator);
         
         policyBuilder = (SAMLObjectBuilder<NameIDPolicy>)
-                XMLObjectProviderRegistrySupport.getBuilderFactory().<NameIDPolicy>getBuilderOrThrow(
+                XMLObjectProviderRegistrySupport.getBuilderFactory().<NameIDPolicy>ensureBuilder(
                         NameIDPolicy.DEFAULT_ELEMENT_NAME);
     }
     
diff --git a/opensaml-saml-impl/src/test/java/org/opensaml/saml/saml2/profile/impl/AddOneTimeUseConditionToAssertionsTest.java b/opensaml-saml-impl/src/test/java/org/opensaml/saml/saml2/profile/impl/AddOneTimeUseConditionToAssertionsTest.java
index 2f0eb7fe6..d9b4fb0c5 100644
--- a/opensaml-saml-impl/src/test/java/org/opensaml/saml/saml2/profile/impl/AddOneTimeUseConditionToAssertionsTest.java
+++ b/opensaml-saml-impl/src/test/java/org/opensaml/saml/saml2/profile/impl/AddOneTimeUseConditionToAssertionsTest.java
@@ -96,12 +96,12 @@ public class AddOneTimeUseConditionToAssertionsTest  extends OpenSAMLInitBaseTes
     @Test
     public void testSingleAssertionWithExistingCondition() {
         final SAMLObjectBuilder<OneTimeUse> conditionBuilder = (SAMLObjectBuilder<OneTimeUse>)
-                XMLObjectProviderRegistrySupport.getBuilderFactory().<OneTimeUse>getBuilderOrThrow(
+                XMLObjectProviderRegistrySupport.getBuilderFactory().<OneTimeUse>ensureBuilder(
                         OneTimeUse.DEFAULT_ELEMENT_NAME);
         final OneTimeUse condition = conditionBuilder.buildObject();
 
         final SAMLObjectBuilder<Conditions> conditionsBuilder = (SAMLObjectBuilder<Conditions>)
-                XMLObjectProviderRegistrySupport.getBuilderFactory().<Conditions>getBuilderOrThrow(
+                XMLObjectProviderRegistrySupport.getBuilderFactory().<Conditions>ensureBuilder(
                         Conditions.DEFAULT_ELEMENT_NAME);
         final Conditions conditions = conditionsBuilder.buildObject();
         conditions.getConditions().add(condition);
diff --git a/opensaml-saml-impl/src/test/java/org/opensaml/saml/saml2/profile/impl/AddProxyRestrictionToAssertionsTest.java b/opensaml-saml-impl/src/test/java/org/opensaml/saml/saml2/profile/impl/AddProxyRestrictionToAssertionsTest.java
index c4145e275..f87c0de8a 100644
--- a/opensaml-saml-impl/src/test/java/org/opensaml/saml/saml2/profile/impl/AddProxyRestrictionToAssertionsTest.java
+++ b/opensaml-saml-impl/src/test/java/org/opensaml/saml/saml2/profile/impl/AddProxyRestrictionToAssertionsTest.java
@@ -206,7 +206,7 @@ public class AddProxyRestrictionToAssertionsTest extends OpenSAMLInitBaseTestCas
      */
     @Test public void testSingleAssertionWithExistingCondition() throws ComponentInitializationException {
         final SAMLObjectBuilder<Conditions> conditionsBuilder = (SAMLObjectBuilder<Conditions>)
-                XMLObjectProviderRegistrySupport.getBuilderFactory().<Conditions>getBuilderOrThrow(
+                XMLObjectProviderRegistrySupport.getBuilderFactory().<Conditions>ensureBuilder(
                         Conditions.DEFAULT_ELEMENT_NAME);
         final Conditions conditions = conditionsBuilder.buildObject();
 
diff --git a/opensaml-saml-impl/src/test/java/org/opensaml/saml/saml2/profile/impl/DecryptNameIDsTest.java b/opensaml-saml-impl/src/test/java/org/opensaml/saml/saml2/profile/impl/DecryptNameIDsTest.java
index 2a9088573..78c25f291 100644
--- a/opensaml-saml-impl/src/test/java/org/opensaml/saml/saml2/profile/impl/DecryptNameIDsTest.java
+++ b/opensaml-saml-impl/src/test/java/org/opensaml/saml/saml2/profile/impl/DecryptNameIDsTest.java
@@ -74,10 +74,10 @@ public class DecryptNameIDsTest extends OpenSAMLInitBaseTestCase {
     public void setUp() throws NoSuchAlgorithmException, KeyException {
         encURI = EncryptionConstants.ALGO_ID_BLOCKCIPHER_AES128;
         nameIdBuilder = (SAMLObjectBuilder<NameID>)
-                XMLObjectProviderRegistrySupport.getBuilderFactory().<NameID>getBuilderOrThrow(
+                XMLObjectProviderRegistrySupport.getBuilderFactory().<NameID>ensureBuilder(
                         NameID.DEFAULT_ELEMENT_NAME);
         subjectBuilder = (SAMLObjectBuilder<Subject>)
-                XMLObjectProviderRegistrySupport.getBuilderFactory().<Subject>getBuilderOrThrow(
+                XMLObjectProviderRegistrySupport.getBuilderFactory().<Subject>ensureBuilder(
                         Subject.DEFAULT_ELEMENT_NAME);
 
         final Credential encCred = AlgorithmSupport.generateSymmetricKeyAndCredential(encURI);
diff --git a/opensaml-saml-impl/src/test/java/org/opensaml/saml/saml2/profile/impl/EncryptAttributesTest.java b/opensaml-saml-impl/src/test/java/org/opensaml/saml/saml2/profile/impl/EncryptAttributesTest.java
index 2961f0d0b..38fb50552 100644
--- a/opensaml-saml-impl/src/test/java/org/opensaml/saml/saml2/profile/impl/EncryptAttributesTest.java
+++ b/opensaml-saml-impl/src/test/java/org/opensaml/saml/saml2/profile/impl/EncryptAttributesTest.java
@@ -62,7 +62,7 @@ public class EncryptAttributesTest extends OpenSAMLInitBaseTestCase {
     @BeforeClass
     public void setUpClass() {
         builder = (SAMLObjectBuilder<Attribute>)
-                XMLObjectProviderRegistrySupport.getBuilderFactory().<Attribute>getBuilderOrThrow(
+                XMLObjectProviderRegistrySupport.getBuilderFactory().<Attribute>ensureBuilder(
                         Attribute.DEFAULT_ELEMENT_NAME);
     }
     
diff --git a/opensaml-soap-impl/src/main/java/org/opensaml/soap/client/soap11/encoder/http/impl/HttpClientRequestSOAP11Encoder.java b/opensaml-soap-impl/src/main/java/org/opensaml/soap/client/soap11/encoder/http/impl/HttpClientRequestSOAP11Encoder.java
index 830bf8ea6..8cad601eb 100644
--- a/opensaml-soap-impl/src/main/java/org/opensaml/soap/client/soap11/encoder/http/impl/HttpClientRequestSOAP11Encoder.java
+++ b/opensaml-soap-impl/src/main/java/org/opensaml/soap/client/soap11/encoder/http/impl/HttpClientRequestSOAP11Encoder.java
@@ -65,9 +65,9 @@ public class HttpClientRequestSOAP11Encoder extends BaseHttpClientRequestXMLMess
     /** Constructor. */
     public HttpClientRequestSOAP11Encoder() {
         final XMLObjectBuilderFactory builderFactory = XMLObjectProviderRegistrySupport.getBuilderFactory();
-        envBuilder = (SOAPObjectBuilder<Envelope>) builderFactory.<Envelope>getBuilderOrThrow(
+        envBuilder = (SOAPObjectBuilder<Envelope>) builderFactory.<Envelope>ensureBuilder(
                 Envelope.DEFAULT_ELEMENT_NAME);
-        bodyBuilder = (SOAPObjectBuilder<Body>) builderFactory.<Body>getBuilderOrThrow(Body.DEFAULT_ELEMENT_NAME);
+        bodyBuilder = (SOAPObjectBuilder<Body>) builderFactory.<Body>ensureBuilder(Body.DEFAULT_ELEMENT_NAME);
     }
     
     /** {@inheritDoc}
diff --git a/opensaml-soap-impl/src/main/java/org/opensaml/soap/soap11/encoder/http/impl/HTTPSOAP11Encoder.java b/opensaml-soap-impl/src/main/java/org/opensaml/soap/soap11/encoder/http/impl/HTTPSOAP11Encoder.java
index a4a9af498..c19963baf 100644
--- a/opensaml-soap-impl/src/main/java/org/opensaml/soap/soap11/encoder/http/impl/HTTPSOAP11Encoder.java
+++ b/opensaml-soap-impl/src/main/java/org/opensaml/soap/soap11/encoder/http/impl/HTTPSOAP11Encoder.java
@@ -61,9 +61,9 @@ public class HTTPSOAP11Encoder extends BaseHttpServletResponseXMLMessageEncoder
     /** Constructor. */
     public HTTPSOAP11Encoder() {
         final XMLObjectBuilderFactory builderFactory = XMLObjectProviderRegistrySupport.getBuilderFactory();
-        envBuilder = (SOAPObjectBuilder<Envelope>) builderFactory.<Envelope>getBuilderOrThrow(
+        envBuilder = (SOAPObjectBuilder<Envelope>) builderFactory.<Envelope>ensureBuilder(
                 Envelope.DEFAULT_ELEMENT_NAME);
-        bodyBuilder = (SOAPObjectBuilder<Body>) builderFactory.<Body>getBuilderOrThrow(Body.DEFAULT_ELEMENT_NAME);
+        bodyBuilder = (SOAPObjectBuilder<Body>) builderFactory.<Body>ensureBuilder(Body.DEFAULT_ELEMENT_NAME);
     }
     
     /** {@inheritDoc} */
diff --git a/opensaml-soap-impl/src/main/java/org/opensaml/soap/soap11/profile/impl/AddSOAPFault.java b/opensaml-soap-impl/src/main/java/org/opensaml/soap/soap11/profile/impl/AddSOAPFault.java
index 19c05cb75..504bcfee3 100644
--- a/opensaml-soap-impl/src/main/java/org/opensaml/soap/soap11/profile/impl/AddSOAPFault.java
+++ b/opensaml-soap-impl/src/main/java/org/opensaml/soap/soap11/profile/impl/AddSOAPFault.java
@@ -230,7 +230,7 @@ public class AddSOAPFault extends AbstractProfileAction {
             if (fault.getCode() == null) {
                 log.debug("{} Resolved Fault contained no FaultCode, using configured default", getLogPrefix());
                 final XMLObjectBuilder<FaultCode> faultCodeBuilder =
-                        XMLObjectProviderRegistrySupport.getBuilderFactory().<FaultCode>getBuilderOrThrow(
+                        XMLObjectProviderRegistrySupport.getBuilderFactory().<FaultCode>ensureBuilder(
                                 FaultCode.DEFAULT_ELEMENT_NAME);
                 final FaultCode code = faultCodeBuilder.buildObject(FaultCode.DEFAULT_ELEMENT_NAME);
                 code.setValue(defaultFaultCode);
@@ -261,10 +261,10 @@ public class AddSOAPFault extends AbstractProfileAction {
      */
     @Nonnull private Fault buildNewMappedFault(final ProfileRequestContext profileRequestContext) {
         final XMLObjectBuilder<Fault> faultBuilder =
-                XMLObjectProviderRegistrySupport.getBuilderFactory().<Fault>getBuilderOrThrow(
+                XMLObjectProviderRegistrySupport.getBuilderFactory().<Fault>ensureBuilder(
                         Fault.DEFAULT_ELEMENT_NAME);
         final XMLObjectBuilder<FaultCode> faultCodeBuilder =
-                XMLObjectProviderRegistrySupport.getBuilderFactory().<FaultCode>getBuilderOrThrow(
+                XMLObjectProviderRegistrySupport.getBuilderFactory().<FaultCode>ensureBuilder(
                         FaultCode.DEFAULT_ELEMENT_NAME);
         
         final Fault fault = faultBuilder.buildObject(Fault.DEFAULT_ELEMENT_NAME);
@@ -312,7 +312,7 @@ public class AddSOAPFault extends AbstractProfileAction {
      */
     private void buildFaultString(@Nonnull final Fault fault, @Nonnull @NotEmpty final String message) {
         final XMLObjectBuilder<FaultString> faultStringBuilder =
-                XMLObjectProviderRegistrySupport.getBuilderFactory().<FaultString>getBuilderOrThrow(
+                XMLObjectProviderRegistrySupport.getBuilderFactory().<FaultString>ensureBuilder(
                         FaultString.DEFAULT_ELEMENT_NAME);
 
         final FaultString fs = faultStringBuilder.buildObject(FaultString.DEFAULT_ELEMENT_NAME);
diff --git a/opensaml-soap-impl/src/test/java/org/opensaml/soap/testing/SOAPTest.java b/opensaml-soap-impl/src/test/java/org/opensaml/soap/testing/SOAPTest.java
index 2c35bd751..3c3fdd4c4 100644
--- a/opensaml-soap-impl/src/test/java/org/opensaml/soap/testing/SOAPTest.java
+++ b/opensaml-soap-impl/src/test/java/org/opensaml/soap/testing/SOAPTest.java
@@ -199,22 +199,22 @@ public class SOAPTest extends XMLObjectBaseTestCase {
     @Test
     public void testSOAPFaultBuilders() {
        
-       XMLObjectBuilder<Detail> detailBuilder = builderFactory.getBuilderOrThrow(Detail.DEFAULT_ELEMENT_NAME); 
+       XMLObjectBuilder<Detail> detailBuilder = builderFactory.ensureBuilder(Detail.DEFAULT_ELEMENT_NAME); 
        Detail detail = detailBuilder.buildObject(Detail.DEFAULT_ELEMENT_NAME);
        Assert.assertTrue(Strings.isNullOrEmpty(detail.getElementQName().getNamespaceURI()), "Namespace URI was not empty");
        Assert.assertTrue(Strings.isNullOrEmpty(detail.getElementQName().getPrefix()), "Namespace prefix was not empty");
         
-       XMLObjectBuilder<FaultActor> faultActorBuilder = builderFactory.getBuilderOrThrow(FaultActor.DEFAULT_ELEMENT_NAME); 
+       XMLObjectBuilder<FaultActor> faultActorBuilder = builderFactory.ensureBuilder(FaultActor.DEFAULT_ELEMENT_NAME); 
        FaultActor faultActor = faultActorBuilder.buildObject(FaultActor.DEFAULT_ELEMENT_NAME);
        Assert.assertTrue(Strings.isNullOrEmpty(faultActor.getElementQName().getNamespaceURI()), "Namespace URI was not empty");
        Assert.assertTrue(Strings.isNullOrEmpty(faultActor.getElementQName().getPrefix()), "Namespace prefix was not empty");
        
-       XMLObjectBuilder<FaultCode> faultCodeBuilder = builderFactory.getBuilderOrThrow(FaultCode.DEFAULT_ELEMENT_NAME); 
+       XMLObjectBuilder<FaultCode> faultCodeBuilder = builderFactory.ensureBuilder(FaultCode.DEFAULT_ELEMENT_NAME); 
        FaultCode faultCode = faultCodeBuilder.buildObject(FaultCode.DEFAULT_ELEMENT_NAME);
        Assert.assertTrue(Strings.isNullOrEmpty(faultCode.getElementQName().getNamespaceURI()), "Namespace URI was not empty");
        Assert.assertTrue(Strings.isNullOrEmpty(faultCode.getElementQName().getPrefix()), "Namespace prefix was not empty");
        
-       XMLObjectBuilder<FaultString> faultStringBuilder = builderFactory.getBuilderOrThrow(FaultString.DEFAULT_ELEMENT_NAME); 
+       XMLObjectBuilder<FaultString> faultStringBuilder = builderFactory.ensureBuilder(FaultString.DEFAULT_ELEMENT_NAME); 
        FaultString faultString = faultStringBuilder.buildObject(FaultString.DEFAULT_ELEMENT_NAME);
        Assert.assertTrue(Strings.isNullOrEmpty(faultString.getElementQName().getNamespaceURI()), "Namespace URI was not empty");
        Assert.assertTrue(Strings.isNullOrEmpty(faultString.getElementQName().getPrefix()), "Namespace prefix was not empty");
diff --git a/opensaml-testing/src/main/java/org/opensaml/core/testing/XMLObjectBaseTestCase.java b/opensaml-testing/src/main/java/org/opensaml/core/testing/XMLObjectBaseTestCase.java
index d3ace77ca..43bff224a 100644
--- a/opensaml-testing/src/main/java/org/opensaml/core/testing/XMLObjectBaseTestCase.java
+++ b/opensaml-testing/src/main/java/org/opensaml/core/testing/XMLObjectBaseTestCase.java
@@ -242,7 +242,7 @@ public abstract class XMLObjectBaseTestCase extends OpenSAMLInitBaseTestCase {
      * @return the XMLObjectBuilder
      */
     protected <T extends XMLObject> XMLObjectBuilder<T> getBuilder(@Nonnull final QName qname) {
-        return builderFactory.getBuilderOrThrow(qname);
+        return builderFactory.ensureBuilder(qname);
     }
 
     /**
diff --git a/opensaml-testing/src/main/java/org/opensaml/saml/saml1/testing/SAML1ActionTestingSupport.java b/opensaml-testing/src/main/java/org/opensaml/saml/saml1/testing/SAML1ActionTestingSupport.java
index 6669fe248..fa11ba025 100644
--- a/opensaml-testing/src/main/java/org/opensaml/saml/saml1/testing/SAML1ActionTestingSupport.java
+++ b/opensaml-testing/src/main/java/org/opensaml/saml/saml1/testing/SAML1ActionTestingSupport.java
@@ -59,7 +59,7 @@ public class SAML1ActionTestingSupport {
      */
     @Nonnull public static Response buildResponse() {
         final SAMLObjectBuilder<Response> responseBuilder = (SAMLObjectBuilder<Response>)
-                XMLObjectProviderRegistrySupport.getBuilderFactory().<Response>getBuilderOrThrow(
+                XMLObjectProviderRegistrySupport.getBuilderFactory().<Response>ensureBuilder(
                         Response.DEFAULT_ELEMENT_NAME);
 
         final Response response = responseBuilder.buildObject();
@@ -78,7 +78,7 @@ public class SAML1ActionTestingSupport {
      */
     @Nonnull public static Assertion buildAssertion() {
         final SAMLObjectBuilder<Assertion> assertionBuilder = (SAMLObjectBuilder<Assertion>)
-                XMLObjectProviderRegistrySupport.getBuilderFactory().<Assertion>getBuilderOrThrow(
+                XMLObjectProviderRegistrySupport.getBuilderFactory().<Assertion>ensureBuilder(
                         Assertion.DEFAULT_ELEMENT_NAME);
 
         final Assertion assertion = assertionBuilder.buildObject();
@@ -97,7 +97,7 @@ public class SAML1ActionTestingSupport {
      */
     @Nonnull public static AuthenticationStatement buildAuthenticationStatement() {
         final SAMLObjectBuilder<AuthenticationStatement> statementBuilder = (SAMLObjectBuilder<AuthenticationStatement>)
-                XMLObjectProviderRegistrySupport.getBuilderFactory().<AuthenticationStatement>getBuilderOrThrow(
+                XMLObjectProviderRegistrySupport.getBuilderFactory().<AuthenticationStatement>ensureBuilder(
                         AuthenticationStatement.DEFAULT_ELEMENT_NAME);
 
         final AuthenticationStatement statement = statementBuilder.buildObject();
@@ -114,7 +114,7 @@ public class SAML1ActionTestingSupport {
      */
     @Nonnull public static AttributeStatement buildAttributeStatement() {
         final SAMLObjectBuilder<AttributeStatement> statementBuilder = (SAMLObjectBuilder<AttributeStatement>)
-                XMLObjectProviderRegistrySupport.getBuilderFactory().<AttributeStatement>getBuilderOrThrow(
+                XMLObjectProviderRegistrySupport.getBuilderFactory().<AttributeStatement>ensureBuilder(
                         AttributeStatement.DEFAULT_ELEMENT_NAME);
 
         final AttributeStatement statement = statementBuilder.buildObject();
@@ -132,13 +132,13 @@ public class SAML1ActionTestingSupport {
      */
     @Nonnull public static Subject buildSubject(final @Nullable String principalName) {
         final SAMLObjectBuilder<Subject> subjectBuilder = (SAMLObjectBuilder<Subject>)
-                XMLObjectProviderRegistrySupport.getBuilderFactory().<Subject>getBuilderOrThrow(
+                XMLObjectProviderRegistrySupport.getBuilderFactory().<Subject>ensureBuilder(
                         Subject.DEFAULT_ELEMENT_NAME);
         final Subject subject = subjectBuilder.buildObject();
 
         if (principalName != null) {
             final SAMLObjectBuilder<NameIdentifier> nameIdBuilder = (SAMLObjectBuilder<NameIdentifier>)
-                    XMLObjectProviderRegistrySupport.getBuilderFactory().<NameIdentifier>getBuilderOrThrow(
+                    XMLObjectProviderRegistrySupport.getBuilderFactory().<NameIdentifier>ensureBuilder(
                             NameIdentifier.DEFAULT_ELEMENT_NAME);
             final NameIdentifier nameId = nameIdBuilder.buildObject();
             nameId.setValue(principalName);
@@ -158,7 +158,7 @@ public class SAML1ActionTestingSupport {
      */
     @Nonnull public static Request buildAttributeQueryRequest(final @Nullable Subject subject) {
         final SAMLObjectBuilder<AttributeQuery> queryBuilder = (SAMLObjectBuilder<AttributeQuery>)
-                XMLObjectProviderRegistrySupport.getBuilderFactory().<AttributeQuery>getBuilderOrThrow(
+                XMLObjectProviderRegistrySupport.getBuilderFactory().<AttributeQuery>ensureBuilder(
                         AttributeQuery.DEFAULT_ELEMENT_NAME);
         final AttributeQuery query = queryBuilder.buildObject();
 
@@ -167,7 +167,7 @@ public class SAML1ActionTestingSupport {
         }
 
         final SAMLObjectBuilder<Request> requestBuilder = (SAMLObjectBuilder<Request>)
-                XMLObjectProviderRegistrySupport.getBuilderFactory().<Request>getBuilderOrThrow(
+                XMLObjectProviderRegistrySupport.getBuilderFactory().<Request>ensureBuilder(
                         Request.DEFAULT_ELEMENT_NAME);
         final Request request = requestBuilder.buildObject();
         request.setID(REQUEST_ID);
@@ -187,11 +187,11 @@ public class SAML1ActionTestingSupport {
      */
     @Nonnull public static Request buildArtifactRequest(final @Nullable String... artifacts) {
         final SAMLObjectBuilder<AssertionArtifact> artifactBuilder = (SAMLObjectBuilder<AssertionArtifact>)
-                XMLObjectProviderRegistrySupport.getBuilderFactory().<AssertionArtifact>getBuilderOrThrow(
+                XMLObjectProviderRegistrySupport.getBuilderFactory().<AssertionArtifact>ensureBuilder(
                         AssertionArtifact.DEFAULT_ELEMENT_NAME);
 
         final SAMLObjectBuilder<Request> requestBuilder = (SAMLObjectBuilder<Request>)
-                XMLObjectProviderRegistrySupport.getBuilderFactory().<Request>getBuilderOrThrow(
+                XMLObjectProviderRegistrySupport.getBuilderFactory().<Request>ensureBuilder(
                         Request.DEFAULT_ELEMENT_NAME);
         final Request request = requestBuilder.buildObject();
         request.setID(REQUEST_ID);
diff --git a/opensaml-testing/src/main/java/org/opensaml/saml/saml2/testing/SAML2ActionTestingSupport.java b/opensaml-testing/src/main/java/org/opensaml/saml/saml2/testing/SAML2ActionTestingSupport.java
index 020b9de2a..653c025bf 100644
--- a/opensaml-testing/src/main/java/org/opensaml/saml/saml2/testing/SAML2ActionTestingSupport.java
+++ b/opensaml-testing/src/main/java/org/opensaml/saml/saml2/testing/SAML2ActionTestingSupport.java
@@ -71,7 +71,7 @@ public class SAML2ActionTestingSupport {
      */
     @Nonnull public static Response buildResponse() {
         final SAMLObjectBuilder<Response> responseBuilder = (SAMLObjectBuilder<Response>)
-                XMLObjectProviderRegistrySupport.getBuilderFactory().<Response>getBuilderOrThrow(
+                XMLObjectProviderRegistrySupport.getBuilderFactory().<Response>ensureBuilder(
                         Response.DEFAULT_ELEMENT_NAME);
 
         final Response response = responseBuilder.buildObject();
@@ -90,7 +90,7 @@ public class SAML2ActionTestingSupport {
      */
     @Nonnull public static ArtifactResponse buildArtifactResponse() {
         final SAMLObjectBuilder<ArtifactResponse> responseBuilder = (SAMLObjectBuilder<ArtifactResponse>)
-                XMLObjectProviderRegistrySupport.getBuilderFactory().<ArtifactResponse>getBuilderOrThrow(
+                XMLObjectProviderRegistrySupport.getBuilderFactory().<ArtifactResponse>ensureBuilder(
                         ArtifactResponse.DEFAULT_ELEMENT_NAME);
 
         final ArtifactResponse response = responseBuilder.buildObject();
@@ -111,11 +111,11 @@ public class SAML2ActionTestingSupport {
      */
     @Nonnull public static LogoutRequest buildLogoutRequest(final @Nullable NameID name) {
         final SAMLObjectBuilder<Issuer> issuerBuilder = (SAMLObjectBuilder<Issuer>)
-                XMLObjectProviderRegistrySupport.getBuilderFactory().<Issuer>getBuilderOrThrow(
+                XMLObjectProviderRegistrySupport.getBuilderFactory().<Issuer>ensureBuilder(
                         Issuer.DEFAULT_ELEMENT_NAME);
 
         final SAMLObjectBuilder<LogoutRequest> reqBuilder = (SAMLObjectBuilder<LogoutRequest>)
-                XMLObjectProviderRegistrySupport.getBuilderFactory().<LogoutRequest>getBuilderOrThrow(
+                XMLObjectProviderRegistrySupport.getBuilderFactory().<LogoutRequest>ensureBuilder(
                         LogoutRequest.DEFAULT_ELEMENT_NAME);
 
         final Issuer issuer = issuerBuilder.buildObject();
@@ -142,7 +142,7 @@ public class SAML2ActionTestingSupport {
      */
     @Nonnull public static LogoutResponse buildLogoutResponse() {
         final SAMLObjectBuilder<LogoutResponse> responseBuilder = (SAMLObjectBuilder<LogoutResponse>)
-                XMLObjectProviderRegistrySupport.getBuilderFactory().<LogoutResponse>getBuilderOrThrow(
+                XMLObjectProviderRegistrySupport.getBuilderFactory().<LogoutResponse>ensureBuilder(
                         LogoutResponse.DEFAULT_ELEMENT_NAME);
 
         final LogoutResponse response = responseBuilder.buildObject();
@@ -161,7 +161,7 @@ public class SAML2ActionTestingSupport {
      */
     @Nonnull public static Assertion buildAssertion() {
         final SAMLObjectBuilder<Assertion> assertionBuilder = (SAMLObjectBuilder<Assertion>)
-                XMLObjectProviderRegistrySupport.getBuilderFactory().<Assertion>getBuilderOrThrow(
+                XMLObjectProviderRegistrySupport.getBuilderFactory().<Assertion>ensureBuilder(
                         Assertion.DEFAULT_ELEMENT_NAME);
 
         final Assertion assertion = assertionBuilder.buildObject();
@@ -179,7 +179,7 @@ public class SAML2ActionTestingSupport {
      */
     @Nonnull public static AuthnStatement buildAuthnStatement() {
         final SAMLObjectBuilder<AuthnStatement> statementBuilder = (SAMLObjectBuilder<AuthnStatement>)
-                XMLObjectProviderRegistrySupport.getBuilderFactory().<AuthnStatement>getBuilderOrThrow(
+                XMLObjectProviderRegistrySupport.getBuilderFactory().<AuthnStatement>ensureBuilder(
                         AuthnStatement.DEFAULT_ELEMENT_NAME);
 
         final AuthnStatement statement = statementBuilder.buildObject();
@@ -195,7 +195,7 @@ public class SAML2ActionTestingSupport {
      */
     @Nonnull public static AttributeStatement buildAttributeStatement() {
         final SAMLObjectBuilder<AttributeStatement> statementBuilder = (SAMLObjectBuilder<AttributeStatement>)
-                XMLObjectProviderRegistrySupport.getBuilderFactory().<AttributeStatement>getBuilderOrThrow(
+                XMLObjectProviderRegistrySupport.getBuilderFactory().<AttributeStatement>ensureBuilder(
                         AttributeStatement.DEFAULT_ELEMENT_NAME);
 
         final AttributeStatement statement = statementBuilder.buildObject();
@@ -213,7 +213,7 @@ public class SAML2ActionTestingSupport {
      */
     @Nonnull public static Subject buildSubject(final @Nullable String principalName) {
         final SAMLObjectBuilder<Subject> subjectBuilder = (SAMLObjectBuilder<Subject>)
-                XMLObjectProviderRegistrySupport.getBuilderFactory().<Subject>getBuilderOrThrow(
+                XMLObjectProviderRegistrySupport.getBuilderFactory().<Subject>ensureBuilder(
                         Subject.DEFAULT_ELEMENT_NAME);
         final Subject subject = subjectBuilder.buildObject();
 
@@ -233,7 +233,7 @@ public class SAML2ActionTestingSupport {
      */
     @Nonnull public static NameID buildNameID(final @Nonnull @NotEmpty String principalName) {
         final SAMLObjectBuilder<NameID> nameIdBuilder = (SAMLObjectBuilder<NameID>)
-                XMLObjectProviderRegistrySupport.getBuilderFactory().<NameID>getBuilderOrThrow(
+                XMLObjectProviderRegistrySupport.getBuilderFactory().<NameID>ensureBuilder(
                         NameID.DEFAULT_ELEMENT_NAME);
         final NameID nameId = nameIdBuilder.buildObject();
         nameId.setValue(principalName);
@@ -249,7 +249,7 @@ public class SAML2ActionTestingSupport {
      */
     @Nonnull public static Issuer buildIssuer(final @Nonnull @NotEmpty String entityID) {
         final SAMLObjectBuilder<Issuer> issuerBuilder = (SAMLObjectBuilder<Issuer>)
-                XMLObjectProviderRegistrySupport.getBuilderFactory().<Issuer>getBuilderOrThrow(
+                XMLObjectProviderRegistrySupport.getBuilderFactory().<Issuer>ensureBuilder(
                         Issuer.DEFAULT_ELEMENT_NAME);
         final Issuer issuer = issuerBuilder.buildObject();
         issuer.setValue(entityID);
@@ -266,11 +266,11 @@ public class SAML2ActionTestingSupport {
      */
     @Nonnull public static AttributeQuery buildAttributeQueryRequest(final @Nullable Subject subject) {
         final SAMLObjectBuilder<Issuer> issuerBuilder = (SAMLObjectBuilder<Issuer>)
-                XMLObjectProviderRegistrySupport.getBuilderFactory().<Issuer>getBuilderOrThrow(
+                XMLObjectProviderRegistrySupport.getBuilderFactory().<Issuer>ensureBuilder(
                         Issuer.DEFAULT_ELEMENT_NAME);
 
         final SAMLObjectBuilder<AttributeQuery> queryBuilder = (SAMLObjectBuilder<AttributeQuery>)
-                XMLObjectProviderRegistrySupport.getBuilderFactory().<AttributeQuery>getBuilderOrThrow(
+                XMLObjectProviderRegistrySupport.getBuilderFactory().<AttributeQuery>ensureBuilder(
                         AttributeQuery.DEFAULT_ELEMENT_NAME);
 
         final Issuer issuer = issuerBuilder.buildObject();
@@ -296,11 +296,11 @@ public class SAML2ActionTestingSupport {
      */
     @Nonnull public static AuthnRequest buildAuthnRequest() {
         final SAMLObjectBuilder<Issuer> issuerBuilder = (SAMLObjectBuilder<Issuer>)
-                XMLObjectProviderRegistrySupport.getBuilderFactory().<Issuer>getBuilderOrThrow(
+                XMLObjectProviderRegistrySupport.getBuilderFactory().<Issuer>ensureBuilder(
                         Issuer.DEFAULT_ELEMENT_NAME);
 
         final SAMLObjectBuilder<AuthnRequest> requestBuilder = (SAMLObjectBuilder<AuthnRequest>)
-                XMLObjectProviderRegistrySupport.getBuilderFactory().<AuthnRequest>getBuilderOrThrow(
+                XMLObjectProviderRegistrySupport.getBuilderFactory().<AuthnRequest>ensureBuilder(
                         AuthnRequest.DEFAULT_ELEMENT_NAME);
 
         final Issuer issuer = issuerBuilder.buildObject();
@@ -328,13 +328,13 @@ public class SAML2ActionTestingSupport {
     @Nonnull public static Scoping buildScoping(@Nullable final Integer count,
             @Nullable @NonnullElements Set<String> idplist) {
         final SAMLObjectBuilder<Scoping> scopingBuilder = (SAMLObjectBuilder<Scoping>)
-                XMLObjectProviderRegistrySupport.getBuilderFactory().<Scoping>getBuilderOrThrow(
+                XMLObjectProviderRegistrySupport.getBuilderFactory().<Scoping>ensureBuilder(
                         Scoping.DEFAULT_ELEMENT_NAME);
         final SAMLObjectBuilder<IDPList> idpListBuilder = (SAMLObjectBuilder<IDPList>)
-                XMLObjectProviderRegistrySupport.getBuilderFactory().<IDPList>getBuilderOrThrow(
+                XMLObjectProviderRegistrySupport.getBuilderFactory().<IDPList>ensureBuilder(
                         IDPList.DEFAULT_ELEMENT_NAME);
         final SAMLObjectBuilder<IDPEntry> idpBuilder = (SAMLObjectBuilder<IDPEntry>)
-                XMLObjectProviderRegistrySupport.getBuilderFactory().<IDPEntry>getBuilderOrThrow(
+                XMLObjectProviderRegistrySupport.getBuilderFactory().<IDPEntry>ensureBuilder(
                         IDPEntry.DEFAULT_ELEMENT_NAME);
         
         final Scoping scoping = scopingBuilder.buildObject();
@@ -362,7 +362,7 @@ public class SAML2ActionTestingSupport {
      */
     @Nonnull public static ArtifactResolve buildArtifactResolve(final @Nullable String artifact) {
         final SAMLObjectBuilder<ArtifactResolve> requestBuilder = (SAMLObjectBuilder<ArtifactResolve>)
-                XMLObjectProviderRegistrySupport.getBuilderFactory().<ArtifactResolve>getBuilderOrThrow(
+                XMLObjectProviderRegistrySupport.getBuilderFactory().<ArtifactResolve>ensureBuilder(
                         ArtifactResolve.DEFAULT_ELEMENT_NAME);
         final ArtifactResolve request = requestBuilder.buildObject();
         request.setID(REQUEST_ID);
@@ -371,7 +371,7 @@ public class SAML2ActionTestingSupport {
         
         if (artifact != null) {
             final SAMLObjectBuilder<Artifact> artifactBuilder = (SAMLObjectBuilder<Artifact>)
-                    XMLObjectProviderRegistrySupport.getBuilderFactory().<Artifact>getBuilderOrThrow(
+                    XMLObjectProviderRegistrySupport.getBuilderFactory().<Artifact>ensureBuilder(
                             Artifact.DEFAULT_ELEMENT_NAME);
             final Artifact art = artifactBuilder.buildObject();
             art.setValue(artifact);
diff --git a/opensaml-xmlsec-api/src/main/java/org/opensaml/xmlsec/encryption/support/Encrypter.java b/opensaml-xmlsec-api/src/main/java/org/opensaml/xmlsec/encryption/support/Encrypter.java
index 1b853850a..3bc649ba8 100644
--- a/opensaml-xmlsec-api/src/main/java/org/opensaml/xmlsec/encryption/support/Encrypter.java
+++ b/opensaml-xmlsec-api/src/main/java/org/opensaml/xmlsec/encryption/support/Encrypter.java
@@ -123,7 +123,7 @@ public class Encrypter {
                 "EncryptedKey unmarshaller not configured");
 
         final XMLObjectBuilderFactory builderFactory = XMLObjectProviderRegistrySupport.getBuilderFactory();
-        keyInfoBuilder = (XMLSignatureBuilder<KeyInfo>) builderFactory.<KeyInfo>getBuilderOrThrow(
+        keyInfoBuilder = (XMLSignatureBuilder<KeyInfo>) builderFactory.<KeyInfo>ensureBuilder(
                 KeyInfo.DEFAULT_ELEMENT_NAME);
     }
 
diff --git a/opensaml-xmlsec-api/src/main/java/org/opensaml/xmlsec/keyinfo/KeyInfoSupport.java b/opensaml-xmlsec-api/src/main/java/org/opensaml/xmlsec/keyinfo/KeyInfoSupport.java
index acd0a2a7e..c20a0bf03 100644
--- a/opensaml-xmlsec-api/src/main/java/org/opensaml/xmlsec/keyinfo/KeyInfoSupport.java
+++ b/opensaml-xmlsec-api/src/main/java/org/opensaml/xmlsec/keyinfo/KeyInfoSupport.java
@@ -152,7 +152,7 @@ public class KeyInfoSupport {
         Constraint.isNotNull(keyInfo, "KeyInfo cannot be null");
 
         final XMLObjectBuilder<KeyName> keyNameBuilder =
-                XMLObjectProviderRegistrySupport.getBuilderFactory().getBuilderOrThrow(KeyName.DEFAULT_ELEMENT_NAME);
+                XMLObjectProviderRegistrySupport.getBuilderFactory().ensureBuilder(KeyName.DEFAULT_ELEMENT_NAME);
         final KeyName keyName = keyNameBuilder.buildObject(KeyName.DEFAULT_ELEMENT_NAME);
         keyName.setValue(keyNameValue);
         keyInfo.getKeyNames().add(keyName);
@@ -325,7 +325,7 @@ public class KeyInfoSupport {
         final X509Data x509Data;
         if (keyInfo.getX509Datas().size() == 0) {
             final XMLObjectBuilder<X509Data> x509DataBuilder =
-                    XMLObjectProviderRegistrySupport.getBuilderFactory().getBuilderOrThrow(
+                    XMLObjectProviderRegistrySupport.getBuilderFactory().ensureBuilder(
                             X509Data.DEFAULT_ELEMENT_NAME);
             x509Data = x509DataBuilder.buildObject(X509Data.DEFAULT_ELEMENT_NAME);
             keyInfo.getX509Datas().add(x509Data);
@@ -350,7 +350,7 @@ public class KeyInfoSupport {
         final X509Data x509Data;
         if (keyInfo.getX509Datas().size() == 0) {
             final XMLObjectBuilder<X509Data> x509DataBuilder =
-                    XMLObjectProviderRegistrySupport.getBuilderFactory().<X509Data>getBuilderOrThrow(
+                    XMLObjectProviderRegistrySupport.getBuilderFactory().<X509Data>ensureBuilder(
                             X509Data.DEFAULT_ELEMENT_NAME);
             x509Data = x509DataBuilder.buildObject(X509Data.DEFAULT_ELEMENT_NAME);
             keyInfo.getX509Datas().add(x509Data);
@@ -376,7 +376,7 @@ public class KeyInfoSupport {
         
        
         final XMLObjectBuilder<org.opensaml.xmlsec.signature.X509Certificate> xmlCertBuilder =
-                    XMLObjectProviderRegistrySupport.getBuilderFactory().getBuilderOrThrow(
+                    XMLObjectProviderRegistrySupport.getBuilderFactory().ensureBuilder(
                             org.opensaml.xmlsec.signature.X509Certificate.DEFAULT_ELEMENT_NAME);
         final org.opensaml.xmlsec.signature.X509Certificate xmlCert =
                 xmlCertBuilder.buildObject(org.opensaml.xmlsec.signature.X509Certificate.DEFAULT_ELEMENT_NAME);
@@ -403,7 +403,7 @@ public class KeyInfoSupport {
         Constraint.isNotNull(crl, "X.509 CRL cannot be null");
         
         final XMLObjectBuilder<org.opensaml.xmlsec.signature.X509CRL> xmlCRLBuilder =
-                    XMLObjectProviderRegistrySupport.getBuilderFactory().getBuilderOrThrow(
+                    XMLObjectProviderRegistrySupport.getBuilderFactory().ensureBuilder(
                             org.opensaml.xmlsec.signature.X509CRL.DEFAULT_ELEMENT_NAME);
         final org.opensaml.xmlsec.signature.X509CRL xmlCRL =
                 xmlCRLBuilder.buildObject(org.opensaml.xmlsec.signature.X509CRL.DEFAULT_ELEMENT_NAME);
@@ -424,7 +424,7 @@ public class KeyInfoSupport {
      */
     @Nonnull public static X509SubjectName buildX509SubjectName(@Nullable final String subjectName) {
         final XMLObjectBuilder<X509SubjectName> xmlSubjectNameBuilder =
-                XMLObjectProviderRegistrySupport.getBuilderFactory().getBuilderOrThrow(
+                XMLObjectProviderRegistrySupport.getBuilderFactory().ensureBuilder(
                         X509SubjectName.DEFAULT_ELEMENT_NAME);
         final X509SubjectName xmlSubjectName = xmlSubjectNameBuilder.buildObject(X509SubjectName.DEFAULT_ELEMENT_NAME);
         xmlSubjectName.setValue(subjectName);
@@ -443,18 +443,18 @@ public class KeyInfoSupport {
         final XMLObjectBuilderFactory builderFactory = XMLObjectProviderRegistrySupport.getBuilderFactory();
         
         final XMLObjectBuilder<X509IssuerName> xmlIssuerNameBuilder =
-                builderFactory.getBuilderOrThrow(X509IssuerName.DEFAULT_ELEMENT_NAME);
+                builderFactory.ensureBuilder(X509IssuerName.DEFAULT_ELEMENT_NAME);
         final X509IssuerName xmlIssuerName = xmlIssuerNameBuilder.buildObject(X509IssuerName.DEFAULT_ELEMENT_NAME);
         xmlIssuerName.setValue(issuerName);
 
         final XMLObjectBuilder<X509SerialNumber> xmlSerialNumberBuilder =
-                builderFactory.getBuilderOrThrow(X509SerialNumber.DEFAULT_ELEMENT_NAME);
+                builderFactory.ensureBuilder(X509SerialNumber.DEFAULT_ELEMENT_NAME);
         final X509SerialNumber xmlSerialNumber =
                 xmlSerialNumberBuilder.buildObject(X509SerialNumber.DEFAULT_ELEMENT_NAME);
         xmlSerialNumber.setValue(serialNumber);
 
         final XMLObjectBuilder<X509IssuerSerial> xmlIssuerSerialBuilder =
-                builderFactory.getBuilderOrThrow(X509IssuerSerial.DEFAULT_ELEMENT_NAME);
+                builderFactory.ensureBuilder(X509IssuerSerial.DEFAULT_ELEMENT_NAME);
         final X509IssuerSerial xmlIssuerSerial =
                 xmlIssuerSerialBuilder.buildObject(X509IssuerSerial.DEFAULT_ELEMENT_NAME);
         xmlIssuerSerial.setX509IssuerName(xmlIssuerName);
@@ -479,7 +479,7 @@ public class KeyInfoSupport {
         }
 
         final XMLObjectBuilder<X509SKI> xmlSKIBuilder =
-                XMLObjectProviderRegistrySupport.getBuilderFactory().getBuilderOrThrow(X509SKI.DEFAULT_ELEMENT_NAME);
+                XMLObjectProviderRegistrySupport.getBuilderFactory().ensureBuilder(X509SKI.DEFAULT_ELEMENT_NAME);
         final X509SKI xmlSKI = xmlSKIBuilder.buildObject(X509SKI.DEFAULT_ELEMENT_NAME);
         
         
@@ -513,7 +513,7 @@ public class KeyInfoSupport {
         final byte[] hash = md.digest(javaCert.getEncoded());
         
         final XMLObjectBuilder<X509Digest> builder =
-                XMLObjectProviderRegistrySupport.getBuilderFactory().getBuilderOrThrow(X509Digest.DEFAULT_ELEMENT_NAME);
+                XMLObjectProviderRegistrySupport.getBuilderFactory().ensureBuilder(X509Digest.DEFAULT_ELEMENT_NAME);
         final X509Digest xmlDigest = builder.buildObject(X509Digest.DEFAULT_ELEMENT_NAME);
         xmlDigest.setAlgorithm(algorithmURI);
         
@@ -548,7 +548,7 @@ public class KeyInfoSupport {
         Constraint.isNotNull(keyInfo, "KeyInfo cannot be null");
         
         final XMLObjectBuilder<KeyValue> keyValueBuilder =
-                XMLObjectProviderRegistrySupport.getBuilderFactory().getBuilderOrThrow(KeyValue.DEFAULT_ELEMENT_NAME);
+                XMLObjectProviderRegistrySupport.getBuilderFactory().ensureBuilder(KeyValue.DEFAULT_ELEMENT_NAME);
         final KeyValue keyValue = keyValueBuilder.buildObject(KeyValue.DEFAULT_ELEMENT_NAME);
 
         if (pk instanceof RSAPublicKey) {
@@ -581,16 +581,16 @@ public class KeyInfoSupport {
         final XMLObjectBuilderFactory builderFactory = XMLObjectProviderRegistrySupport.getBuilderFactory();
 
         final XMLObjectBuilder<DHKeyValue> dhKeyValueBuilder =
-                builderFactory.getBuilderOrThrow(DHKeyValue.DEFAULT_ELEMENT_NAME);
+                builderFactory.ensureBuilder(DHKeyValue.DEFAULT_ELEMENT_NAME);
         final DHKeyValue dhKeyValue = dhKeyValueBuilder.buildObject(DHKeyValue.DEFAULT_ELEMENT_NAME);
 
         final XMLObjectBuilder<Generator> generatorBuilder =
-                builderFactory.getBuilderOrThrow(Generator.DEFAULT_ELEMENT_NAME);
-        final XMLObjectBuilder<Public> publicBuilder = builderFactory.getBuilderOrThrow(Public.DEFAULT_ELEMENT_NAME);
+                builderFactory.ensureBuilder(Generator.DEFAULT_ELEMENT_NAME);
+        final XMLObjectBuilder<Public> publicBuilder = builderFactory.ensureBuilder(Public.DEFAULT_ELEMENT_NAME);
         final XMLObjectBuilder<org.opensaml.xmlsec.encryption.P> pBuilder =
-                builderFactory.getBuilderOrThrow(org.opensaml.xmlsec.encryption.P.DEFAULT_ELEMENT_NAME);
+                builderFactory.ensureBuilder(org.opensaml.xmlsec.encryption.P.DEFAULT_ELEMENT_NAME);
         final XMLObjectBuilder<org.opensaml.xmlsec.encryption.Q> qBuilder =
-                builderFactory.getBuilderOrThrow(org.opensaml.xmlsec.encryption.Q.DEFAULT_ELEMENT_NAME);
+                builderFactory.ensureBuilder(org.opensaml.xmlsec.encryption.Q.DEFAULT_ELEMENT_NAME);
         
         final Public pub = publicBuilder.buildObject(Public.DEFAULT_ELEMENT_NAME);
         final Generator gen = generatorBuilder.buildObject(Generator.DEFAULT_ELEMENT_NAME);
@@ -639,14 +639,14 @@ public class KeyInfoSupport {
         
         final XMLObjectBuilderFactory builderFactory = XMLObjectProviderRegistrySupport.getBuilderFactory();
         
-        final ECKeyValue ecKeyValue = (ECKeyValue) builderFactory.getBuilderOrThrow(ECKeyValue.DEFAULT_ELEMENT_NAME)
+        final ECKeyValue ecKeyValue = (ECKeyValue) builderFactory.ensureBuilder(ECKeyValue.DEFAULT_ELEMENT_NAME)
                 .buildObject(ECKeyValue.DEFAULT_ELEMENT_NAME);
         
-        final NamedCurve namedCurve = (NamedCurve) builderFactory.getBuilderOrThrow(NamedCurve.DEFAULT_ELEMENT_NAME)
+        final NamedCurve namedCurve = (NamedCurve) builderFactory.ensureBuilder(NamedCurve.DEFAULT_ELEMENT_NAME)
                 .buildObject(NamedCurve.DEFAULT_ELEMENT_NAME);
         
         final org.opensaml.xmlsec.signature.PublicKey publicKey =
-                (org.opensaml.xmlsec.signature.PublicKey) builderFactory.getBuilderOrThrow(
+                (org.opensaml.xmlsec.signature.PublicKey) builderFactory.ensureBuilder(
                         org.opensaml.xmlsec.signature.PublicKey.DEFAULT_ELEMENT_NAME)
                 .buildObject(org.opensaml.xmlsec.signature.PublicKey.DEFAULT_ELEMENT_NAME);
         
@@ -682,14 +682,14 @@ public class KeyInfoSupport {
         final XMLObjectBuilderFactory builderFactory = XMLObjectProviderRegistrySupport.getBuilderFactory();
         
         final XMLObjectBuilder<RSAKeyValue> rsaKeyValueBuilder =
-                builderFactory.getBuilderOrThrow(RSAKeyValue.DEFAULT_ELEMENT_NAME);
+                builderFactory.ensureBuilder(RSAKeyValue.DEFAULT_ELEMENT_NAME);
         final RSAKeyValue rsaKeyValue = rsaKeyValueBuilder.buildObject(RSAKeyValue.DEFAULT_ELEMENT_NAME);
         
-        final XMLObjectBuilder<Modulus> modulusBuilder = builderFactory.getBuilderOrThrow(Modulus.DEFAULT_ELEMENT_NAME);
+        final XMLObjectBuilder<Modulus> modulusBuilder = builderFactory.ensureBuilder(Modulus.DEFAULT_ELEMENT_NAME);
         final Modulus modulus = modulusBuilder.buildObject(Modulus.DEFAULT_ELEMENT_NAME);
         
         final XMLObjectBuilder<Exponent> exponentBuilder =
-                builderFactory.getBuilderOrThrow(Exponent.DEFAULT_ELEMENT_NAME);
+                builderFactory.ensureBuilder(Exponent.DEFAULT_ELEMENT_NAME);
         final Exponent exponent = exponentBuilder.buildObject(Exponent.DEFAULT_ELEMENT_NAME);
 
         modulus.setValueBigInt(rsaPubKey.getModulus());
@@ -715,13 +715,13 @@ public class KeyInfoSupport {
         final XMLObjectBuilderFactory builderFactory = XMLObjectProviderRegistrySupport.getBuilderFactory();
 
         final XMLObjectBuilder<DSAKeyValue> dsaKeyValueBuilder =
-                builderFactory.getBuilderOrThrow(DSAKeyValue.DEFAULT_ELEMENT_NAME);
+                builderFactory.ensureBuilder(DSAKeyValue.DEFAULT_ELEMENT_NAME);
         final DSAKeyValue dsaKeyValue = dsaKeyValueBuilder.buildObject(DSAKeyValue.DEFAULT_ELEMENT_NAME);
 
-        final XMLObjectBuilder<Y> yBuilder = builderFactory.getBuilderOrThrow(Y.DEFAULT_ELEMENT_NAME);
-        final XMLObjectBuilder<G> gBuilder = builderFactory.getBuilderOrThrow(G.DEFAULT_ELEMENT_NAME);
-        final XMLObjectBuilder<P> pBuilder = builderFactory.getBuilderOrThrow(P.DEFAULT_ELEMENT_NAME);
-        final XMLObjectBuilder<Q> qBuilder = builderFactory.getBuilderOrThrow(Q.DEFAULT_ELEMENT_NAME);
+        final XMLObjectBuilder<Y> yBuilder = builderFactory.ensureBuilder(Y.DEFAULT_ELEMENT_NAME);
+        final XMLObjectBuilder<G> gBuilder = builderFactory.ensureBuilder(G.DEFAULT_ELEMENT_NAME);
+        final XMLObjectBuilder<P> pBuilder = builderFactory.ensureBuilder(P.DEFAULT_ELEMENT_NAME);
+        final XMLObjectBuilder<Q> qBuilder = builderFactory.ensureBuilder(Q.DEFAULT_ELEMENT_NAME);
         
         final Y y = yBuilder.buildObject(Y.DEFAULT_ELEMENT_NAME);
         final G g = gBuilder.buildObject(G.DEFAULT_ELEMENT_NAME);
@@ -758,7 +758,7 @@ public class KeyInfoSupport {
         Constraint.isNotNull(pk, "Public key cannot be null");
         
         final XMLObjectBuilder<DEREncodedKeyValue> builder =
-                XMLObjectProviderRegistrySupport.getBuilderFactory().getBuilderOrThrow(
+                XMLObjectProviderRegistrySupport.getBuilderFactory().ensureBuilder(
                         DEREncodedKeyValue.DEFAULT_ELEMENT_NAME);
         final DEREncodedKeyValue keyValue = builder.buildObject(DEREncodedKeyValue.DEFAULT_ELEMENT_NAME);
         
diff --git a/opensaml-xmlsec-api/src/main/java/org/opensaml/xmlsec/signature/support/SignatureSupport.java b/opensaml-xmlsec-api/src/main/java/org/opensaml/xmlsec/signature/support/SignatureSupport.java
index 3567f813e..c5a64552b 100644
--- a/opensaml-xmlsec-api/src/main/java/org/opensaml/xmlsec/signature/support/SignatureSupport.java
+++ b/opensaml-xmlsec-api/src/main/java/org/opensaml/xmlsec/signature/support/SignatureSupport.java
@@ -277,7 +277,7 @@ public final class SignatureSupport {
         Constraint.isNotNull(parameters, "Signature signing parameters cannot be null");
 
         final XMLObjectBuilder<Signature> signatureBuilder =
-                XMLObjectProviderRegistrySupport.getBuilderFactory().getBuilderOrThrow(
+                XMLObjectProviderRegistrySupport.getBuilderFactory().ensureBuilder(
                         Signature.DEFAULT_ELEMENT_NAME);
         final Signature signature = signatureBuilder.buildObject(Signature.DEFAULT_ELEMENT_NAME);
 
diff --git a/opensaml-xmlsec-impl/src/main/java/org/opensaml/xmlsec/keyinfo/impl/BasicKeyInfoGeneratorFactory.java b/opensaml-xmlsec-impl/src/main/java/org/opensaml/xmlsec/keyinfo/impl/BasicKeyInfoGeneratorFactory.java
index 791a37bfb..6f841598b 100644
--- a/opensaml-xmlsec-impl/src/main/java/org/opensaml/xmlsec/keyinfo/impl/BasicKeyInfoGeneratorFactory.java
+++ b/opensaml-xmlsec-impl/src/main/java/org/opensaml/xmlsec/keyinfo/impl/BasicKeyInfoGeneratorFactory.java
@@ -252,7 +252,7 @@ public class BasicKeyInfoGeneratorFactory implements KeyInfoGeneratorFactory {
                         + keyInfoType.getClass().getName());
             }
             
-            final XMLObject xmlObject = builderFactory.getBuilderOrThrow(elementName).buildObject(elementName);
+            final XMLObject xmlObject = builderFactory.ensureBuilder(elementName).buildObject(elementName);
             return KeyInfo.class.cast(xmlObject);
         }
         
diff --git a/opensaml-xmlsec-impl/src/main/java/org/opensaml/xmlsec/keyinfo/impl/KeyAgreementKeyInfoGeneratorFactory.java b/opensaml-xmlsec-impl/src/main/java/org/opensaml/xmlsec/keyinfo/impl/KeyAgreementKeyInfoGeneratorFactory.java
index ad5ae4a1e..e7bb7ad70 100644
--- a/opensaml-xmlsec-impl/src/main/java/org/opensaml/xmlsec/keyinfo/impl/KeyAgreementKeyInfoGeneratorFactory.java
+++ b/opensaml-xmlsec-impl/src/main/java/org/opensaml/xmlsec/keyinfo/impl/KeyAgreementKeyInfoGeneratorFactory.java
@@ -182,7 +182,7 @@ public class KeyAgreementKeyInfoGeneratorFactory extends BasicKeyInfoGeneratorFa
             super(newOptions, type);
             options = newOptions;
             
-            agreementMethodBuilder = XMLObjectProviderRegistrySupport.getBuilderFactory().getBuilderOrThrow(
+            agreementMethodBuilder = XMLObjectProviderRegistrySupport.getBuilderFactory().ensureBuilder(
                     AgreementMethod.DEFAULT_ELEMENT_NAME);
         }
 
diff --git a/opensaml-xmlsec-impl/src/main/java/org/opensaml/xmlsec/keyinfo/impl/X509KeyInfoGeneratorFactory.java b/opensaml-xmlsec-impl/src/main/java/org/opensaml/xmlsec/keyinfo/impl/X509KeyInfoGeneratorFactory.java
index 54db85c5f..6101099ec 100644
--- a/opensaml-xmlsec-impl/src/main/java/org/opensaml/xmlsec/keyinfo/impl/X509KeyInfoGeneratorFactory.java
+++ b/opensaml-xmlsec-impl/src/main/java/org/opensaml/xmlsec/keyinfo/impl/X509KeyInfoGeneratorFactory.java
@@ -412,7 +412,7 @@ public class X509KeyInfoGeneratorFactory extends BasicKeyInfoGeneratorFactory {
             super(newOptions, type);
             options = newOptions;
             
-            x509DataBuilder = XMLObjectProviderRegistrySupport.getBuilderFactory().getBuilderOrThrow(
+            x509DataBuilder = XMLObjectProviderRegistrySupport.getBuilderFactory().ensureBuilder(
                     X509Data.DEFAULT_ELEMENT_NAME);
         }
 
diff --git a/opensaml-xmlsec-impl/src/test/java/org/opensaml/xmlsec/encryption/impl/MGFTest.java b/opensaml-xmlsec-impl/src/test/java/org/opensaml/xmlsec/encryption/impl/MGFTest.java
index 7cdc5c4ff..3a9d4dfbe 100644
--- a/opensaml-xmlsec-impl/src/test/java/org/opensaml/xmlsec/encryption/impl/MGFTest.java
+++ b/opensaml-xmlsec-impl/src/test/java/org/opensaml/xmlsec/encryption/impl/MGFTest.java
@@ -88,7 +88,7 @@ public class MGFTest extends XMLObjectProviderBaseTestCase {
         
         mgf.setAlgorithm(expectedAlgorithm);
         
-        XMLObjectBuilder<XSAny> xsAnyBuilder = builderFactory.getBuilderOrThrow(XSAny.TYPE_NAME);
+        XMLObjectBuilder<XSAny> xsAnyBuilder = builderFactory.ensureBuilder(XSAny.TYPE_NAME);
         XSAny parameters = xsAnyBuilder.buildObject(Parameters.DEFAULT_ELEMENT_NAME);
         parameters.setTextContent(expectedParametersContent);
         mgf.setParameters(parameters);
diff --git a/opensaml-xmlsec-impl/src/test/java/org/opensaml/xmlsec/encryption/impl/OtherSourceTest.java b/opensaml-xmlsec-impl/src/test/java/org/opensaml/xmlsec/encryption/impl/OtherSourceTest.java
index 5a80fafe8..97232cebd 100644
--- a/opensaml-xmlsec-impl/src/test/java/org/opensaml/xmlsec/encryption/impl/OtherSourceTest.java
+++ b/opensaml-xmlsec-impl/src/test/java/org/opensaml/xmlsec/encryption/impl/OtherSourceTest.java
@@ -88,7 +88,7 @@ public class OtherSourceTest extends XMLObjectProviderBaseTestCase {
         
         otherSource.setAlgorithm(expectedAlgorithm);
         
-        XMLObjectBuilder<XSAny> xsAnyBuilder = builderFactory.getBuilderOrThrow(XSAny.TYPE_NAME);
+        XMLObjectBuilder<XSAny> xsAnyBuilder = builderFactory.ensureBuilder(XSAny.TYPE_NAME);
         XSAny parameters = xsAnyBuilder.buildObject(Parameters.DEFAULT_ELEMENT_NAME);
         parameters.setTextContent(expectedParametersContent);
         otherSource.setParameters(parameters);
diff --git a/opensaml-xmlsec-impl/src/test/java/org/opensaml/xmlsec/encryption/impl/PRFTest.java b/opensaml-xmlsec-impl/src/test/java/org/opensaml/xmlsec/encryption/impl/PRFTest.java
index 81f011a6b..c6b62d1f6 100644
--- a/opensaml-xmlsec-impl/src/test/java/org/opensaml/xmlsec/encryption/impl/PRFTest.java
+++ b/opensaml-xmlsec-impl/src/test/java/org/opensaml/xmlsec/encryption/impl/PRFTest.java
@@ -88,7 +88,7 @@ public class PRFTest extends XMLObjectProviderBaseTestCase {
         
         prf.setAlgorithm(expectedAlgorithm);
         
-        XMLObjectBuilder<XSAny> xsAnyBuilder = builderFactory.getBuilderOrThrow(XSAny.TYPE_NAME);
+        XMLObjectBuilder<XSAny> xsAnyBuilder = builderFactory.ensureBuilder(XSAny.TYPE_NAME);
         XSAny parameters = xsAnyBuilder.buildObject(Parameters.DEFAULT_ELEMENT_NAME);
         parameters.setTextContent(expectedParametersContent);
         prf.setParameters(parameters);
diff --git a/opensaml-xmlsec-impl/src/test/java/org/opensaml/xmlsec/signature/support/tests/DetachedSignatureTest.java b/opensaml-xmlsec-impl/src/test/java/org/opensaml/xmlsec/signature/support/tests/DetachedSignatureTest.java
index 2e610161e..308930e57 100644
--- a/opensaml-xmlsec-impl/src/test/java/org/opensaml/xmlsec/signature/support/tests/DetachedSignatureTest.java
+++ b/opensaml-xmlsec-impl/src/test/java/org/opensaml/xmlsec/signature/support/tests/DetachedSignatureTest.java
@@ -83,7 +83,7 @@ public class DetachedSignatureTest extends XMLObjectBaseTestCase {
         badCredential = CredentialSupport.getSimpleCredential(keyPair.getPublic(), null);
 
         sxoBuilder = new SignableSimpleXMLObjectBuilder();
-        sigBuilder = XMLObjectProviderRegistrySupport.getBuilderFactory().<Signature>getBuilderOrThrow(
+        sigBuilder = XMLObjectProviderRegistrySupport.getBuilderFactory().<Signature>ensureBuilder(
                 Signature.DEFAULT_ELEMENT_NAME);
 
         parserPool = new BasicParserPool();
diff --git a/opensaml-xmlsec-impl/src/test/java/org/opensaml/xmlsec/signature/support/tests/EnvelopedSignatureTest.java b/opensaml-xmlsec-impl/src/test/java/org/opensaml/xmlsec/signature/support/tests/EnvelopedSignatureTest.java
index 9ac81be44..8254b960c 100644
--- a/opensaml-xmlsec-impl/src/test/java/org/opensaml/xmlsec/signature/support/tests/EnvelopedSignatureTest.java
+++ b/opensaml-xmlsec-impl/src/test/java/org/opensaml/xmlsec/signature/support/tests/EnvelopedSignatureTest.java
@@ -86,7 +86,7 @@ public class EnvelopedSignatureTest extends XMLObjectBaseTestCase {
         badCredential = CredentialSupport.getSimpleCredential(keyPair.getPublic(), null);
 
         sxoBuilder = new SignableSimpleXMLObjectBuilder();
-        sigBuilder = XMLObjectProviderRegistrySupport.getBuilderFactory().<Signature>getBuilderOrThrow(
+        sigBuilder = XMLObjectProviderRegistrySupport.getBuilderFactory().<Signature>ensureBuilder(
                 Signature.DEFAULT_ELEMENT_NAME);
     }
 
diff --git a/opensaml-xmlsec-impl/src/test/java/org/opensaml/xmlsec/signature/support/tests/HMACSignatureTest.java b/opensaml-xmlsec-impl/src/test/java/org/opensaml/xmlsec/signature/support/tests/HMACSignatureTest.java
index 6f4a933c7..d22acfa60 100644
--- a/opensaml-xmlsec-impl/src/test/java/org/opensaml/xmlsec/signature/support/tests/HMACSignatureTest.java
+++ b/opensaml-xmlsec-impl/src/test/java/org/opensaml/xmlsec/signature/support/tests/HMACSignatureTest.java
@@ -104,9 +104,9 @@ public class HMACSignatureTest extends XMLObjectBaseTestCase {
         badCredential = CredentialSupport.getSimpleCredential(key);
 
         sxoBuilder = new SignableSimpleXMLObjectBuilder();
-        sigBuilder = XMLObjectProviderRegistrySupport.getBuilderFactory().<Signature>getBuilderOrThrow(
+        sigBuilder = XMLObjectProviderRegistrySupport.getBuilderFactory().<Signature>ensureBuilder(
                 Signature.DEFAULT_ELEMENT_NAME);
-        keyInfoBuilder = XMLObjectProviderRegistrySupport.getBuilderFactory().<KeyInfo>getBuilderOrThrow(
+        keyInfoBuilder = XMLObjectProviderRegistrySupport.getBuilderFactory().<KeyInfo>ensureBuilder(
                 KeyInfo.DEFAULT_ELEMENT_NAME);
     }
 

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


More information about the commits mailing list