[java-identity-provider] branch main updated: JSPT-98 Integrate lifecycle checking methods in base classes

Rod Widdowson rdw at steadingsoftware.com
Sat Jul 16 10:31:42 UTC 2022


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

rdw pushed a commit to branch main
in repository java-identity-provider.

View the commit online:
http://git.shibboleth.net/view/?p=java-identity-provider.git;a=commit;h=2dbecb87cf7ffba291721d196ecf17a5e25f6052

The following commit(s) were added to refs/heads/main by this push:
     new 2dbecb87c JSPT-98 Integrate lifecycle checking methods in base classes
2dbecb87c is described below

commit 2dbecb87cf7ffba291721d196ecf17a5e25f6052
Author: Rod Widdowson <rdw at steadingsoftware.com>
AuthorDate: Fri Jul 15 16:22:03 2022 +0100

    JSPT-98 Integrate lifecycle checking methods in base classes
    
    https://shibboleth.atlassian.net/browse/JSPT-98
    
    rename methods
            throwSetterPreconditionExceptions -> checkSetterPreconditions
            throwComponentStateExceptions -> checkComponentActive
---
 .../shibboleth/idp/log/LogbackLoggingService.java  |  2 +-
 .../idp/admin/impl/DoStorageOperation.java         |  2 +-
 ...InitializeAdministrativeProfileContextTree.java |  4 +--
 .../shibboleth/idp/admin/impl/OutputMetrics.java   | 14 ++++----
 .../idp/admin/impl/UnlockDataSealers.java          |  2 +-
 .../idp/admin/impl/UnlockPrivateKeys.java          |  4 +--
 .../idp/authn/AbstractAuthenticationAction.java    |  2 +-
 .../idp/authn/AbstractCredentialValidator.java     |  6 ++--
 .../idp/authn/AbstractExtractionAction.java        |  8 ++---
 .../AbstractSubjectCanonicalizationAction.java     | 10 +++---
 ...bstractUsernamePasswordCredentialValidator.java | 18 +++++-----
 .../idp/authn/AbstractValidationAction.java        | 16 ++++-----
 .../idp/authn/AuthenticationFlowDescriptor.java    | 28 +++++++--------
 .../SubjectCanonicalizationFlowDescriptor.java     |  2 +-
 .../idp/authn/duo/BasicDuoIntegration.java         | 10 +++---
 .../principal/GenericPrincipalSerializer.java      |  6 ++--
 .../authn/principal/SealedPrincipalSerializer.java |  2 +-
 .../SubjectDerivedAttributeValuesFunction.java     |  8 ++---
 .../impl/SubjectDerivedAttributesFunction.java     |  6 ++--
 .../context/impl/SubjectScriptContextExtender.java |  4 +--
 .../authn/duo/impl/AbstractDuoAuthenticator.java   |  6 ++--
 .../impl/ExtractDuoAuthenticationFromHeaders.java  | 12 +++----
 .../idp/authn/duo/impl/ValidateDuoAuthAPI.java     | 10 +++---
 .../idp/authn/duo/impl/ValidateDuoWebResponse.java |  6 ++--
 .../AttributeSourcedSubjectCanonicalization.java   |  8 ++---
 .../DefaultAuthenticationResultSerializer.java     |  4 +--
 .../idp/authn/impl/DoLockoutManagerOperation.java  |  2 +-
 .../idp/authn/impl/ExtractRemoteUser.java          |  6 ++--
 .../ExtractUsernamePasswordFromFormRequest.java    |  6 ++--
 .../impl/FinalizeMultiFactorAuthentication.java    | 10 +++---
 .../authn/impl/HTPasswdCredentialValidator.java    |  2 +-
 .../impl/InitializeRequestedPrincipalContext.java  |  4 +--
 .../idp/authn/impl/JAASCredentialValidator.java    | 12 +++----
 .../authn/impl/KerberosCredentialValidator.java    | 10 +++---
 .../idp/authn/impl/LDAPCredentialValidator.java    |  6 ++--
 .../authn/impl/PopulateAuthenticationContext.java  | 10 +++---
 .../PopulateMultiFactorAuthenticationContext.java  |  6 ++--
 .../PopulateSubjectCanonicalizationContext.java    |  2 +-
 .../impl/PreserveAuthenticationFlowState.java      |  2 +-
 .../idp/authn/impl/SelectAuthenticationFlow.java   |  2 +-
 .../impl/StorageBackedAccountLockoutManager.java   | 18 +++++-----
 .../impl/TransitionMultiFactorAuthentication.java  |  6 ++--
 .../idp/authn/impl/ValidateCredentials.java        |  6 ++--
 .../authn/impl/ValidateExternalAuthentication.java |  4 +--
 .../idp/authn/impl/ValidateFunctionResult.java     |  2 +-
 .../idp/authn/impl/ValidateRemoteUser.java         |  6 ++--
 .../idp/authn/impl/ValidateUserAgentAddress.java   |  2 +-
 .../authn/impl/X500SubjectCanonicalization.java    |  4 +--
 .../impl/X509CertificateCredentialValidator.java   |  6 ++--
 .../impl/DiscoveryProfileRequestFunction.java      |  4 +--
 .../impl/InitializeProxyProfileRequestContext.java |  8 ++---
 .../authn/spnego/impl/KerberosRealmSettings.java   |  6 ++--
 .../authn/spnego/impl/SPNEGOAutoLoginManager.java  |  4 +--
 .../impl/AbstractOutgoingSamlMessageAction.java    |  2 +-
 .../flow/impl/BuildSAMLMetadataContextAction.java  |  2 +-
 .../idp/cas/flow/impl/GrantProxyTicketAction.java  |  2 +-
 .../cas/flow/impl/GrantServiceTicketAction.java    |  2 +-
 .../PrepareTicketValidationResponseAction.java     |  2 +-
 .../ar/impl/AttributeReleaseFlowDescriptor.java    |  8 ++---
 .../consent/flow/impl/ConsentFlowDescriptor.java   | 10 +++---
 .../impl/AbstractConsentIndexedStorageAction.java  |  6 ++--
 .../storage/impl/AbstractConsentStorageAction.java |  6 ++--
 .../consent/flow/storage/impl/RevokeConsent.java   |  2 +-
 .../idp/consent/logic/impl/AttributePredicate.java |  6 ++--
 .../logic/impl/CounterStorageKeyFunction.java      |  4 +--
 .../logic/impl/MessageSourceConsentFunction.java   |  8 ++---
 .../consent/storage/impl/ConsentSerializer.java    |  2 +-
 .../idp/spring/DeprecatedPropertyBean.java         |  4 +--
 .../shibboleth/idp/spring/OpenSAMLConfigBean.java  |  4 +--
 .../net/shibboleth/idp/installer/BuildWar.java     |  2 +-
 .../shibboleth/idp/installer/CopyDistribution.java |  2 +-
 .../idp/installer/InstallerPropertiesImpl.java     |  2 +-
 .../net/shibboleth/idp/installer/V4Install.java    |  6 ++--
 .../metadata/impl/MetadataGeneratorImpl.java       |  6 ++--
 .../idp/installer/plugin/impl/PluginInstaller.java |  6 ++--
 .../idp/installer/plugin/impl/PluginState.java     |  2 +-
 .../idp/installer/plugin/impl/TrustStore.java      |  8 ++---
 .../idp/profile/AbstractProfileAction.java         |  4 +--
 .../net/shibboleth/idp/profile/ScriptedAction.java |  4 +--
 .../AbstractProfileInterceptorAction.java          |  2 +-
 .../ProfileInterceptorFlowDescriptor.java          |  6 ++--
 .../relyingparty/RelyingPartyConfiguration.java    | 14 ++++----
 .../profile/audit/impl/PopulateAuditContext.java   | 12 +++----
 .../idp/profile/audit/impl/WriteAuditLog.java      |  8 ++---
 .../idp/profile/impl/FilterAttributes.java         | 22 ++++++------
 .../impl/InitializeProfileRequestContext.java      | 12 +++----
 .../idp/profile/impl/PopulateSubjectContext.java   |  2 +-
 .../profile/impl/ReloadServiceConfiguration.java   |  2 +-
 .../idp/profile/impl/ResolveAttributes.java        | 22 ++++++------
 .../profile/impl/SelectProfileConfiguration.java   |  6 ++--
 .../impl/SelectRelyingPartyConfiguration.java      |  4 +--
 .../impl/PopulateProfileInterceptorContext.java    |  6 ++--
 .../messaging/impl/SelectProfileConfiguration.java |  4 +--
 .../impl/SelectRelyingPartyConfiguration.java      |  4 +--
 .../impl/CriteriaSelfEntityIDResolver.java         |  6 ++--
 .../DefaultRelyingPartyConfigurationResolver.java  | 18 +++++-----
 ...gCriteriaRelyingPartyConfigurationResolver.java |  8 ++---
 ...ReloadingRelyingPartyConfigurationResolver.java |  6 ++--
 ...tractCollectionConfigurationLookupStrategy.java |  2 +-
 ...tMetadataDrivenConfigurationLookupStrategy.java | 20 +++++------
 .../config/BeanConfigurationLookupStrategy.java    |  4 +--
 .../idp/saml/audit/impl/WriteFTICKSLog.java        | 10 +++---
 .../InitializeRelyingPartyContextFromSAMLPeer.java |  4 +--
 ...tributeSourcedSAML1NameIdentifierGenerator.java |  6 ++--
 .../impl/AttributeSourcedSAML2NameIDGenerator.java |  6 ++--
 .../nameid/impl/BaseCryptoTransientDecoder.java    |  4 +--
 .../saml/nameid/impl/BaseTransformingDecoder.java  |  8 ++---
 .../idp/saml/nameid/impl/BaseTransientDecoder.java |  4 +--
 .../impl/CryptoTransientIdGenerationStrategy.java  |  6 ++--
 .../saml/nameid/impl/NameIDCanonicalization.java   |  2 +-
 .../impl/NameIdentifierCanonicalization.java       |  2 +-
 .../impl/PersistentSAML2NameIDGenerator.java       | 10 +++---
 .../nameid/impl/StoredPersistentIdDecoder.java     |  6 ++--
 .../impl/StoredTransientIdGenerationStrategy.java  | 10 +++---
 .../TransientSAML1NameIdentifierGenerator.java     |  4 +--
 .../nameid/impl/TransientSAML2NameIDGenerator.java |  4 +--
 .../impl/BaseAddAttributeStatementToAssertion.java | 12 +++----
 .../BaseAddAuthenticationStatementToAssertion.java |  8 ++---
 .../profile/impl/ExtractSubjectFromRequest.java    |  6 ++--
 .../impl/InitializeAuthenticationContext.java      | 10 +++---
 .../impl/InitializeOutboundMessageContext.java     |  4 +--
 .../InitializeOutboundMessageContextForError.java  |  2 +-
 .../InitializeRelyingPartyContextFromSAMLPeer.java |  4 +--
 .../impl/PopulateBindingAndEndpointContexts.java   | 20 +++++------
 .../PopulateInboundMessageContextWithSAMLSelf.java |  2 +-
 .../idp/saml/profile/impl/ReloadMetadata.java      |  2 +-
 .../impl/SpringAwareMessageDecoderFactory.java     |  4 +--
 .../impl/SpringAwareMessageEncoderFactory.java     |  2 +-
 .../profile/impl/UpdateSAMLSelfEntityContext.java  |  2 +-
 .../impl/AddAttributeStatementToAssertion.java     |  2 +-
 .../AddAuthenticationStatementToAssertion.java     |  4 +--
 .../impl/FilterByQueriedAttributeDesignators.java  |  6 ++--
 .../impl/AddAttributeStatementToAssertion.java     |  2 +-
 .../saml/saml2/profile/impl/AddAuthnRequest.java   |  6 ++--
 .../profile/impl/AddAuthnStatementToAssertion.java |  8 ++---
 .../profile/impl/FilterByQueriedAttributes.java    |  6 ++--
 .../profile/impl/PopulateEncryptionParameters.java | 10 +++---
 .../profile/impl/PreProcessLogoutMessage.java      |  4 +--
 .../impl/ProcessAssertionsForAuthentication.java   |  8 ++---
 .../saml2/profile/impl/ProcessLogoutRequest.java   | 18 +++++-----
 .../profile/impl/ProcessRequestedAuthnContext.java |  8 ++---
 .../saml2/profile/impl/SAMLAuthnController.java    |  6 ++--
 .../saml/saml2/profile/impl/SOAPLogoutRequest.java | 12 +++----
 .../profile/impl/ValidateSAMLAuthentication.java   | 12 +++----
 .../idp/saml/session/impl/AddLogoutRequest.java    | 10 +++---
 .../session/impl/PrepareInboundMessageContext.java |  4 +--
 .../session/impl/SAML2SPSessionSerializer.java     |  2 +-
 .../idp/saml/impl/testing/TestSources.java         |  2 +-
 .../idp/session/SPSessionSerializerRegistry.java   |  4 +--
 .../idp/session/impl/DestroySessions.java          |  6 ++--
 .../idp/session/impl/DetectIdentitySwitch.java     |  6 ++--
 .../impl/ExtractActiveAuthenticationResults.java   |  2 +-
 .../impl/PopulateLogoutPropagationContext.java     |  8 ++---
 .../PopulateMultiRPContextFromLogoutContext.java   |  6 ++--
 .../idp/session/impl/PopulateSessionContext.java   |  6 ++--
 .../shibboleth/idp/session/impl/ProcessLogout.java | 10 +++---
 .../session/impl/StorageBackedSessionManager.java  | 40 +++++++++++-----------
 .../UpdateSessionWithAuthenticationResult.java     |  6 ++--
 .../session/impl/UpdateSessionWithSPSession.java   |  4 +--
 .../csrf/impl/CSRFTokenFlowExecutionListener.java  |  8 ++---
 .../shibboleth/idp/ui/impl/SetRPUIInformation.java |  6 ++--
 161 files changed, 532 insertions(+), 532 deletions(-)

diff --git a/idp-admin-api/src/main/java/net/shibboleth/idp/log/LogbackLoggingService.java b/idp-admin-api/src/main/java/net/shibboleth/idp/log/LogbackLoggingService.java
index 226bde911..4b504991c 100644
--- a/idp-admin-api/src/main/java/net/shibboleth/idp/log/LogbackLoggingService.java
+++ b/idp-admin-api/src/main/java/net/shibboleth/idp/log/LogbackLoggingService.java
@@ -89,7 +89,7 @@ public class LogbackLoggingService extends AbstractReloadableService<Object>
 
     /** {@inheritDoc} */
     @Override public void setLoggingConfiguration(@Nonnull final Resource configuration) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
 
         configurationResource = Constraint.isNotNull(configuration, "Logging configuration resource cannot be null");
     }
diff --git a/idp-admin-impl/src/main/java/net/shibboleth/idp/admin/impl/DoStorageOperation.java b/idp-admin-impl/src/main/java/net/shibboleth/idp/admin/impl/DoStorageOperation.java
index d0d7cfe39..bf1e8e194 100644
--- a/idp-admin-impl/src/main/java/net/shibboleth/idp/admin/impl/DoStorageOperation.java
+++ b/idp-admin-impl/src/main/java/net/shibboleth/idp/admin/impl/DoStorageOperation.java
@@ -91,7 +91,7 @@ public class DoStorageOperation extends AbstractProfileAction {
      * @param mapper object mapper
      */
     public void setObjectMapper(@Nonnull final ObjectMapper mapper) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         objectMapper = Constraint.isNotNull(mapper, "ObjectMapper cannot be null");
     }
 
diff --git a/idp-admin-impl/src/main/java/net/shibboleth/idp/admin/impl/InitializeAdministrativeProfileContextTree.java b/idp-admin-impl/src/main/java/net/shibboleth/idp/admin/impl/InitializeAdministrativeProfileContextTree.java
index 7cf6187e8..8298fa637 100644
--- a/idp-admin-impl/src/main/java/net/shibboleth/idp/admin/impl/InitializeAdministrativeProfileContextTree.java
+++ b/idp-admin-impl/src/main/java/net/shibboleth/idp/admin/impl/InitializeAdministrativeProfileContextTree.java
@@ -67,7 +67,7 @@ public class InitializeAdministrativeProfileContextTree extends AbstractProfileA
      * @param descriptor the flow descriptor to base the action on
      */
     public void setAdministrativeFlowDescriptor(@Nullable final AdministrativeFlowDescriptor descriptor) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
 
         flowDescriptor = descriptor;
     }
@@ -78,7 +78,7 @@ public class InitializeAdministrativeProfileContextTree extends AbstractProfileA
      * @param langs a semi-colon separated string.
      */
     public void setFallbackLanguages(@Nonnull @NonnullElements final List<String> langs) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         
         if (langs != null) {
             fallbackLanguages = List.copyOf(langs);
diff --git a/idp-admin-impl/src/main/java/net/shibboleth/idp/admin/impl/OutputMetrics.java b/idp-admin-impl/src/main/java/net/shibboleth/idp/admin/impl/OutputMetrics.java
index 9cbe65043..00740d151 100644
--- a/idp-admin-impl/src/main/java/net/shibboleth/idp/admin/impl/OutputMetrics.java
+++ b/idp-admin-impl/src/main/java/net/shibboleth/idp/admin/impl/OutputMetrics.java
@@ -115,7 +115,7 @@ public class OutputMetrics extends AbstractProfileAction {
      * @param filter metric filter
      */
     public void setMetricFilter(@Nullable final MetricFilter filter) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         
         metricFilter = filter;
     }
@@ -126,7 +126,7 @@ public class OutputMetrics extends AbstractProfileAction {
      * @param registry metric registry
      */
     public void setMetricRegistry(@Nonnull final MetricRegistry registry) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         
         metricRegistry = Constraint.isNotNull(registry, "MetricRegistry cannot be null");
     }
@@ -137,7 +137,7 @@ public class OutputMetrics extends AbstractProfileAction {
      * @param origin header value
      */
     public void setAllowedOrigin(@Nullable final String origin) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         
         allowedOrigin = StringSupport.trimOrNull(origin);
     }
@@ -148,7 +148,7 @@ public class OutputMetrics extends AbstractProfileAction {
      * @param callbackName callback function name.
      */
     public void setJSONPCallbackName(@Nullable final String callbackName) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         
         jsonpCallbackName = StringSupport.trimOrNull(callbackName);
     }
@@ -159,7 +159,7 @@ public class OutputMetrics extends AbstractProfileAction {
      * @param format formatting string
      */
     public void setDateTimeFormat(@Nullable @NotEmpty final String format) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         
         if (format != null) {
             dateTimeFormatter = DateTimeFormatter.ofPattern(StringSupport.trimOrNull(format));
@@ -174,7 +174,7 @@ public class OutputMetrics extends AbstractProfileAction {
      * @since 4.1.0
      */
     public void setUseDefaultTimeZone(final boolean flag) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         
         useDefaultTimeZone = flag;
     }
@@ -185,7 +185,7 @@ public class OutputMetrics extends AbstractProfileAction {
      * @param map group to filter map
      */
     public void setMetricFilterMap(@Nonnull @NonnullElements final Map<String,MetricFilter> map) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         
         Constraint.isNotNull(map, "MetricFilter map cannot be null");
         metricFilterMap = new HashMap<>(map.size());
diff --git a/idp-admin-impl/src/main/java/net/shibboleth/idp/admin/impl/UnlockDataSealers.java b/idp-admin-impl/src/main/java/net/shibboleth/idp/admin/impl/UnlockDataSealers.java
index 36d2aa524..06c872788 100644
--- a/idp-admin-impl/src/main/java/net/shibboleth/idp/admin/impl/UnlockDataSealers.java
+++ b/idp-admin-impl/src/main/java/net/shibboleth/idp/admin/impl/UnlockDataSealers.java
@@ -77,7 +77,7 @@ public class UnlockDataSealers extends AbstractProfileAction {
      * @param strategies objects to unlock
      */
     public void setKeyStrategies(@Nullable @NonnullElements final Collection<BasicKeystoreKeyStrategy> strategies) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         
         if (strategies != null) {
             keyStrategies = List.copyOf(strategies);
diff --git a/idp-admin-impl/src/main/java/net/shibboleth/idp/admin/impl/UnlockPrivateKeys.java b/idp-admin-impl/src/main/java/net/shibboleth/idp/admin/impl/UnlockPrivateKeys.java
index e2cc28d32..bd3dd4f23 100644
--- a/idp-admin-impl/src/main/java/net/shibboleth/idp/admin/impl/UnlockPrivateKeys.java
+++ b/idp-admin-impl/src/main/java/net/shibboleth/idp/admin/impl/UnlockPrivateKeys.java
@@ -81,7 +81,7 @@ public class UnlockPrivateKeys extends AbstractProfileAction {
      * @param creds credentials to load keys into
      */
     public void setCredentials(@Nullable @NonnullElements final Collection<MutableCredential> creds) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         
         if (creds != null) {
             credentials = List.copyOf(creds);
@@ -96,7 +96,7 @@ public class UnlockPrivateKeys extends AbstractProfileAction {
      * @param keys key resources to load
      */
     public void setKeyResources(@Nullable @NonnullElements final Collection<Resource> keys) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         
         if (keys != null) {
             keyResources = List.copyOf(keys);
diff --git a/idp-authn-api/src/main/java/net/shibboleth/idp/authn/AbstractAuthenticationAction.java b/idp-authn-api/src/main/java/net/shibboleth/idp/authn/AbstractAuthenticationAction.java
index 6aebee7f3..db3da0658 100644
--- a/idp-authn-api/src/main/java/net/shibboleth/idp/authn/AbstractAuthenticationAction.java
+++ b/idp-authn-api/src/main/java/net/shibboleth/idp/authn/AbstractAuthenticationAction.java
@@ -65,7 +65,7 @@ public abstract class AbstractAuthenticationAction
      */
     public void setAuthenticationContextLookupStrategy(
             @Nonnull final Function<ProfileRequestContext,AuthenticationContext> strategy) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         
         authnCtxLookupStrategy = Constraint.isNotNull(strategy, "Strategy cannot be null");
     }
diff --git a/idp-authn-api/src/main/java/net/shibboleth/idp/authn/AbstractCredentialValidator.java b/idp-authn-api/src/main/java/net/shibboleth/idp/authn/AbstractCredentialValidator.java
index fb7b518f3..428bead2b 100644
--- a/idp-authn-api/src/main/java/net/shibboleth/idp/authn/AbstractCredentialValidator.java
+++ b/idp-authn-api/src/main/java/net/shibboleth/idp/authn/AbstractCredentialValidator.java
@@ -82,7 +82,7 @@ public abstract class AbstractCredentialValidator extends AbstractIdentifiedInit
      * @param condition condition to use
      */
     public void setActivationCondition(@Nonnull final Predicate<ProfileRequestContext> condition) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         
         activationCondition = Constraint.isNotNull(condition, "Activation condition cannot be null");
     }
@@ -101,7 +101,7 @@ public abstract class AbstractCredentialValidator extends AbstractIdentifiedInit
      * @param principals supported principals to include
      */
     public void setSupportedPrincipals(@Nullable @NonnullElements final Collection<Principal> principals) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         
         if (principals != null) {
             final Collection<Principal> copy = Set.copyOf(principals);
@@ -122,7 +122,7 @@ public abstract class AbstractCredentialValidator extends AbstractIdentifiedInit
             @Nonnull final AuthenticationContext authenticationContext,
             @Nullable final WarningHandler warningHandler,
             @Nullable final ErrorHandler errorHandler) throws Exception {
-        throwComponentStateExceptions();
+        checkComponentActive();
         
         if (!activationCondition.test(profileRequestContext)) {
             log.debug("{} Activation condition was false, ignoring request", getLogPrefix());
diff --git a/idp-authn-api/src/main/java/net/shibboleth/idp/authn/AbstractExtractionAction.java b/idp-authn-api/src/main/java/net/shibboleth/idp/authn/AbstractExtractionAction.java
index fc016519b..1b52d733b 100644
--- a/idp-authn-api/src/main/java/net/shibboleth/idp/authn/AbstractExtractionAction.java
+++ b/idp-authn-api/src/main/java/net/shibboleth/idp/authn/AbstractExtractionAction.java
@@ -74,7 +74,7 @@ public abstract class AbstractExtractionAction extends AbstractAuthenticationAct
      * @param newTransforms collection of replacement transforms
      */
     public void setTransforms(@Nullable @NonnullElements final Collection<Pair<String, String>> newTransforms) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         if (newTransforms != null) {
             transforms = new ArrayList<>();
             for (final Pair<String,String> p : newTransforms) {
@@ -93,7 +93,7 @@ public abstract class AbstractExtractionAction extends AbstractAuthenticationAct
      * @param flag  uppercase flag
      */
     public void setUppercase(final boolean flag) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         uppercase = flag;
     }
 
@@ -103,7 +103,7 @@ public abstract class AbstractExtractionAction extends AbstractAuthenticationAct
      * @param flag lowercase flag
      */
     public void setLowercase(final boolean flag) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         lowercase = flag;
     }
     
@@ -113,7 +113,7 @@ public abstract class AbstractExtractionAction extends AbstractAuthenticationAct
      * @param flag trim flag
      */
     public void setTrim(final boolean flag) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         trim = flag;
     }
     
diff --git a/idp-authn-api/src/main/java/net/shibboleth/idp/authn/AbstractSubjectCanonicalizationAction.java b/idp-authn-api/src/main/java/net/shibboleth/idp/authn/AbstractSubjectCanonicalizationAction.java
index 91d251a59..ebb44204f 100644
--- a/idp-authn-api/src/main/java/net/shibboleth/idp/authn/AbstractSubjectCanonicalizationAction.java
+++ b/idp-authn-api/src/main/java/net/shibboleth/idp/authn/AbstractSubjectCanonicalizationAction.java
@@ -97,7 +97,7 @@ public abstract class AbstractSubjectCanonicalizationAction
      */
     public void setLookupStrategy(
             @Nonnull final Function<ProfileRequestContext,SubjectCanonicalizationContext> strategy) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         scCtxLookupStrategy = Constraint.isNotNull(strategy, "Strategy cannot be null");
     }
 
@@ -107,7 +107,7 @@ public abstract class AbstractSubjectCanonicalizationAction
      * @param newTransforms collection of replacement transforms
      */
     public void setTransforms(@Nullable @NonnullElements final Collection<Pair<String, String>> newTransforms) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         if (newTransforms != null) {
             transforms = new ArrayList<>();
             for (final Pair<String,String> p : newTransforms) {
@@ -126,7 +126,7 @@ public abstract class AbstractSubjectCanonicalizationAction
      * @param flag  uppercase flag
      */
     public void setUppercase(final boolean flag) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         uppercase = flag;
     }
 
@@ -136,7 +136,7 @@ public abstract class AbstractSubjectCanonicalizationAction
      * @param flag lowercase flag
      */
     public void setLowercase(final boolean flag) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         lowercase = flag;
     }
     
@@ -146,7 +146,7 @@ public abstract class AbstractSubjectCanonicalizationAction
      * @param flag trim flag
      */
     public void setTrim(final boolean flag) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         trim = flag;
     }
     
diff --git a/idp-authn-api/src/main/java/net/shibboleth/idp/authn/AbstractUsernamePasswordCredentialValidator.java b/idp-authn-api/src/main/java/net/shibboleth/idp/authn/AbstractUsernamePasswordCredentialValidator.java
index bda6302f4..9dc8c353d 100644
--- a/idp-authn-api/src/main/java/net/shibboleth/idp/authn/AbstractUsernamePasswordCredentialValidator.java
+++ b/idp-authn-api/src/main/java/net/shibboleth/idp/authn/AbstractUsernamePasswordCredentialValidator.java
@@ -103,7 +103,7 @@ public abstract class AbstractUsernamePasswordCredentialValidator extends Abstra
      */
     public void setUsernamePasswordContextLookupStrategy(
             @Nonnull final Function<AuthenticationContext,UsernamePasswordContext> strategy) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         usernamePasswordContextLookupStrategy = Constraint.isNotNull(strategy,
                 "UsernamePasswordContextLookupStrategy cannot be null");
     }
@@ -123,7 +123,7 @@ public abstract class AbstractUsernamePasswordCredentialValidator extends Abstra
      * @param flag  flag to set
      */
     public void setSavePasswordToCredentialSet(final boolean flag) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         savePasswordToCredentialSet = flag;
     }
 
@@ -152,7 +152,7 @@ public abstract class AbstractUsernamePasswordCredentialValidator extends Abstra
      */
     @Deprecated(since="4.1.0", forRemoval=true)
     public void setRemoveContextAfterValidation(final boolean flag) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         removeContextAfterValidation = flag;
     }
 
@@ -162,7 +162,7 @@ public abstract class AbstractUsernamePasswordCredentialValidator extends Abstra
      * @param expression a matching expression
      */
     public void setMatchExpression(@Nullable final Pattern expression) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         if (expression != null && !expression.pattern().isEmpty()) {
             matchExpression = expression;
         } else {
@@ -176,7 +176,7 @@ public abstract class AbstractUsernamePasswordCredentialValidator extends Abstra
      * @param newTransforms collection of replacement transforms
      */
     public void setTransforms(@Nullable @NonnullElements final Collection<Pair<String,String>> newTransforms) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         if (newTransforms != null) {
             transforms = new ArrayList<>();
             for (final Pair<String,String> p : newTransforms) {
@@ -195,7 +195,7 @@ public abstract class AbstractUsernamePasswordCredentialValidator extends Abstra
      * @param flag  uppercase flag
      */
     public void setUppercase(final boolean flag) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         uppercase = flag;
     }
 
@@ -205,7 +205,7 @@ public abstract class AbstractUsernamePasswordCredentialValidator extends Abstra
      * @param flag lowercase flag
      */
     public void setLowercase(final boolean flag) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         lowercase = flag;
     }
     
@@ -215,7 +215,7 @@ public abstract class AbstractUsernamePasswordCredentialValidator extends Abstra
      * @param flag trim flag
      */
     public void setTrim(final boolean flag) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         trim = flag;
     }
     
@@ -225,7 +225,7 @@ public abstract class AbstractUsernamePasswordCredentialValidator extends Abstra
             @Nonnull final AuthenticationContext authenticationContext,
             @Nullable final WarningHandler warningHandler,
             @Nullable final ErrorHandler errorHandler) throws Exception {
-        throwComponentStateExceptions();
+        checkComponentActive();
         
         final UsernamePasswordContext upContext = usernamePasswordContextLookupStrategy.apply(authenticationContext);
         if (upContext == null) {
diff --git a/idp-authn-api/src/main/java/net/shibboleth/idp/authn/AbstractValidationAction.java b/idp-authn-api/src/main/java/net/shibboleth/idp/authn/AbstractValidationAction.java
index bd0be798b..48d47a6ff 100644
--- a/idp-authn-api/src/main/java/net/shibboleth/idp/authn/AbstractValidationAction.java
+++ b/idp-authn-api/src/main/java/net/shibboleth/idp/authn/AbstractValidationAction.java
@@ -134,7 +134,7 @@ public abstract class AbstractValidationAction extends AbstractAuthenticationAct
      * @since 3.3.0
      */
     public void setMetricName(@Nonnull @NotEmpty final String name) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         metricName = Constraint.isNotNull(StringSupport.trimOrNull(name), "Metric name cannot be null or empty");
     }
     
@@ -156,7 +156,7 @@ public abstract class AbstractValidationAction extends AbstractAuthenticationAct
      * @param flag flag to set
      */
     public void setAddDefaultPrincipals(final boolean flag) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         addDefaultPrincipals = flag;
     }
     
@@ -180,7 +180,7 @@ public abstract class AbstractValidationAction extends AbstractAuthenticationAct
      * @param messages the error message / event mappings to set
      */
     public void setClassifiedMessages(@Nullable @NonnullElements final Map<String,Collection<String>> messages) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         if (messages != null) {
             classifiedMessages = new LinkedHashMap<>();
             for (final Map.Entry<String, Collection<String>> entry : messages.entrySet()) {
@@ -209,7 +209,7 @@ public abstract class AbstractValidationAction extends AbstractAuthenticationAct
      * @param predicate predicate to apply, or null
      */
     public void setResultCachingPredicate(@Nullable final Predicate<ProfileRequestContext> predicate) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         resultCachingPredicate = predicate;
     }
     
@@ -232,7 +232,7 @@ public abstract class AbstractValidationAction extends AbstractAuthenticationAct
      * @since 4.1.0
      */
     public void setCleanupHook(@Nullable final Consumer<ProfileRequestContext> hook) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         cleanupHook = hook;
     }
     
@@ -253,7 +253,7 @@ public abstract class AbstractValidationAction extends AbstractAuthenticationAct
      * @param strategy lookup strategy
      */
     public void setRequesterLookupStrategy(@Nullable final Function<ProfileRequestContext,String> strategy) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         requesterLookupStrategy = strategy;
     }
     
@@ -275,7 +275,7 @@ public abstract class AbstractValidationAction extends AbstractAuthenticationAct
      */
     public void setResponderLookupStrategy(
             @Nullable final Function<ProfileRequestContext,String> strategy) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         responderLookupStrategy = strategy;
     }
     
@@ -295,7 +295,7 @@ public abstract class AbstractValidationAction extends AbstractAuthenticationAct
      * @param principals supported principals to include
      */
     public void setSupportedPrincipals(@Nullable @NonnullElements final Collection<Principal> principals) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         getSubject().getPrincipals().clear();
         
         if (principals != null && !principals.isEmpty()) {
diff --git a/idp-authn-api/src/main/java/net/shibboleth/idp/authn/AuthenticationFlowDescriptor.java b/idp-authn-api/src/main/java/net/shibboleth/idp/authn/AuthenticationFlowDescriptor.java
index dcde3666a..76eb27a96 100644
--- a/idp-authn-api/src/main/java/net/shibboleth/idp/authn/AuthenticationFlowDescriptor.java
+++ b/idp-authn-api/src/main/java/net/shibboleth/idp/authn/AuthenticationFlowDescriptor.java
@@ -173,7 +173,7 @@ public class AuthenticationFlowDescriptor extends AbstractIdentifiableInitializa
      * @param isSupported whether this flow supports non-browser clients
      */
     public void setNonBrowserSupported(final boolean isSupported) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         supportsNonBrowser = isSupported;
     }
 
@@ -192,7 +192,7 @@ public class AuthenticationFlowDescriptor extends AbstractIdentifiableInitializa
      * @param isSupported whether this flow supports passive authentication
      */
     public void setPassiveAuthenticationSupported(final boolean isSupported) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         supportsPassive = isSupported;
     }
 
@@ -211,7 +211,7 @@ public class AuthenticationFlowDescriptor extends AbstractIdentifiableInitializa
      * @param isSupported whether this flow supports forced authentication.
      */
     public void setForcedAuthenticationSupported(final boolean isSupported) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         supportsForced = isSupported;
     }
     
@@ -311,7 +311,7 @@ public class AuthenticationFlowDescriptor extends AbstractIdentifiableInitializa
      * @since 3.4.0
      */
     public void setReuseCondition(@Nonnull final Predicate<ProfileRequestContext> condition) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
 
         // Auto-installs a guard against use of a proxied result if requester proxy count is zero.
         reuseCondition = PredicateSupport.and(new ProxyCountPredicate(),
@@ -339,7 +339,7 @@ public class AuthenticationFlowDescriptor extends AbstractIdentifiableInitializa
      * @since 4.1.0
      */
     public void setSubjectDecorator(@Nullable final BiConsumer<ProfileRequestContext,Subject> decorator) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         subjectDecorator = decorator;
     }    
 
@@ -360,7 +360,7 @@ public class AuthenticationFlowDescriptor extends AbstractIdentifiableInitializa
      * @param flowLifetime the lifetime for the flow
      */
     public void setLifetime(@Nullable final Duration flowLifetime) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         Constraint.isFalse(flowLifetime != null && (flowLifetime.isNegative() || flowLifetime.isZero()),
                 "Lifetime must be null or greater than 0");
 
@@ -386,7 +386,7 @@ public class AuthenticationFlowDescriptor extends AbstractIdentifiableInitializa
      * @param timeout the flow inactivity timeout, must be greater than zero
      */
     public void setInactivityTimeout(@Nonnull final Duration timeout) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         Constraint.isNotNull(timeout, "Inactivity timeout cannot be null");
         Constraint.isFalse(timeout.isNegative() || timeout.isZero(), "Inactivity timeout must be greater than 0");
 
@@ -440,7 +440,7 @@ public class AuthenticationFlowDescriptor extends AbstractIdentifiableInitializa
      * @param principals supported principals to add
      */
     public void setSupportedPrincipals(@Nonnull @NonnullElements final Collection<Principal> principals) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         Constraint.isNotNull(principals, "Principal collection cannot be null.");
 
         supportedPrincipals.getPrincipals().clear();
@@ -460,7 +460,7 @@ public class AuthenticationFlowDescriptor extends AbstractIdentifiableInitializa
      * @since 4.1.0
      */
     public void setSupportedPrincipalsByString(@Nonnull @NonnullElements final Collection<String> principals) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         stringBasedPrincipals = Set.copyOf(StringSupport.normalizeStringCollection(principals));
     }
 
@@ -485,7 +485,7 @@ public class AuthenticationFlowDescriptor extends AbstractIdentifiableInitializa
      * @param serializer the custom serializer
      */
     public void setResultSerializer(@Nonnull final StorageSerializer<AuthenticationResult> serializer) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         resultSerializer = Constraint.isNotNull(serializer, "StorageSerializer cannot be null");
     }
     
@@ -501,7 +501,7 @@ public class AuthenticationFlowDescriptor extends AbstractIdentifiableInitializa
      * @since 4.0.0
      */
     public void setPrincipalWeightMap(@Nullable @NonnullElements final Map<Principal,Integer> map) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         principalWeightMap = map != null ? map : Collections.emptyMap();
     }
     
@@ -513,7 +513,7 @@ public class AuthenticationFlowDescriptor extends AbstractIdentifiableInitializa
      * @since 4.0.1
      */
     public void setPrincipalServiceManager(@Nullable final PrincipalServiceManager manager) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         principalServiceManager = manager;
     }
 
@@ -562,7 +562,7 @@ public class AuthenticationFlowDescriptor extends AbstractIdentifiableInitializa
     /** {@inheritDoc} */
     @Override @Nonnull @NotEmpty public String serialize(@Nonnull final AuthenticationResult instance)
             throws IOException {
-        throwComponentStateExceptions();
+        checkComponentActive();
 
         return resultSerializer.serialize(instance);
     }
@@ -572,7 +572,7 @@ public class AuthenticationFlowDescriptor extends AbstractIdentifiableInitializa
             @Nonnull @NotEmpty final String context, @Nonnull @NotEmpty final String key, 
             @Nonnull @NotEmpty final String value, @Nonnull final Long expiration)
             throws IOException {
-        throwComponentStateExceptions();
+        checkComponentActive();
 
         // Back the expiration off by the inactivity timeout to recover the last activity time.
         final AuthenticationResult result = resultSerializer.deserialize(version, context, key, value,
diff --git a/idp-authn-api/src/main/java/net/shibboleth/idp/authn/SubjectCanonicalizationFlowDescriptor.java b/idp-authn-api/src/main/java/net/shibboleth/idp/authn/SubjectCanonicalizationFlowDescriptor.java
index 7a3dd3206..35defb5d7 100644
--- a/idp-authn-api/src/main/java/net/shibboleth/idp/authn/SubjectCanonicalizationFlowDescriptor.java
+++ b/idp-authn-api/src/main/java/net/shibboleth/idp/authn/SubjectCanonicalizationFlowDescriptor.java
@@ -59,7 +59,7 @@ public class SubjectCanonicalizationFlowDescriptor extends AbstractIdentifiableI
      * @param condition predicate that controls activation of the flow
      */
     public void setActivationCondition(@Nonnull final Predicate<ProfileRequestContext> condition) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         activationCondition = Constraint.isNotNull(condition, "Activation condition predicate cannot be null");
     }
 
diff --git a/idp-authn-api/src/main/java/net/shibboleth/idp/authn/duo/BasicDuoIntegration.java b/idp-authn-api/src/main/java/net/shibboleth/idp/authn/duo/BasicDuoIntegration.java
index eb1840ec2..3e652b835 100644
--- a/idp-authn-api/src/main/java/net/shibboleth/idp/authn/duo/BasicDuoIntegration.java
+++ b/idp-authn-api/src/main/java/net/shibboleth/idp/authn/duo/BasicDuoIntegration.java
@@ -72,7 +72,7 @@ public class BasicDuoIntegration extends AbstractInitializableComponent implemen
      * @param host API host
      */
     public void setAPIHost(@Nonnull @NotEmpty final String host) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         apiHost = Constraint.isNotNull(StringSupport.trimOrNull(host), "API host cannot be null or empty");
     }
 
@@ -87,7 +87,7 @@ public class BasicDuoIntegration extends AbstractInitializableComponent implemen
      * @param key application key
      */
     public void setApplicationKey(@Nullable @NotEmpty final String key) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         applicationKey = StringSupport.trimOrNull(key);
     }
 
@@ -102,7 +102,7 @@ public class BasicDuoIntegration extends AbstractInitializableComponent implemen
      * @param key integration key
      */
     public void setIntegrationKey(@Nonnull @NotEmpty final String key) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         integrationKey = Constraint.isNotNull(StringSupport.trimOrNull(key), "Integration key cannot be null or empty");
     }
 
@@ -117,7 +117,7 @@ public class BasicDuoIntegration extends AbstractInitializableComponent implemen
      * @param key secret key
      */
     public void setSecretKey(@Nonnull @NotEmpty final String key) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         secretKey = Constraint.isNotNull(StringSupport.trimOrNull(key), "Secret key cannot be null or empty");
     }
 
@@ -138,7 +138,7 @@ public class BasicDuoIntegration extends AbstractInitializableComponent implemen
      */
     public <T extends Principal> void setSupportedPrincipals(
             @Nullable @NonnullElements final Collection<T> principals) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
 
         supportedPrincipals.getPrincipals().clear();
         
diff --git a/idp-authn-api/src/main/java/net/shibboleth/idp/authn/principal/GenericPrincipalSerializer.java b/idp-authn-api/src/main/java/net/shibboleth/idp/authn/principal/GenericPrincipalSerializer.java
index 248422178..a4ff7f2ce 100644
--- a/idp-authn-api/src/main/java/net/shibboleth/idp/authn/principal/GenericPrincipalSerializer.java
+++ b/idp-authn-api/src/main/java/net/shibboleth/idp/authn/principal/GenericPrincipalSerializer.java
@@ -93,7 +93,7 @@ public class GenericPrincipalSerializer extends AbstractPrincipalSerializer<Stri
      * @param mappings  string to symbolic mappings
      */
     public void setSymbolics(@Nonnull @NonnullElements final Map<String,Integer> mappings) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         symbolics = HashBiMap.create(Constraint.isNotNull(mappings, "Mappings cannot be null"));
     }
         
@@ -117,7 +117,7 @@ public class GenericPrincipalSerializer extends AbstractPrincipalSerializer<Stri
 
     /** {@inheritDoc} */
     @Nonnull @NotEmpty public String serialize(@Nonnull final Principal principal) throws IOException {
-        throwComponentStateExceptions();
+        checkComponentActive();
         final StringWriter sink = new StringWriter(32);
         
         try (final JsonGenerator gen = getJsonGenerator(sink)) {
@@ -149,7 +149,7 @@ public class GenericPrincipalSerializer extends AbstractPrincipalSerializer<Stri
 
     /** {@inheritDoc} */
     @Nullable public Principal deserialize(@Nonnull @NotEmpty final String value) throws IOException {
-        throwComponentStateExceptions();
+        checkComponentActive();
         try (final JsonReader reader = getJsonReader(new StringReader(value))) {
             final JsonStructure st = reader.read();
             if (!(st instanceof JsonObject)) {
diff --git a/idp-authn-api/src/main/java/net/shibboleth/idp/authn/principal/SealedPrincipalSerializer.java b/idp-authn-api/src/main/java/net/shibboleth/idp/authn/principal/SealedPrincipalSerializer.java
index 6c7911e4b..054be651e 100644
--- a/idp-authn-api/src/main/java/net/shibboleth/idp/authn/principal/SealedPrincipalSerializer.java
+++ b/idp-authn-api/src/main/java/net/shibboleth/idp/authn/principal/SealedPrincipalSerializer.java
@@ -72,7 +72,7 @@ public class SealedPrincipalSerializer<T extends Principal> extends SimplePrinci
      * @param theSealer encrypting component to use
      */
     public void setDataSealer(@Nullable final DataSealer theSealer) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         sealer = theSealer;
     }
 
diff --git a/idp-authn-impl/src/main/java/net/shibboleth/idp/authn/context/impl/SubjectDerivedAttributeValuesFunction.java b/idp-authn-impl/src/main/java/net/shibboleth/idp/authn/context/impl/SubjectDerivedAttributeValuesFunction.java
index 57dbbb893..4247c584c 100644
--- a/idp-authn-impl/src/main/java/net/shibboleth/idp/authn/context/impl/SubjectDerivedAttributeValuesFunction.java
+++ b/idp-authn-impl/src/main/java/net/shibboleth/idp/authn/context/impl/SubjectDerivedAttributeValuesFunction.java
@@ -80,7 +80,7 @@ public class SubjectDerivedAttributeValuesFunction extends AbstractIdentifiableI
      * @param flag flag to set
      */
     public void setForCanonicalization(final boolean flag) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         forCanonicalization = flag;
     }
 
@@ -93,7 +93,7 @@ public class SubjectDerivedAttributeValuesFunction extends AbstractIdentifiableI
      */
     public void setSubjectContextLookupStrategy(
             @Nonnull final Function<ProfileRequestContext,SubjectContext> strategy) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         scLookupStrategy = Constraint.isNotNull(strategy, "SubjectContext lookup strategy cannot be null");
     }
 
@@ -103,7 +103,7 @@ public class SubjectDerivedAttributeValuesFunction extends AbstractIdentifiableI
      * @param strategy strategy function
      */
     public void setAttributeValuesFunction(@Nonnull final Function<Principal,List<IdPAttributeValue>> strategy) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         attributeValuesFunction = Constraint.isNotNull(strategy, "Attribute value lookup strategy cannot be null");
     }
 
@@ -116,7 +116,7 @@ public class SubjectDerivedAttributeValuesFunction extends AbstractIdentifiableI
      */
     public void setSubjectLookupStrategy(
             @Nullable final Function<ProfileRequestContext,Subject> strategy) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         subjectLookupStrategy = strategy;
     }
     
diff --git a/idp-authn-impl/src/main/java/net/shibboleth/idp/authn/context/impl/SubjectDerivedAttributesFunction.java b/idp-authn-impl/src/main/java/net/shibboleth/idp/authn/context/impl/SubjectDerivedAttributesFunction.java
index 588c5ca16..ce21d2262 100644
--- a/idp-authn-impl/src/main/java/net/shibboleth/idp/authn/context/impl/SubjectDerivedAttributesFunction.java
+++ b/idp-authn-impl/src/main/java/net/shibboleth/idp/authn/context/impl/SubjectDerivedAttributesFunction.java
@@ -83,7 +83,7 @@ public class SubjectDerivedAttributesFunction extends AbstractIdentifiableInitia
      * @param flag flag to set
      */
     public void setForCanonicalization(final boolean flag) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         forCanonicalization = flag;
     }
 
@@ -96,7 +96,7 @@ public class SubjectDerivedAttributesFunction extends AbstractIdentifiableInitia
      */
     public void setSubjectContextLookupStrategy(
             @Nonnull final Function<ProfileRequestContext,SubjectContext> strategy) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         scLookupStrategy = Constraint.isNotNull(strategy, "SubjectContext lookup strategy cannot be null");
     }
 
@@ -108,7 +108,7 @@ public class SubjectDerivedAttributesFunction extends AbstractIdentifiableInitia
      *            {@link net.shibboleth.idp.attribute.resolver.context.AttributeResolutionContext}
      */
     public void setSubjectLookupStrategy(@Nullable final Function<ProfileRequestContext,Subject> strategy) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         subjectLookupStrategy = strategy;
     }
     
diff --git a/idp-authn-impl/src/main/java/net/shibboleth/idp/authn/context/impl/SubjectScriptContextExtender.java b/idp-authn-impl/src/main/java/net/shibboleth/idp/authn/context/impl/SubjectScriptContextExtender.java
index fd250d2cd..0fc335deb 100644
--- a/idp-authn-impl/src/main/java/net/shibboleth/idp/authn/context/impl/SubjectScriptContextExtender.java
+++ b/idp-authn-impl/src/main/java/net/shibboleth/idp/authn/context/impl/SubjectScriptContextExtender.java
@@ -61,13 +61,13 @@ public class SubjectScriptContextExtender extends AbstractInitializableComponent
      */
     public void setSubjectContextLookupStrategy(
             @Nonnull final Function<ProfileRequestContext,SubjectContext> strategy) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         subjectContextLookupStrategy = Constraint.isNotNull(strategy, "SubjectContext lookup strategy cannot be null");
     }
     
     /** {@inheritDoc} */
     public void extendContext(@Nonnull final ScriptContext scriptContext) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         final ProfileRequestContext prc = (ProfileRequestContext) scriptContext.getAttribute("profileContext");
         
         final SubjectContext sc = subjectContextLookupStrategy.apply(prc);
diff --git a/idp-authn-impl/src/main/java/net/shibboleth/idp/authn/duo/impl/AbstractDuoAuthenticator.java b/idp-authn-impl/src/main/java/net/shibboleth/idp/authn/duo/impl/AbstractDuoAuthenticator.java
index 23fe9d5a9..790f0dcac 100644
--- a/idp-authn-impl/src/main/java/net/shibboleth/idp/authn/duo/impl/AbstractDuoAuthenticator.java
+++ b/idp-authn-impl/src/main/java/net/shibboleth/idp/authn/duo/impl/AbstractDuoAuthenticator.java
@@ -63,7 +63,7 @@ public abstract class AbstractDuoAuthenticator extends AbstractInitializableComp
      * @param client HttpClient
      */
     public void setHttpClient(@Nonnull final HttpClient client) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         httpClient = Constraint.isNotNull(client, "HTTP client cannot be null");
     }
 
@@ -73,7 +73,7 @@ public abstract class AbstractDuoAuthenticator extends AbstractInitializableComp
      * @param params the new client security parameters
      */
     public void setHttpClientSecurityParameters(@Nullable final HttpClientSecurityParameters params) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         httpClientSecurityParameters = params;
     }
     
@@ -83,7 +83,7 @@ public abstract class AbstractDuoAuthenticator extends AbstractInitializableComp
      * @param mapper object mapper
      */
     public void setObjectMapper(@Nonnull final ObjectMapper mapper) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         objectMapper = Constraint.isNotNull(mapper, "Object mapper cannot be null");
     }
 
diff --git a/idp-authn-impl/src/main/java/net/shibboleth/idp/authn/duo/impl/ExtractDuoAuthenticationFromHeaders.java b/idp-authn-impl/src/main/java/net/shibboleth/idp/authn/duo/impl/ExtractDuoAuthenticationFromHeaders.java
index b46a3f79a..fbb9b82d0 100644
--- a/idp-authn-impl/src/main/java/net/shibboleth/idp/authn/duo/impl/ExtractDuoAuthenticationFromHeaders.java
+++ b/idp-authn-impl/src/main/java/net/shibboleth/idp/authn/duo/impl/ExtractDuoAuthenticationFromHeaders.java
@@ -93,7 +93,7 @@ public class ExtractDuoAuthenticationFromHeaders extends AbstractAuthenticationA
      * @param headerName the factor header name
      */
     public void setFactorHeader(@Nonnull @NotEmpty final String headerName) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         factorHeaderName = Constraint.isNotNull(StringSupport.trimOrNull(headerName),
                 "Factor header name cannot be null or empty.");
     }
@@ -104,7 +104,7 @@ public class ExtractDuoAuthenticationFromHeaders extends AbstractAuthenticationA
      * @param headerName the factor header name
      */
     public void setDeviceHeader(@Nonnull @NotEmpty final String headerName) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         deviceHeaderName = Constraint.isNotNull(StringSupport.trimOrNull(headerName),
                 "Device header name cannot be null or empty.");
     }
@@ -115,7 +115,7 @@ public class ExtractDuoAuthenticationFromHeaders extends AbstractAuthenticationA
      * @param headerName the factor header name
      */
     public void setPasscodeHeader(@Nonnull @NotEmpty final String headerName) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         passcodeHeaderName = Constraint.isNotNull(StringSupport.trimOrNull(headerName),
                 "Passcode header name cannot be null or empty.");
     }
@@ -135,7 +135,7 @@ public class ExtractDuoAuthenticationFromHeaders extends AbstractAuthenticationA
      * @param flag flag to set
      */
     public void setClientAdddressTrusted(final boolean flag) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         clientAddressTrusted = flag;
     }
     
@@ -154,7 +154,7 @@ public class ExtractDuoAuthenticationFromHeaders extends AbstractAuthenticationA
      * @param flag flag to set
      */
     public void setAutoAuthenticationSupported(final boolean flag) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         autoAuthenticationSupported = flag;
     }
     
@@ -165,7 +165,7 @@ public class ExtractDuoAuthenticationFromHeaders extends AbstractAuthenticationA
      */
     public void setPushInfoLookupStrategy(
             @Nullable final Function<ProfileRequestContext,Map<String,String>> strategy) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         pushInfoLookupStrategy = strategy;
     }
 
diff --git a/idp-authn-impl/src/main/java/net/shibboleth/idp/authn/duo/impl/ValidateDuoAuthAPI.java b/idp-authn-impl/src/main/java/net/shibboleth/idp/authn/duo/impl/ValidateDuoAuthAPI.java
index 64ebdd774..ec8feb310 100644
--- a/idp-authn-impl/src/main/java/net/shibboleth/idp/authn/duo/impl/ValidateDuoAuthAPI.java
+++ b/idp-authn-impl/src/main/java/net/shibboleth/idp/authn/duo/impl/ValidateDuoAuthAPI.java
@@ -113,7 +113,7 @@ public class ValidateDuoAuthAPI extends AbstractValidationAction {
      */
     public void setDuoIntegrationLookupStrategy(
             @Nonnull final Function<ProfileRequestContext,DuoIntegration> strategy) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         duoIntegrationLookupStrategy = Constraint.isNotNull(strategy, "DuoIntegration lookup strategy cannot be null");
     }
 
@@ -123,7 +123,7 @@ public class ValidateDuoAuthAPI extends AbstractValidationAction {
      * @param duo Duo integration details
      */
     public void setDuoIntegration(@Nonnull final DuoIntegration duo) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         Constraint.isNotNull(duo, "DuoIntegration cannot be null");
         duoIntegrationLookupStrategy = FunctionSupport.constant(duo);
     }
@@ -134,7 +134,7 @@ public class ValidateDuoAuthAPI extends AbstractValidationAction {
      * @param strategy lookup strategy
      */
     public void setUsernameLookupStrategy(@Nonnull final Function<ProfileRequestContext, String> strategy) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         usernameLookupStrategy = Constraint.isNotNull(strategy, "Username lookup strategy cannot be null");
     }
 
@@ -144,7 +144,7 @@ public class ValidateDuoAuthAPI extends AbstractValidationAction {
      * @param authenticator a Duo AuthAPI /auth endpoint implementation
      */
     public void setAuthAuthenticator(@Nonnull final DuoAuthAuthenticator authenticator) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         authAuthenticator = Constraint.isNotNull(authenticator, "DuoAuthAuthenticator cannot be null");
     }
 
@@ -154,7 +154,7 @@ public class ValidateDuoAuthAPI extends AbstractValidationAction {
      * @param authenticator a Duo AuthAPI /preauth endpoint implementation
      */
     public void setPreauthAuthenticator(@Nonnull final DuoPreauthAuthenticator authenticator) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         preauthAuthenticator = Constraint.isNotNull(authenticator, "DuoPreauthAuthenticator cannot be null");
     }
 
diff --git a/idp-authn-impl/src/main/java/net/shibboleth/idp/authn/duo/impl/ValidateDuoWebResponse.java b/idp-authn-impl/src/main/java/net/shibboleth/idp/authn/duo/impl/ValidateDuoWebResponse.java
index 4d0c9d963..a634ca9ad 100644
--- a/idp-authn-impl/src/main/java/net/shibboleth/idp/authn/duo/impl/ValidateDuoWebResponse.java
+++ b/idp-authn-impl/src/main/java/net/shibboleth/idp/authn/duo/impl/ValidateDuoWebResponse.java
@@ -103,7 +103,7 @@ public class ValidateDuoWebResponse extends AbstractValidationAction {
      */
     public void setDuoIntegrationLookupStrategy(
             @Nonnull final Function<ProfileRequestContext,DuoIntegration> strategy) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         duoIntegrationLookupStrategy = Constraint.isNotNull(strategy, "DuoIntegration lookup strategy cannot be null");
     }
 
@@ -113,7 +113,7 @@ public class ValidateDuoWebResponse extends AbstractValidationAction {
      * @param duo Duo integration details
      */
     public void setDuoIntegration(@Nonnull final DuoIntegration duo) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         Constraint.isNotNull(duo, "DuoIntegration cannot be null");
         duoIntegrationLookupStrategy = FunctionSupport.constant(duo);
     }
@@ -124,7 +124,7 @@ public class ValidateDuoWebResponse extends AbstractValidationAction {
      * @param strategy lookup strategy
      */
     public void setUsernameLookupStrategy(@Nonnull final Function<ProfileRequestContext,String> strategy) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         usernameLookupStrategy = Constraint.isNotNull(strategy, "Username lookup strategy cannot be null");
     }
 
diff --git a/idp-authn-impl/src/main/java/net/shibboleth/idp/authn/impl/AttributeSourcedSubjectCanonicalization.java b/idp-authn-impl/src/main/java/net/shibboleth/idp/authn/impl/AttributeSourcedSubjectCanonicalization.java
index 8a5cc94ca..faae37ba4 100644
--- a/idp-authn-impl/src/main/java/net/shibboleth/idp/authn/impl/AttributeSourcedSubjectCanonicalization.java
+++ b/idp-authn-impl/src/main/java/net/shibboleth/idp/authn/impl/AttributeSourcedSubjectCanonicalization.java
@@ -106,7 +106,7 @@ public class AttributeSourcedSubjectCanonicalization extends AbstractSubjectCano
      * @param ch delimiter to use
      */
     public void setScopedDelimiter(final char ch) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         delimiter = ch;
     }
     
@@ -119,7 +119,7 @@ public class AttributeSourcedSubjectCanonicalization extends AbstractSubjectCano
      * @since 4.1.0
      */
     public void setResolveFromSubject(final boolean flag) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         resolveFromSubject = flag;
     }
     
@@ -129,7 +129,7 @@ public class AttributeSourcedSubjectCanonicalization extends AbstractSubjectCano
      * @param ids   attribute IDs to read from
      */
     public void setAttributeSourceIds(@Nonnull @NonnullElements final List<String> ids) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         attributeSourceIds = new ArrayList<>(StringSupport.normalizeStringCollection(ids));
     }
     
@@ -140,7 +140,7 @@ public class AttributeSourcedSubjectCanonicalization extends AbstractSubjectCano
      */
     public void setAttributeContextLookupStrategy(
             @Nonnull final Function<ProfileRequestContext,AttributeContext> strategy) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         attributeContextLookupStrategy = Constraint.isNotNull(strategy,
                 "AttributeContext lookup strategy cannot be null");
     }
diff --git a/idp-authn-impl/src/main/java/net/shibboleth/idp/authn/impl/DefaultAuthenticationResultSerializer.java b/idp-authn-impl/src/main/java/net/shibboleth/idp/authn/impl/DefaultAuthenticationResultSerializer.java
index a1994eac4..60ebd8e6e 100644
--- a/idp-authn-impl/src/main/java/net/shibboleth/idp/authn/impl/DefaultAuthenticationResultSerializer.java
+++ b/idp-authn-impl/src/main/java/net/shibboleth/idp/authn/impl/DefaultAuthenticationResultSerializer.java
@@ -192,7 +192,7 @@ public class DefaultAuthenticationResultSerializer extends AbstractInitializable
 // Checkstyle: CyclomaticComplexity|MethodLength OFF
     /** {@inheritDoc} */
     @Nonnull @NotEmpty public String serialize(@Nonnull final AuthenticationResult instance) throws IOException {
-        throwComponentStateExceptions();
+        checkComponentActive();
         
         try {
             final StringWriter sink = new StringWriter(128);
@@ -259,7 +259,7 @@ public class DefaultAuthenticationResultSerializer extends AbstractInitializable
     @Nonnull public AuthenticationResult deserialize(final long version, @Nonnull @NotEmpty final String context,
                     @Nonnull @NotEmpty final String key, @Nonnull @NotEmpty final String value,
                     @Nullable final Long expiration) throws IOException {
-        throwComponentStateExceptions();
+        checkComponentActive();
         
         try (final JsonReader reader = readerFactory.createReader(new StringReader(value))) {
             
diff --git a/idp-authn-impl/src/main/java/net/shibboleth/idp/authn/impl/DoLockoutManagerOperation.java b/idp-authn-impl/src/main/java/net/shibboleth/idp/authn/impl/DoLockoutManagerOperation.java
index c5df3c5b0..99a4141fa 100644
--- a/idp-authn-impl/src/main/java/net/shibboleth/idp/authn/impl/DoLockoutManagerOperation.java
+++ b/idp-authn-impl/src/main/java/net/shibboleth/idp/authn/impl/DoLockoutManagerOperation.java
@@ -98,7 +98,7 @@ public class DoLockoutManagerOperation extends AbstractProfileAction {
      * @param mapper object mapper
      */
     public void setObjectMapper(@Nonnull final ObjectMapper mapper) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         objectMapper = Constraint.isNotNull(mapper, "ObjectMapper cannot be null");
     }
 
diff --git a/idp-authn-impl/src/main/java/net/shibboleth/idp/authn/impl/ExtractRemoteUser.java b/idp-authn-impl/src/main/java/net/shibboleth/idp/authn/impl/ExtractRemoteUser.java
index b362e47ce..4a4f34d61 100644
--- a/idp-authn-impl/src/main/java/net/shibboleth/idp/authn/impl/ExtractRemoteUser.java
+++ b/idp-authn-impl/src/main/java/net/shibboleth/idp/authn/impl/ExtractRemoteUser.java
@@ -74,7 +74,7 @@ public class ExtractRemoteUser extends AbstractExtractionAction {
      * @param flag value to set  
      */
     public void setCheckRemoteUser(final boolean flag) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         checkRemoteUser = flag;
     }
 
@@ -84,7 +84,7 @@ public class ExtractRemoteUser extends AbstractExtractionAction {
      * @param attributes    list of request attributes to check
      */
     public void setCheckAttributes(@Nullable @NonnullElements final Collection<String> attributes) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         checkAttributes = StringSupport.normalizeStringCollection(attributes);
     }
 
@@ -94,7 +94,7 @@ public class ExtractRemoteUser extends AbstractExtractionAction {
      * @param headers list of request headers to check
      */
     public void setCheckHeaders(@Nullable @NonnullElements final Collection<String> headers) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         checkHeaders = StringSupport.normalizeStringCollection(headers);
     }
     
diff --git a/idp-authn-impl/src/main/java/net/shibboleth/idp/authn/impl/ExtractUsernamePasswordFromFormRequest.java b/idp-authn-impl/src/main/java/net/shibboleth/idp/authn/impl/ExtractUsernamePasswordFromFormRequest.java
index 527732033..b08126672 100644
--- a/idp-authn-impl/src/main/java/net/shibboleth/idp/authn/impl/ExtractUsernamePasswordFromFormRequest.java
+++ b/idp-authn-impl/src/main/java/net/shibboleth/idp/authn/impl/ExtractUsernamePasswordFromFormRequest.java
@@ -70,7 +70,7 @@ public class ExtractUsernamePasswordFromFormRequest extends AbstractExtractionAc
      * @param fieldName the username parameter name
      */
     public void setUsernameFieldName(@Nonnull @NotEmpty final String fieldName) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         usernameFieldName = Constraint.isNotNull(
                 StringSupport.trimOrNull(fieldName), "Username field name cannot be null or empty.");
     }
@@ -81,7 +81,7 @@ public class ExtractUsernamePasswordFromFormRequest extends AbstractExtractionAc
      * @param fieldName the password parameter name
      */
     public void setPasswordFieldName(@Nonnull @NotEmpty final String fieldName) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         passwordFieldName = Constraint.isNotNull(
                 StringSupport.trimOrNull(fieldName), "Password field name cannot be null or empty.");
     }
@@ -92,7 +92,7 @@ public class ExtractUsernamePasswordFromFormRequest extends AbstractExtractionAc
      * @param fieldName the SSO bypass parameter name
      */
     public void setSSOBypassFieldName(@Nonnull @NotEmpty final String fieldName) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         ssoBypassFieldName = Constraint.isNotNull(
                 StringSupport.trimOrNull(fieldName), "SSO Bypass field name cannot be null or empty.");
     }
diff --git a/idp-authn-impl/src/main/java/net/shibboleth/idp/authn/impl/FinalizeMultiFactorAuthentication.java b/idp-authn-impl/src/main/java/net/shibboleth/idp/authn/impl/FinalizeMultiFactorAuthentication.java
index c339df80b..d9f6cd239 100644
--- a/idp-authn-impl/src/main/java/net/shibboleth/idp/authn/impl/FinalizeMultiFactorAuthentication.java
+++ b/idp-authn-impl/src/main/java/net/shibboleth/idp/authn/impl/FinalizeMultiFactorAuthentication.java
@@ -101,7 +101,7 @@ public class FinalizeMultiFactorAuthentication extends AbstractAuthenticationAct
      */
     public void setMultiFactorContextLookupStrategy(
             @Nonnull final Function<ProfileRequestContext,MultiFactorAuthenticationContext> strategy) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         multiFactorContextLookupStrategy = Constraint.isNotNull(strategy,
                 "MultiFactorAuthenticationContext lookup strategy cannot be null");
     }
@@ -113,7 +113,7 @@ public class FinalizeMultiFactorAuthentication extends AbstractAuthenticationAct
      */
     public void setResultMergingStrategy(
             @Nullable final Function<ProfileRequestContext,AuthenticationResult> strategy) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         resultMergingStrategy = strategy;
     }
 
@@ -123,7 +123,7 @@ public class FinalizeMultiFactorAuthentication extends AbstractAuthenticationAct
      * @param predicate predicate to apply, or null
      */
     public void setResultCachingPredicate(@Nullable final Predicate<ProfileRequestContext> predicate) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         resultCachingPredicate = predicate;
     }
 
@@ -134,7 +134,7 @@ public class FinalizeMultiFactorAuthentication extends AbstractAuthenticationAct
      */
     public void setRequesterLookupStrategy(
             @Nullable final Function<ProfileRequestContext,String> strategy) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         requesterLookupStrategy = strategy;
     }
 
@@ -145,7 +145,7 @@ public class FinalizeMultiFactorAuthentication extends AbstractAuthenticationAct
      */
     public void setResponderLookupStrategy(
             @Nullable final Function<ProfileRequestContext,String> strategy) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         responderLookupStrategy = strategy;
     }
 
diff --git a/idp-authn-impl/src/main/java/net/shibboleth/idp/authn/impl/HTPasswdCredentialValidator.java b/idp-authn-impl/src/main/java/net/shibboleth/idp/authn/impl/HTPasswdCredentialValidator.java
index 5b40598fe..1e3e55335 100644
--- a/idp-authn-impl/src/main/java/net/shibboleth/idp/authn/impl/HTPasswdCredentialValidator.java
+++ b/idp-authn-impl/src/main/java/net/shibboleth/idp/authn/impl/HTPasswdCredentialValidator.java
@@ -89,7 +89,7 @@ public class HTPasswdCredentialValidator extends AbstractUsernamePasswordCredent
      * @param resource resource to use
      */
     public void setResource(@Nonnull final Resource resource) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         htPasswdResource = Constraint.isNotNull(resource, "Resource cannot be null");
     }
     
diff --git a/idp-authn-impl/src/main/java/net/shibboleth/idp/authn/impl/InitializeRequestedPrincipalContext.java b/idp-authn-impl/src/main/java/net/shibboleth/idp/authn/impl/InitializeRequestedPrincipalContext.java
index be335e863..204ec4277 100644
--- a/idp-authn-impl/src/main/java/net/shibboleth/idp/authn/impl/InitializeRequestedPrincipalContext.java
+++ b/idp-authn-impl/src/main/java/net/shibboleth/idp/authn/impl/InitializeRequestedPrincipalContext.java
@@ -83,7 +83,7 @@ public class InitializeRequestedPrincipalContext extends AbstractAuthenticationA
      * @param flag flag to set
      */
     public void setReplaceExistingContext(final boolean flag) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         replaceExistingContext = flag;
     }
     
@@ -96,7 +96,7 @@ public class InitializeRequestedPrincipalContext extends AbstractAuthenticationA
      */
     public void setRelyingPartyContextLookupStrategy(
             @Nonnull final Function<ProfileRequestContext,RelyingPartyContext> strategy) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         relyingPartyContextLookupStrategy =
                 Constraint.isNotNull(strategy, "RelyingPartyContext lookup strategy cannot be null");
     }
diff --git a/idp-authn-impl/src/main/java/net/shibboleth/idp/authn/impl/JAASCredentialValidator.java b/idp-authn-impl/src/main/java/net/shibboleth/idp/authn/impl/JAASCredentialValidator.java
index 5b53fdf43..b848f0e2f 100644
--- a/idp-authn-impl/src/main/java/net/shibboleth/idp/authn/impl/JAASCredentialValidator.java
+++ b/idp-authn-impl/src/main/java/net/shibboleth/idp/authn/impl/JAASCredentialValidator.java
@@ -110,7 +110,7 @@ public class JAASCredentialValidator extends AbstractUsernamePasswordCredentialV
      * @param type the type of JAAS configuration to use
      */
     public void setLoginConfigType(@Nullable final String type) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         loginConfigType = StringSupport.trimOrNull(type);
     }
 
@@ -129,7 +129,7 @@ public class JAASCredentialValidator extends AbstractUsernamePasswordCredentialV
      * @param uri the JAAS configuration URI parameters to use
      */
     public void setLoginConfigParameters(@Nullable final URI uri) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         if (uri != null) {
             loginConfigParameters = new URIParameter(uri);
         } else {
@@ -145,7 +145,7 @@ public class JAASCredentialValidator extends AbstractUsernamePasswordCredentialV
      * @since 4.1.0
      */
     public void setLoginConfigResource(@Nullable final Resource resource) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         loginConfigResource = resource;
     }
 
@@ -156,7 +156,7 @@ public class JAASCredentialValidator extends AbstractUsernamePasswordCredentialV
      * @param configs list of JAAS application names and custom principals to use
      */
     public void setLoginConfigurations(@Nullable final Collection<Pair<String,Collection<Principal>>> configs) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         if (configs != null) {
             loginConfigurations = new ArrayList<>(configs.size());
             for (final Pair<String,Collection<Principal>> config : configs) {
@@ -180,7 +180,7 @@ public class JAASCredentialValidator extends AbstractUsernamePasswordCredentialV
      * @param names list of JAAS application names to use
      */
     public void setLoginConfigNames(@Nullable @NonnullElements final Collection<String> names) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         loginConfigNames = StringSupport.normalizeStringCollection(names);
     }
     
@@ -191,7 +191,7 @@ public class JAASCredentialValidator extends AbstractUsernamePasswordCredentialV
      */
     public void setLoginConfigStrategy(
             @Nullable final Function<ProfileRequestContext,Collection<Pair<String,Subject>>> strategy) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         loginConfigStrategy = strategy;
     }
     
diff --git a/idp-authn-impl/src/main/java/net/shibboleth/idp/authn/impl/KerberosCredentialValidator.java b/idp-authn-impl/src/main/java/net/shibboleth/idp/authn/impl/KerberosCredentialValidator.java
index cff35e95c..a6a26a605 100644
--- a/idp-authn-impl/src/main/java/net/shibboleth/idp/authn/impl/KerberosCredentialValidator.java
+++ b/idp-authn-impl/src/main/java/net/shibboleth/idp/authn/impl/KerberosCredentialValidator.java
@@ -97,7 +97,7 @@ public class KerberosCredentialValidator extends AbstractUsernamePasswordCredent
      * @param name  name of login module class
      */
     public void setLoginModuleClassName(@Nonnull final String name) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         loginModuleClassName = Constraint.isNotNull(StringSupport.trimOrNull(name),
                 "Class name cannot be null or empty");
     }
@@ -108,7 +108,7 @@ public class KerberosCredentialValidator extends AbstractUsernamePasswordCredent
      * @param flag  flag to set
      */
     public void setRefreshKrb5Config(final boolean flag) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         refreshKrb5Config = flag;
     }
 
@@ -118,7 +118,7 @@ public class KerberosCredentialValidator extends AbstractUsernamePasswordCredent
      * @param flag  flag to set
      */
     public void setPreserveTicket(final boolean flag) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         preserveTicket = flag;
     }
     
@@ -130,7 +130,7 @@ public class KerberosCredentialValidator extends AbstractUsernamePasswordCredent
      * @param name name of service principal
      */
     public void setServicePrincipal(@Nullable final String name) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         servicePrincipal = StringSupport.trimOrNull(name);
     }
 
@@ -140,7 +140,7 @@ public class KerberosCredentialValidator extends AbstractUsernamePasswordCredent
      * @param path path to file containing a keytab
      */
     public void setKeytabPath(@Nullable final String path) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         keytabPath = StringSupport.trimOrNull(path);
     }
     
diff --git a/idp-authn-impl/src/main/java/net/shibboleth/idp/authn/impl/LDAPCredentialValidator.java b/idp-authn-impl/src/main/java/net/shibboleth/idp/authn/impl/LDAPCredentialValidator.java
index 2a26eae91..ccef81984 100644
--- a/idp-authn-impl/src/main/java/net/shibboleth/idp/authn/impl/LDAPCredentialValidator.java
+++ b/idp-authn-impl/src/main/java/net/shibboleth/idp/authn/impl/LDAPCredentialValidator.java
@@ -83,7 +83,7 @@ public class LDAPCredentialValidator extends AbstractUsernamePasswordCredentialV
      * @param auth to authenticate with
      */
     public void setAuthenticator(@Nonnull final Authenticator auth) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         authenticator = Constraint.isNotNull(auth, "Authenticator cannot be null");
     }
 
@@ -102,7 +102,7 @@ public class LDAPCredentialValidator extends AbstractUsernamePasswordCredentialV
      * @param attributes attribute names
      */
     public void setReturnAttributes(@Nullable final String... attributes) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         returnAttributes = attributes;
     }
     
@@ -112,7 +112,7 @@ public class LDAPCredentialValidator extends AbstractUsernamePasswordCredentialV
      * @param strategy strategy function
      */
     public void setPasswordLookupStrategy(@Nullable final Function<ProfileRequestContext,char[]> strategy) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         passwordLookupStrategy = strategy;
     }
 
diff --git a/idp-authn-impl/src/main/java/net/shibboleth/idp/authn/impl/PopulateAuthenticationContext.java b/idp-authn-impl/src/main/java/net/shibboleth/idp/authn/impl/PopulateAuthenticationContext.java
index 0a78db230..8b044a0cd 100644
--- a/idp-authn-impl/src/main/java/net/shibboleth/idp/authn/impl/PopulateAuthenticationContext.java
+++ b/idp-authn-impl/src/main/java/net/shibboleth/idp/authn/impl/PopulateAuthenticationContext.java
@@ -86,7 +86,7 @@ public class PopulateAuthenticationContext extends AbstractAuthenticationAction
      * @param flows the flows known to the system
      */
     public void setAvailableFlows(@Nonnull @NonnullElements final Collection<AuthenticationFlowDescriptor> flows) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         availableFlows = List.copyOf(Constraint.isNotNull(flows, "Flow collection cannot be null"));
     }
 
@@ -99,7 +99,7 @@ public class PopulateAuthenticationContext extends AbstractAuthenticationAction
      */
     public void setPotentialFlowsLookupStrategy(
             @Nonnull final Function<ProfileRequestContext,Collection<AuthenticationFlowDescriptor>> strategy) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         potentialFlowsLookupStrategy = Constraint.isNotNull(strategy, "Potential flow lookup strategy cannot be null");
     }
     
@@ -110,7 +110,7 @@ public class PopulateAuthenticationContext extends AbstractAuthenticationAction
      */
     public void setActiveFlowsLookupStrategy(
             @Nonnull final Function<ProfileRequestContext,Collection<String>> strategy) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         activeFlowsLookupStrategy = Constraint.isNotNull(strategy, "Flow lookup strategy cannot be null");
     }
     
@@ -130,7 +130,7 @@ public class PopulateAuthenticationContext extends AbstractAuthenticationAction
      */
     public void setPrincipalEvalPredicateFactoryRegistry(
             @Nonnull final PrincipalEvalPredicateFactoryRegistry registry) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         evalRegistry = Constraint.isNotNull(registry, "PrincipalEvalPredicateFactoryRegistry cannot be null");
     }
     
@@ -143,7 +143,7 @@ public class PopulateAuthenticationContext extends AbstractAuthenticationAction
      * @since 3.4.0
      */
     public void setFixedEventLookupStrategy(@Nullable final Function<ProfileRequestContext,String> strategy) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         fixedEventLookupStrategy = strategy;
     }
 
diff --git a/idp-authn-impl/src/main/java/net/shibboleth/idp/authn/impl/PopulateMultiFactorAuthenticationContext.java b/idp-authn-impl/src/main/java/net/shibboleth/idp/authn/impl/PopulateMultiFactorAuthenticationContext.java
index faf0df4e0..28b11d711 100644
--- a/idp-authn-impl/src/main/java/net/shibboleth/idp/authn/impl/PopulateMultiFactorAuthenticationContext.java
+++ b/idp-authn-impl/src/main/java/net/shibboleth/idp/authn/impl/PopulateMultiFactorAuthenticationContext.java
@@ -93,7 +93,7 @@ public class PopulateMultiFactorAuthenticationContext extends AbstractAuthentica
      */
     public void setTransitionMapLookupStrategy(
             @Nonnull final Function<ProfileRequestContext,Map<String,MultiFactorAuthenticationTransition>> strategy) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         transitionMapLookupStrategy = Constraint.isNotNull(strategy, "Transition map lookup strategy cannot be null");
     }
     
@@ -104,7 +104,7 @@ public class PopulateMultiFactorAuthenticationContext extends AbstractAuthentica
      */
     public void setMultiFactorContextCreationStrategy(
             @Nonnull final Function<ProfileRequestContext,MultiFactorAuthenticationContext> strategy) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         multiFactorContextCreationStrategy = Constraint.isNotNull(strategy,
                 "MultiFactorAuthenticationContext creation strategy cannot be null");
     }
@@ -119,7 +119,7 @@ public class PopulateMultiFactorAuthenticationContext extends AbstractAuthentica
      */
     public void setActiveResultLookupStrategy(
             @Nullable final Function<ProfileRequestContext,Collection<AuthenticationResult>> strategy) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         activeResultLookupStrategy = strategy;
     }
 
diff --git a/idp-authn-impl/src/main/java/net/shibboleth/idp/authn/impl/PopulateSubjectCanonicalizationContext.java b/idp-authn-impl/src/main/java/net/shibboleth/idp/authn/impl/PopulateSubjectCanonicalizationContext.java
index b0dc29bfd..bcac34047 100644
--- a/idp-authn-impl/src/main/java/net/shibboleth/idp/authn/impl/PopulateSubjectCanonicalizationContext.java
+++ b/idp-authn-impl/src/main/java/net/shibboleth/idp/authn/impl/PopulateSubjectCanonicalizationContext.java
@@ -61,7 +61,7 @@ public class PopulateSubjectCanonicalizationContext extends AbstractSubjectCanon
      */
     public void setAvailableFlows(
             @Nonnull @NonnullElements final Collection<SubjectCanonicalizationFlowDescriptor> flows) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         availableFlows = List.copyOf(Constraint.isNotNull(flows, "Flow collection cannot be null"));
     }
         
diff --git a/idp-authn-impl/src/main/java/net/shibboleth/idp/authn/impl/PreserveAuthenticationFlowState.java b/idp-authn-impl/src/main/java/net/shibboleth/idp/authn/impl/PreserveAuthenticationFlowState.java
index e8327d6ad..52cdc2b14 100644
--- a/idp-authn-impl/src/main/java/net/shibboleth/idp/authn/impl/PreserveAuthenticationFlowState.java
+++ b/idp-authn-impl/src/main/java/net/shibboleth/idp/authn/impl/PreserveAuthenticationFlowState.java
@@ -65,7 +65,7 @@ public class PreserveAuthenticationFlowState extends AbstractAuthenticationActio
      * @param names parameter names
      */
     public void setParameterNames(@Nullable @NonnullElements final Collection<String> names) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         if (names == null) {
             parameterNames = Collections.emptyList();
         } else {
diff --git a/idp-authn-impl/src/main/java/net/shibboleth/idp/authn/impl/SelectAuthenticationFlow.java b/idp-authn-impl/src/main/java/net/shibboleth/idp/authn/impl/SelectAuthenticationFlow.java
index 03b2c893c..77ded3bb9 100644
--- a/idp-authn-impl/src/main/java/net/shibboleth/idp/authn/impl/SelectAuthenticationFlow.java
+++ b/idp-authn-impl/src/main/java/net/shibboleth/idp/authn/impl/SelectAuthenticationFlow.java
@@ -105,7 +105,7 @@ public class SelectAuthenticationFlow extends AbstractAuthenticationAction {
      * @param flag whether SSO should trump explicit relying party requirements preference
      */
     public void setFavorSSO(final boolean flag) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         favorSSO = flag;
     }
 
diff --git a/idp-authn-impl/src/main/java/net/shibboleth/idp/authn/impl/StorageBackedAccountLockoutManager.java b/idp-authn-impl/src/main/java/net/shibboleth/idp/authn/impl/StorageBackedAccountLockoutManager.java
index 25327a7cf..ed9575632 100644
--- a/idp-authn-impl/src/main/java/net/shibboleth/idp/authn/impl/StorageBackedAccountLockoutManager.java
+++ b/idp-authn-impl/src/main/java/net/shibboleth/idp/authn/impl/StorageBackedAccountLockoutManager.java
@@ -88,7 +88,7 @@ public class StorageBackedAccountLockoutManager extends AbstractIdentifiableInit
      * @param storage the back-end to use
      */
     public void setStorageService(@Nonnull final StorageService storage) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         storageService = Constraint.isNotNull(storage, "StorageService cannot be null");
         final StorageCapabilities caps = storageService.getCapabilities();
         if (caps instanceof StorageCapabilitiesEx) {
@@ -107,7 +107,7 @@ public class StorageBackedAccountLockoutManager extends AbstractIdentifiableInit
      * @param strategy strategy function
      */
     public void setLockoutKeyStrategy(@Nonnull final Function<ProfileRequestContext,String> strategy) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         lockoutKeyStrategy = Constraint.isNotNull(strategy, "Lockout key strategy cannot be null");
     }
     
@@ -119,7 +119,7 @@ public class StorageBackedAccountLockoutManager extends AbstractIdentifiableInit
      * @param attempts maximum failed attempts
      */
     public void setMaxAttempts(@Positive final int attempts) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         maxAttemptsLookupStrategy = FunctionSupport.constant(
                 Constraint.isGreaterThan(0, attempts, "Attempts must be greater than zero"));
     }
@@ -132,7 +132,7 @@ public class StorageBackedAccountLockoutManager extends AbstractIdentifiableInit
      * @param strategy lookup function
      */
     public void setMaxAttemptsLookupStrategy(@Nonnull final Function<ProfileRequestContext,Integer> strategy) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         maxAttemptsLookupStrategy = Constraint.isNotNull(strategy, "Max attempts lookup strategy cannot be null");
     }
     
@@ -144,7 +144,7 @@ public class StorageBackedAccountLockoutManager extends AbstractIdentifiableInit
      * @param window counter window
      */
     public void setCounterInterval(@Nonnull final Duration window) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         counterIntervalLookupStrategy = FunctionSupport.constant(
                 Constraint.isNotNull(window, "Counter interval cannot be null"));
     }
@@ -157,7 +157,7 @@ public class StorageBackedAccountLockoutManager extends AbstractIdentifiableInit
      * @param strategy lookup function
      */
     public void setCounterIntervalLookupStrategy(@Nonnull final Function<ProfileRequestContext,Duration> strategy) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         counterIntervalLookupStrategy = Constraint.isNotNull(strategy,
                 "Counter interval lookup strategy cannot be null");
     }
@@ -170,7 +170,7 @@ public class StorageBackedAccountLockoutManager extends AbstractIdentifiableInit
      * @param duration lockout duration
      */
     public void setLockoutDuration(@Nonnull final Duration duration) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         lockoutDurationLookupStrategy = FunctionSupport.constant(
                 Constraint.isNotNull(duration, "Lockout duration cannot be null"));
     }
@@ -183,7 +183,7 @@ public class StorageBackedAccountLockoutManager extends AbstractIdentifiableInit
      * @param strategy lookup function
      */
     public void setLockoutDurationLookupStrategy(@Nonnull final Function<ProfileRequestContext,Duration> strategy) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         lockoutDurationLookupStrategy = Constraint.isNotNull(strategy,
                 "Lockout duration lookup strategy cannot be null");
     }
@@ -194,7 +194,7 @@ public class StorageBackedAccountLockoutManager extends AbstractIdentifiableInit
      * @param flag flag to set
      */
     public void setExtendLockoutDuration(final boolean flag) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         extendLockoutDuration = flag;
     }
     
diff --git a/idp-authn-impl/src/main/java/net/shibboleth/idp/authn/impl/TransitionMultiFactorAuthentication.java b/idp-authn-impl/src/main/java/net/shibboleth/idp/authn/impl/TransitionMultiFactorAuthentication.java
index e75a13f3d..b111331aa 100644
--- a/idp-authn-impl/src/main/java/net/shibboleth/idp/authn/impl/TransitionMultiFactorAuthentication.java
+++ b/idp-authn-impl/src/main/java/net/shibboleth/idp/authn/impl/TransitionMultiFactorAuthentication.java
@@ -121,7 +121,7 @@ public class TransitionMultiFactorAuthentication extends AbstractAuthenticationA
      */
     public void setMultiFactorContextLookupStrategy(
             @Nonnull final Function<ProfileRequestContext,MultiFactorAuthenticationContext> strategy) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         multiFactorContextLookupStrategy = Constraint.isNotNull(strategy,
                 "MultiFactorAuthenticationContext lookup strategy cannot be null");
     }
@@ -132,7 +132,7 @@ public class TransitionMultiFactorAuthentication extends AbstractAuthenticationA
      * @param strategy lookup strategy
      */
     public void setEventContextLookupStrategy(@Nonnull final Function<ProfileRequestContext,EventContext> strategy) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         eventContextLookupStrategy = Constraint.isNotNull(strategy, "EventContext lookup strategy cannot be null");
     }
     
@@ -145,7 +145,7 @@ public class TransitionMultiFactorAuthentication extends AbstractAuthenticationA
      * @param flag flag to set
      */
     public void setValidateLoginTransitions(final boolean flag) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         validateLoginTransitions = flag;
     }
 
diff --git a/idp-authn-impl/src/main/java/net/shibboleth/idp/authn/impl/ValidateCredentials.java b/idp-authn-impl/src/main/java/net/shibboleth/idp/authn/impl/ValidateCredentials.java
index c916aaa2a..d8e0e93af 100644
--- a/idp-authn-impl/src/main/java/net/shibboleth/idp/authn/impl/ValidateCredentials.java
+++ b/idp-authn-impl/src/main/java/net/shibboleth/idp/authn/impl/ValidateCredentials.java
@@ -96,7 +96,7 @@ public class ValidateCredentials extends AbstractValidationAction implements War
      * @param manager lockout manager
      */
     public void setLockoutManager(@Nullable final AccountLockoutManager manager) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         lockoutManager = manager;
     }
     
@@ -106,7 +106,7 @@ public class ValidateCredentials extends AbstractValidationAction implements War
      * @param validators validators to use
      */
     public void setValidators(@Nullable @NonnullElements final List<CredentialValidator> validators) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         if (validators != null) {
             credentialValidators = List.copyOf(validators);
         } else {
@@ -121,7 +121,7 @@ public class ValidateCredentials extends AbstractValidationAction implements War
      * @param flag flag to set
      */
     public void setRequireAll(final boolean flag) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         requireAll = flag;
     }
 
diff --git a/idp-authn-impl/src/main/java/net/shibboleth/idp/authn/impl/ValidateExternalAuthentication.java b/idp-authn-impl/src/main/java/net/shibboleth/idp/authn/impl/ValidateExternalAuthentication.java
index e9a577582..b16ecc9bd 100644
--- a/idp-authn-impl/src/main/java/net/shibboleth/idp/authn/impl/ValidateExternalAuthentication.java
+++ b/idp-authn-impl/src/main/java/net/shibboleth/idp/authn/impl/ValidateExternalAuthentication.java
@@ -112,7 +112,7 @@ public class ValidateExternalAuthentication extends AbstractValidationAction {
      * @param expression a matching expression
      */
     public void setMatchExpression(@Nullable final Pattern expression) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         if (expression != null && !expression.pattern().isEmpty()) {
             matchExpression = expression;
         } else {
@@ -128,7 +128,7 @@ public class ValidateExternalAuthentication extends AbstractValidationAction {
      * @since 4.0.0
      */
     public void setMetadataResolver(@Nullable final MetadataResolver resolver) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         metadataResolver = resolver;
     }
     
diff --git a/idp-authn-impl/src/main/java/net/shibboleth/idp/authn/impl/ValidateFunctionResult.java b/idp-authn-impl/src/main/java/net/shibboleth/idp/authn/impl/ValidateFunctionResult.java
index 58db3739b..a7c0f373e 100644
--- a/idp-authn-impl/src/main/java/net/shibboleth/idp/authn/impl/ValidateFunctionResult.java
+++ b/idp-authn-impl/src/main/java/net/shibboleth/idp/authn/impl/ValidateFunctionResult.java
@@ -80,7 +80,7 @@ public class ValidateFunctionResult extends AbstractValidationAction {
      * @param strategy result strategy
      */
     public void setResultLookupStrategy(@Nonnull final Function<ProfileRequestContext,?> strategy) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         resultLookupStrategy = Constraint.isNotNull(strategy, "Result lookup strategy cannot be null");
     }
     
diff --git a/idp-authn-impl/src/main/java/net/shibboleth/idp/authn/impl/ValidateRemoteUser.java b/idp-authn-impl/src/main/java/net/shibboleth/idp/authn/impl/ValidateRemoteUser.java
index 458e58176..d00463eec 100644
--- a/idp-authn-impl/src/main/java/net/shibboleth/idp/authn/impl/ValidateRemoteUser.java
+++ b/idp-authn-impl/src/main/java/net/shibboleth/idp/authn/impl/ValidateRemoteUser.java
@@ -87,7 +87,7 @@ public class ValidateRemoteUser extends AbstractValidationAction {
      * @param allowed usernames to allow
      */
     public void setAllowedUsernames(@Nullable @NonnullElements final Collection<String> allowed) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         allowedUsernames = Set.copyOf(StringSupport.normalizeStringCollection(allowed));
     }
 
@@ -97,7 +97,7 @@ public class ValidateRemoteUser extends AbstractValidationAction {
      * @param denied usernames to deny
      */
     public void setDeniedUsernames(@Nullable @NonnullElements final Collection<String> denied) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         deniedUsernames = Set.copyOf(StringSupport.normalizeStringCollection(denied));
     }
 
@@ -107,7 +107,7 @@ public class ValidateRemoteUser extends AbstractValidationAction {
      * @param expression a matching expression
      */
     public void setMatchExpression(@Nullable final Pattern expression) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         if (expression != null && !expression.pattern().isEmpty()) {
             matchExpression = expression;
         } else {
diff --git a/idp-authn-impl/src/main/java/net/shibboleth/idp/authn/impl/ValidateUserAgentAddress.java b/idp-authn-impl/src/main/java/net/shibboleth/idp/authn/impl/ValidateUserAgentAddress.java
index 0a2ed5123..f4b14c38a 100644
--- a/idp-authn-impl/src/main/java/net/shibboleth/idp/authn/impl/ValidateUserAgentAddress.java
+++ b/idp-authn-impl/src/main/java/net/shibboleth/idp/authn/impl/ValidateUserAgentAddress.java
@@ -86,7 +86,7 @@ public class ValidateUserAgentAddress extends AbstractValidationAction {
      * @param newMappings the IP range(s) to authenticate as particular principals
      */
     public void setMappings(@Nullable @NonnullElements final Map<String,Collection<IPRange>> newMappings) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         if (newMappings != null) {
             mappings = new HashMap<>(newMappings.size());
             for (final Map.Entry<String,Collection<IPRange>> e : newMappings.entrySet()) {
diff --git a/idp-authn-impl/src/main/java/net/shibboleth/idp/authn/impl/X500SubjectCanonicalization.java b/idp-authn-impl/src/main/java/net/shibboleth/idp/authn/impl/X500SubjectCanonicalization.java
index 7b43e2945..942c601dc 100644
--- a/idp-authn-impl/src/main/java/net/shibboleth/idp/authn/impl/X500SubjectCanonicalization.java
+++ b/idp-authn-impl/src/main/java/net/shibboleth/idp/authn/impl/X500SubjectCanonicalization.java
@@ -100,7 +100,7 @@ public class X500SubjectCanonicalization extends AbstractSubjectCanonicalization
      * @param types types to search for
      */
     public void setSubjectAltNameTypes(@Nullable @NonnullElements final List<Integer> types) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         if (types != null) {
             subjectAltNameTypes = List.copyOf(types);
         } else {
@@ -114,7 +114,7 @@ public class X500SubjectCanonicalization extends AbstractSubjectCanonicalization
      * @param ids RDN OIDs to search for
      */
     public void setObjectIds(@Nullable @NonnullElements final List<String> ids) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         objectIds = List.copyOf(StringSupport.normalizeStringCollection(ids));
     }
     
diff --git a/idp-authn-impl/src/main/java/net/shibboleth/idp/authn/impl/X509CertificateCredentialValidator.java b/idp-authn-impl/src/main/java/net/shibboleth/idp/authn/impl/X509CertificateCredentialValidator.java
index 5729b11fd..ce34d1501 100644
--- a/idp-authn-impl/src/main/java/net/shibboleth/idp/authn/impl/X509CertificateCredentialValidator.java
+++ b/idp-authn-impl/src/main/java/net/shibboleth/idp/authn/impl/X509CertificateCredentialValidator.java
@@ -76,7 +76,7 @@ public class X509CertificateCredentialValidator extends AbstractCredentialValida
      */
     public void setCertificateContextLookupStrategy(
             @Nonnull final Function<AuthenticationContext,CertificateContext> strategy) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         certContextLookupStrategy = Constraint.isNotNull(strategy,
                 "CertificateContextLookupStrategy cannot be null");
     }
@@ -87,7 +87,7 @@ public class X509CertificateCredentialValidator extends AbstractCredentialValida
      * @param tm trust engine to use  
      */
     public void setTrustEngine(@Nullable final TrustEngine<? super X509Credential> tm) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         trustEngine = tm;
     }
     
@@ -99,7 +99,7 @@ public class X509CertificateCredentialValidator extends AbstractCredentialValida
      * @param flag flag to set
      */
     public void setSaveCertificateToCredentialSet(final boolean flag) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         saveCertificateToCredentialSet = flag;
     }
 
diff --git a/idp-authn-impl/src/main/java/net/shibboleth/idp/authn/proxy/impl/DiscoveryProfileRequestFunction.java b/idp-authn-impl/src/main/java/net/shibboleth/idp/authn/proxy/impl/DiscoveryProfileRequestFunction.java
index b134e57a2..a7aa103aa 100644
--- a/idp-authn-impl/src/main/java/net/shibboleth/idp/authn/proxy/impl/DiscoveryProfileRequestFunction.java
+++ b/idp-authn-impl/src/main/java/net/shibboleth/idp/authn/proxy/impl/DiscoveryProfileRequestFunction.java
@@ -78,7 +78,7 @@ public class DiscoveryProfileRequestFunction extends AbstractInitializableCompon
      */
     public void setRelyingPartyContextLookupStrategy(
             @Nonnull final Function<ProfileRequestContext,RelyingPartyContext> strategy) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         relyingPartyContextLookupStrategy =
                 Constraint.isNotNull(strategy, "RelyingPartyContext lookup strategy cannot be null");
     }
@@ -89,7 +89,7 @@ public class DiscoveryProfileRequestFunction extends AbstractInitializableCompon
      * @param strategy lookup strategy
      */
     public void setDiscoveryURLLookupStrategy(@Nonnull final Function<ProfileRequestContext,String> strategy) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         discoveryURLLookupStrategy = Constraint.isNotNull(strategy, "Discovery URL lookup strategy cannot be null");
     }
     
diff --git a/idp-authn-impl/src/main/java/net/shibboleth/idp/authn/proxy/impl/InitializeProxyProfileRequestContext.java b/idp-authn-impl/src/main/java/net/shibboleth/idp/authn/proxy/impl/InitializeProxyProfileRequestContext.java
index 52c495ddf..1b544cd31 100644
--- a/idp-authn-impl/src/main/java/net/shibboleth/idp/authn/proxy/impl/InitializeProxyProfileRequestContext.java
+++ b/idp-authn-impl/src/main/java/net/shibboleth/idp/authn/proxy/impl/InitializeProxyProfileRequestContext.java
@@ -73,7 +73,7 @@ public final class InitializeProxyProfileRequestContext extends AbstractProfileA
      */
     public void setProfileRequestContextCreationStrategy(
             @Nonnull final Function<ProfileRequestContext,ProfileRequestContext> strategy) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         profileRequestContextCreationStrategy = Constraint.isNotNull(strategy, "Creation strategy cannot be null");
     }
     
@@ -83,7 +83,7 @@ public final class InitializeProxyProfileRequestContext extends AbstractProfileA
      * @param id    profile ID to populate into the context
      */
     public void setProfileId(@Nullable final String id) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         profileId = StringSupport.trimOrNull(id);
     }
 
@@ -93,7 +93,7 @@ public final class InitializeProxyProfileRequestContext extends AbstractProfileA
      * @param id    logging ID to populate into the context
      */
     public void setLoggingId(@Nullable final String id) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         loggingId = StringSupport.trimOrNull(id);
     }
     
@@ -103,7 +103,7 @@ public final class InitializeProxyProfileRequestContext extends AbstractProfileA
      * @param browser   true iff the request is browser based
      */
     public void setBrowserProfile(final boolean browser) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         browserProfile = browser;
     }
     
diff --git a/idp-authn-impl/src/main/java/net/shibboleth/idp/authn/spnego/impl/KerberosRealmSettings.java b/idp-authn-impl/src/main/java/net/shibboleth/idp/authn/spnego/impl/KerberosRealmSettings.java
index 671403cb0..7dda8f5f6 100644
--- a/idp-authn-impl/src/main/java/net/shibboleth/idp/authn/spnego/impl/KerberosRealmSettings.java
+++ b/idp-authn-impl/src/main/java/net/shibboleth/idp/authn/spnego/impl/KerberosRealmSettings.java
@@ -47,7 +47,7 @@ public class KerberosRealmSettings extends AbstractInitializableComponent {
      * @param principal service principal
      */
     public void setServicePrincipal(@Nonnull @NotEmpty final String principal) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         servicePrincipal = Constraint.isNotEmpty(StringSupport.trim(principal), "Principal cannot be null or empty");
     }
 
@@ -66,7 +66,7 @@ public class KerberosRealmSettings extends AbstractInitializableComponent {
      * @param newKeytab keytab to use
      */
     public void setKeytab(@Nullable final String newKeytab) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         keytab = StringSupport.trim(newKeytab);
     }
 
@@ -85,7 +85,7 @@ public class KerberosRealmSettings extends AbstractInitializableComponent {
      * @param newPassword password to use
      */
     public void setPassword(@Nullable final String newPassword) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         password = newPassword;
     }
 
diff --git a/idp-authn-impl/src/main/java/net/shibboleth/idp/authn/spnego/impl/SPNEGOAutoLoginManager.java b/idp-authn-impl/src/main/java/net/shibboleth/idp/authn/spnego/impl/SPNEGOAutoLoginManager.java
index 4907905a0..e53950c6f 100644
--- a/idp-authn-impl/src/main/java/net/shibboleth/idp/authn/spnego/impl/SPNEGOAutoLoginManager.java
+++ b/idp-authn-impl/src/main/java/net/shibboleth/idp/authn/spnego/impl/SPNEGOAutoLoginManager.java
@@ -64,7 +64,7 @@ public class SPNEGOAutoLoginManager extends AbstractInitializableComponent {
      * @param manager the CookieManager to use.
      */
     public void setCookieManager(@Nonnull final CookieManager manager) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         cookieManager = Constraint.isNotNull(manager, "CookieManager cannot be null");
     }
 
@@ -85,7 +85,7 @@ public class SPNEGOAutoLoginManager extends AbstractInitializableComponent {
      * @since 4.2.0
      */
     public void setCookieName(@Nonnull @NotEmpty final String name) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         cookieName = Constraint.isNotEmpty(StringSupport.trimOrNull(name), "Cookie name cannot be null or empty");
     }
     
diff --git a/idp-cas-impl/src/main/java/net/shibboleth/idp/cas/flow/impl/AbstractOutgoingSamlMessageAction.java b/idp-cas-impl/src/main/java/net/shibboleth/idp/cas/flow/impl/AbstractOutgoingSamlMessageAction.java
index 4ee4cb1dc..523fd5635 100644
--- a/idp-cas-impl/src/main/java/net/shibboleth/idp/cas/flow/impl/AbstractOutgoingSamlMessageAction.java
+++ b/idp-cas-impl/src/main/java/net/shibboleth/idp/cas/flow/impl/AbstractOutgoingSamlMessageAction.java
@@ -73,7 +73,7 @@ public abstract class AbstractOutgoingSamlMessageAction extends
      * @since 4.0.0
      */
     public void setOutgoingBinding(@Nonnull final BindingDescriptor descriptor) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         outgoingBinding = Constraint.isNotNull(descriptor, "Outgoing BindingDescriptor cannot be null");
     }
     
diff --git a/idp-cas-impl/src/main/java/net/shibboleth/idp/cas/flow/impl/BuildSAMLMetadataContextAction.java b/idp-cas-impl/src/main/java/net/shibboleth/idp/cas/flow/impl/BuildSAMLMetadataContextAction.java
index 46d5c60ec..efa6749d8 100644
--- a/idp-cas-impl/src/main/java/net/shibboleth/idp/cas/flow/impl/BuildSAMLMetadataContextAction.java
+++ b/idp-cas-impl/src/main/java/net/shibboleth/idp/cas/flow/impl/BuildSAMLMetadataContextAction.java
@@ -66,7 +66,7 @@ public class BuildSAMLMetadataContextAction<RequestType,ResponseType>
      * @param flag flag to set
      */
     public void setRelyingPartyIdFromMetadata(final boolean flag) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         relyingPartyIdFromMetadata = flag;
     }
     
diff --git a/idp-cas-impl/src/main/java/net/shibboleth/idp/cas/flow/impl/GrantProxyTicketAction.java b/idp-cas-impl/src/main/java/net/shibboleth/idp/cas/flow/impl/GrantProxyTicketAction.java
index bf1621ecf..5bea311b8 100644
--- a/idp-cas-impl/src/main/java/net/shibboleth/idp/cas/flow/impl/GrantProxyTicketAction.java
+++ b/idp-cas-impl/src/main/java/net/shibboleth/idp/cas/flow/impl/GrantProxyTicketAction.java
@@ -115,7 +115,7 @@ public class GrantProxyTicketAction extends AbstractCASProtocolAction<ProxyTicke
      * @param predicate Session validation predicate. Default is <code>Predicates.alwaysFalse()</code>.
      */
     public void setValidateIdPSessionPredicate(@Nonnull final Predicate<ProfileRequestContext> predicate) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         validateIdPSessionPredicate = Constraint.isNotNull(predicate, "Session validation condition cannot be null");
     }
 
diff --git a/idp-cas-impl/src/main/java/net/shibboleth/idp/cas/flow/impl/GrantServiceTicketAction.java b/idp-cas-impl/src/main/java/net/shibboleth/idp/cas/flow/impl/GrantServiceTicketAction.java
index 9c0b46692..713020556 100644
--- a/idp-cas-impl/src/main/java/net/shibboleth/idp/cas/flow/impl/GrantServiceTicketAction.java
+++ b/idp-cas-impl/src/main/java/net/shibboleth/idp/cas/flow/impl/GrantServiceTicketAction.java
@@ -132,7 +132,7 @@ public class GrantServiceTicketAction extends AbstractCASProtocolAction<ServiceT
      */
     public void setAttributeContextLookupStrategy(
             @Nonnull final Function<ProfileRequestContext, AttributeContext> strategy) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         attributeContextLookupStrategy =
                 Constraint.isNotNull(strategy, "AttributeContext lookup strategy cannot be null");
     }
diff --git a/idp-cas-impl/src/main/java/net/shibboleth/idp/cas/flow/impl/PrepareTicketValidationResponseAction.java b/idp-cas-impl/src/main/java/net/shibboleth/idp/cas/flow/impl/PrepareTicketValidationResponseAction.java
index f49041bc0..dbe5ae967 100644
--- a/idp-cas-impl/src/main/java/net/shibboleth/idp/cas/flow/impl/PrepareTicketValidationResponseAction.java
+++ b/idp-cas-impl/src/main/java/net/shibboleth/idp/cas/flow/impl/PrepareTicketValidationResponseAction.java
@@ -119,7 +119,7 @@ public class PrepareTicketValidationResponseAction extends
      * @param registry registry service interface
      */
     public void setTranscoderRegistry(@Nonnull final ReloadableService<AttributeTranscoderRegistry> registry) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         transcoderRegistry = Constraint.isNotNull(registry, "AttributeTranscoderRegistry cannot be null");
     }
     
diff --git a/idp-consent-impl/src/main/java/net/shibboleth/idp/consent/flow/ar/impl/AttributeReleaseFlowDescriptor.java b/idp-consent-impl/src/main/java/net/shibboleth/idp/consent/flow/ar/impl/AttributeReleaseFlowDescriptor.java
index 909846b18..1a3528378 100644
--- a/idp-consent-impl/src/main/java/net/shibboleth/idp/consent/flow/ar/impl/AttributeReleaseFlowDescriptor.java
+++ b/idp-consent-impl/src/main/java/net/shibboleth/idp/consent/flow/ar/impl/AttributeReleaseFlowDescriptor.java
@@ -91,7 +91,7 @@ public class AttributeReleaseFlowDescriptor extends ConsentFlowDescriptor {
      * @param flag true if consent should not be remembered
      */
     public void setDoNotRememberConsentAllowed(final boolean flag) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         doNotRememberConsentAllowed = flag;
     }
 
@@ -101,7 +101,7 @@ public class AttributeReleaseFlowDescriptor extends ConsentFlowDescriptor {
      * @param flag true iff consent to any attribute and to any relying party is allowed
      */
     public void setGlobalConsentAllowed(final boolean flag) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         globalConsentAllowed = flag;
     }
 
@@ -111,7 +111,7 @@ public class AttributeReleaseFlowDescriptor extends ConsentFlowDescriptor {
      * @param flag true iff per-attribute consent is enabled
      */
     public void setPerAttributeConsentEnabled(final boolean flag) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         perAttributeConsentEnabled = flag;
     }
 
@@ -122,7 +122,7 @@ public class AttributeReleaseFlowDescriptor extends ConsentFlowDescriptor {
      */
     public void setAttributeValuesHashFunction(
             @Nonnull final Function<Collection<IdPAttributeValue>, String> function) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
                 attributeValuesHashFunction = Constraint.isNotNull(function, 
                         "Attribute values hash function cannot be null");
     }
diff --git a/idp-consent-impl/src/main/java/net/shibboleth/idp/consent/flow/impl/ConsentFlowDescriptor.java b/idp-consent-impl/src/main/java/net/shibboleth/idp/consent/flow/impl/ConsentFlowDescriptor.java
index c5b54698a..3a3a6284a 100644
--- a/idp-consent-impl/src/main/java/net/shibboleth/idp/consent/flow/impl/ConsentFlowDescriptor.java
+++ b/idp-consent-impl/src/main/java/net/shibboleth/idp/consent/flow/impl/ConsentFlowDescriptor.java
@@ -102,7 +102,7 @@ public class ConsentFlowDescriptor extends ProfileInterceptorFlowDescriptor {
      * @param flag true if consent equality includes comparing consent values
      */
     public void setCompareValues(final boolean flag) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         compareValues = flag;
     }
 
@@ -112,7 +112,7 @@ public class ConsentFlowDescriptor extends ProfileInterceptorFlowDescriptor {
      * @param consentLifetime time to expire consent storage records.  null means infinite
      */
     public void setLifetime(@Nullable final Duration consentLifetime) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         lifetime = consentLifetime;
     }
 
@@ -122,7 +122,7 @@ public class ConsentFlowDescriptor extends ProfileInterceptorFlowDescriptor {
      * @param maximum the maximum number of records, or <=0 for no limit
      */
     public void setMaximumNumberOfStoredRecords(final int maximum) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         maxStoredRecords = maximum;
     }
 
@@ -132,7 +132,7 @@ public class ConsentFlowDescriptor extends ProfileInterceptorFlowDescriptor {
      * @param maximum the maximum number of records, or <=0 for no limit
      */
     public void setExpandedNumberOfStoredRecords(final int maximum) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         expandedMaxStoredRecords = maximum;
     }
 
@@ -144,7 +144,7 @@ public class ConsentFlowDescriptor extends ProfileInterceptorFlowDescriptor {
      * @param size size threshold
      */
     public void setExpandedStorageThreshold(final long size) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         expandedStorageThreshold = size;
     }
 }
\ No newline at end of file
diff --git a/idp-consent-impl/src/main/java/net/shibboleth/idp/consent/flow/storage/impl/AbstractConsentIndexedStorageAction.java b/idp-consent-impl/src/main/java/net/shibboleth/idp/consent/flow/storage/impl/AbstractConsentIndexedStorageAction.java
index c6bfbd531..baa227319 100644
--- a/idp-consent-impl/src/main/java/net/shibboleth/idp/consent/flow/storage/impl/AbstractConsentIndexedStorageAction.java
+++ b/idp-consent-impl/src/main/java/net/shibboleth/idp/consent/flow/storage/impl/AbstractConsentIndexedStorageAction.java
@@ -94,7 +94,7 @@ public class AbstractConsentIndexedStorageAction extends AbstractConsentStorageA
      * @param strategy the storage index key lookup strategy
      */
     public void setStorageIndexKeyLookupStrategy(@Nonnull final Function<ProfileRequestContext, String> strategy) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         storageIndexKeyLookupStrategy =
                 Constraint.isNotNull(strategy, "Storage index key lookup strategy cannot be null");
     }
@@ -105,7 +105,7 @@ public class AbstractConsentIndexedStorageAction extends AbstractConsentStorageA
      * @param serializer the storage keys serializer
      */
     public void setStorageKeysSerializer(@Nonnull final StorageSerializer<Collection<String>> serializer) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         storageKeysSerializer = Constraint.isNotNull(serializer, "Storage keys serializer cannot be null");
     }
 
@@ -116,7 +116,7 @@ public class AbstractConsentIndexedStorageAction extends AbstractConsentStorageA
      */
     public void setStorageKeysStrategy(
             @Nonnull final Function<Pair<ProfileRequestContext, List<String>>, List<String>> strategy) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         storageKeysStrategy = Constraint.isNotNull(strategy, "Storage keys strategy cannot be null");
     }
 
diff --git a/idp-consent-impl/src/main/java/net/shibboleth/idp/consent/flow/storage/impl/AbstractConsentStorageAction.java b/idp-consent-impl/src/main/java/net/shibboleth/idp/consent/flow/storage/impl/AbstractConsentStorageAction.java
index cc2ff02a7..29779cee9 100644
--- a/idp-consent-impl/src/main/java/net/shibboleth/idp/consent/flow/storage/impl/AbstractConsentStorageAction.java
+++ b/idp-consent-impl/src/main/java/net/shibboleth/idp/consent/flow/storage/impl/AbstractConsentStorageAction.java
@@ -120,7 +120,7 @@ public abstract class AbstractConsentStorageAction extends AbstractConsentAction
      * @param serializer storage serializer
      */
     public void setStorageSerializer(@Nonnull final StorageSerializer<Map<String,Consent>> serializer) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         storageSerializer = Constraint.isNotNull(serializer, "Storage serializer cannot be null");
     }
     
@@ -130,7 +130,7 @@ public abstract class AbstractConsentStorageAction extends AbstractConsentAction
      * @param strategy the storage context lookup strategy
      */
     public void setStorageContextLookupStrategy(@Nonnull final Function<ProfileRequestContext, String> strategy) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         storageContextLookupStrategy = Constraint.isNotNull(strategy, "Storage context lookup strategy cannot be null");
     }
 
@@ -140,7 +140,7 @@ public abstract class AbstractConsentStorageAction extends AbstractConsentAction
      * @param strategy the storage key lookup strategy
      */
     public void setStorageKeyLookupStrategy(@Nonnull final Function<ProfileRequestContext, String> strategy) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         storageKeyLookupStrategy = Constraint.isNotNull(strategy, "Storage key lookup strategy cannot be null");
     }
 
diff --git a/idp-consent-impl/src/main/java/net/shibboleth/idp/consent/flow/storage/impl/RevokeConsent.java b/idp-consent-impl/src/main/java/net/shibboleth/idp/consent/flow/storage/impl/RevokeConsent.java
index efa94c68b..b851c2fcc 100644
--- a/idp-consent-impl/src/main/java/net/shibboleth/idp/consent/flow/storage/impl/RevokeConsent.java
+++ b/idp-consent-impl/src/main/java/net/shibboleth/idp/consent/flow/storage/impl/RevokeConsent.java
@@ -49,7 +49,7 @@ public class RevokeConsent extends AbstractConsentIndexedStorageAction {
      * @param flag flag to set
      */
     public void setMaskStorageErrors(final boolean flag) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         maskStorageErrors = flag;
     }
 
diff --git a/idp-consent-impl/src/main/java/net/shibboleth/idp/consent/logic/impl/AttributePredicate.java b/idp-consent-impl/src/main/java/net/shibboleth/idp/consent/logic/impl/AttributePredicate.java
index b230d8914..aec1002ba 100644
--- a/idp-consent-impl/src/main/java/net/shibboleth/idp/consent/logic/impl/AttributePredicate.java
+++ b/idp-consent-impl/src/main/java/net/shibboleth/idp/consent/logic/impl/AttributePredicate.java
@@ -60,7 +60,7 @@ public class AttributePredicate extends AbstractInitializableComponent implement
      * @param prompted prompted attribute IDs
      */
     public void setPromptedAttributeIds(@Nullable @NonnullElements final Collection<String> prompted) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         promptedAttributeIds = new HashSet<>(StringSupport.normalizeStringCollection(prompted));
     }
 
@@ -70,7 +70,7 @@ public class AttributePredicate extends AbstractInitializableComponent implement
      * @param ignored ignored attribute IDs
      */
     public void setIgnoredAttributeIds(@Nullable @NonnullElements final Collection<String> ignored) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         ignoredAttributeIds = new HashSet<>(StringSupport.normalizeStringCollection(ignored));
     }
 
@@ -80,7 +80,7 @@ public class AttributePredicate extends AbstractInitializableComponent implement
      * @param expression an attribute ID matching expression
      */
     public void setAttributeIdMatchExpression(@Nullable final Pattern expression) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         if (expression != null && !expression.pattern().isEmpty()) {
             matchExpression = expression;
         } else {
diff --git a/idp-consent-impl/src/main/java/net/shibboleth/idp/consent/logic/impl/CounterStorageKeyFunction.java b/idp-consent-impl/src/main/java/net/shibboleth/idp/consent/logic/impl/CounterStorageKeyFunction.java
index ff7e51432..966117051 100644
--- a/idp-consent-impl/src/main/java/net/shibboleth/idp/consent/logic/impl/CounterStorageKeyFunction.java
+++ b/idp-consent-impl/src/main/java/net/shibboleth/idp/consent/logic/impl/CounterStorageKeyFunction.java
@@ -77,7 +77,7 @@ public class CounterStorageKeyFunction extends AbstractInitializableComponent im
      */
     public void setInterceptorContextLookupStrategy(
             @Nonnull final Function<ProfileRequestContext, ProfileInterceptorContext> strategy) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         interceptorContextlookupStrategy =
                 Constraint.isNotNull(strategy, "Profile interceptor context lookup strategy cannot be null");
     }
@@ -88,7 +88,7 @@ public class CounterStorageKeyFunction extends AbstractInitializableComponent im
      * @param strategy the storage context lookup strategy
      */
     public void setStorageContextLookupStrategy(@Nonnull final Function<ProfileRequestContext, String> strategy) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         storageContextLookupStrategy = Constraint.isNotNull(strategy, "Storage context lookup strategy cannot be null");
     }
 
diff --git a/idp-consent-impl/src/main/java/net/shibboleth/idp/consent/logic/impl/MessageSourceConsentFunction.java b/idp-consent-impl/src/main/java/net/shibboleth/idp/consent/logic/impl/MessageSourceConsentFunction.java
index a5aaa9280..5329e3883 100644
--- a/idp-consent-impl/src/main/java/net/shibboleth/idp/consent/logic/impl/MessageSourceConsentFunction.java
+++ b/idp-consent-impl/src/main/java/net/shibboleth/idp/consent/logic/impl/MessageSourceConsentFunction.java
@@ -92,7 +92,7 @@ public class MessageSourceConsentFunction extends AbstractInitializableComponent
      * @param strategy lookup strategy
      */
     public void setConsentKeyLookupStrategy(@Nonnull final Function<ProfileRequestContext,String> strategy) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         consentKeyLookupStrategy = Constraint.isNotNull(strategy, "Consent key lookup strategy cannot be null");
     }
 
@@ -102,7 +102,7 @@ public class MessageSourceConsentFunction extends AbstractInitializableComponent
      * @param suffix suffix of message code for the consent value
      */
     public void setConsentValueMessageCodeSuffix(@Nonnull @NotEmpty final String suffix) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         consentValueMessageCodeSuffix =
                 Constraint.isNotNull(StringSupport.trimOrNull(suffix),
                         "Consent value message code suffix cannot be null nor empty");
@@ -115,7 +115,7 @@ public class MessageSourceConsentFunction extends AbstractInitializableComponent
      */
     public void setConsentFlowDescriptorLookupStrategy(
             @Nonnull final Function<ProfileRequestContext,ConsentFlowDescriptor> strategy) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         consentFlowDescriptorLookupStrategy =
                 Constraint.isNotNull(strategy, "Consent flow descriptor lookup strategy cannot be null");
     }
@@ -137,7 +137,7 @@ public class MessageSourceConsentFunction extends AbstractInitializableComponent
      * @param function hash function
      */
     public void setHashFunction(@Nonnull final Function<String,String> function) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         hashFunction = Constraint.isNotNull(function, "Hash function cannot be null");
     }
 
diff --git a/idp-consent-impl/src/main/java/net/shibboleth/idp/consent/storage/impl/ConsentSerializer.java b/idp-consent-impl/src/main/java/net/shibboleth/idp/consent/storage/impl/ConsentSerializer.java
index 726728ad1..904243487 100644
--- a/idp-consent-impl/src/main/java/net/shibboleth/idp/consent/storage/impl/ConsentSerializer.java
+++ b/idp-consent-impl/src/main/java/net/shibboleth/idp/consent/storage/impl/ConsentSerializer.java
@@ -96,7 +96,7 @@ public class ConsentSerializer extends AbstractInitializableComponent implements
      * @param mappings string to symbolic mappings
      */
     public void setSymbolics(@Nonnull @NonnullElements final Map<String, Integer> mappings) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         symbolics = HashBiMap.create(Constraint.isNotNull(mappings, "Symbolic mappings cannot be null"));
     }
 
diff --git a/idp-core/src/main/java/net/shibboleth/idp/spring/DeprecatedPropertyBean.java b/idp-core/src/main/java/net/shibboleth/idp/spring/DeprecatedPropertyBean.java
index 63bb0be02..4e6f27f6f 100644
--- a/idp-core/src/main/java/net/shibboleth/idp/spring/DeprecatedPropertyBean.java
+++ b/idp-core/src/main/java/net/shibboleth/idp/spring/DeprecatedPropertyBean.java
@@ -67,7 +67,7 @@ public class DeprecatedPropertyBean extends AbstractInitializableComponent imple
      * @param map deprecated property names and replacements
      */
     public void setDeprecatedProperties(@Nonnull final Map<String,String> map) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         Constraint.isNotNull(map, "Property map cannot be null");
         
         deprecatedProperties = new HashMap<>(map.size());
@@ -83,7 +83,7 @@ public class DeprecatedPropertyBean extends AbstractInitializableComponent imple
      * @param properties defunct property names
      */
     public void setDeadProperties(@Nonnull @NonnullElements final Collection<String> properties) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         Constraint.isNotNull(properties, "Property collection cannot be null");
         
         deadProperties = StringSupport.normalizeStringCollection(properties);
diff --git a/idp-core/src/main/java/net/shibboleth/idp/spring/OpenSAMLConfigBean.java b/idp-core/src/main/java/net/shibboleth/idp/spring/OpenSAMLConfigBean.java
index 838b046fc..40db78014 100644
--- a/idp-core/src/main/java/net/shibboleth/idp/spring/OpenSAMLConfigBean.java
+++ b/idp-core/src/main/java/net/shibboleth/idp/spring/OpenSAMLConfigBean.java
@@ -69,7 +69,7 @@ public class OpenSAMLConfigBean extends AbstractInitializableComponent {
      * @param newParserPool the parser pool to set
      */
     public void setParserPool(@Nullable final ParserPool newParserPool) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         parserPool = newParserPool;
     }
     
@@ -88,7 +88,7 @@ public class OpenSAMLConfigBean extends AbstractInitializableComponent {
      * @param newParserPool the decryption parser pool to set
      */
     public void setDecryptionParserPool(@Nullable final ParserPool newParserPool) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         decryptionParserPool = newParserPool;
     }
     
diff --git a/idp-installer/src/main/java/net/shibboleth/idp/installer/BuildWar.java b/idp-installer/src/main/java/net/shibboleth/idp/installer/BuildWar.java
index ee92eed2b..0e3873c87 100644
--- a/idp-installer/src/main/java/net/shibboleth/idp/installer/BuildWar.java
+++ b/idp-installer/src/main/java/net/shibboleth/idp/installer/BuildWar.java
@@ -101,7 +101,7 @@ public final class BuildWar extends AbstractInitializableComponent {
      * @throws BuildException if unexpected badness occurs.
      */
     public void execute() throws BuildException {
-        throwComponentStateExceptions();
+        checkComponentActive();
         final Path warFile = targetDir.resolve("war").resolve("idp.war");
 
         log.info("Rebuilding {}, Version {}", warFile.toAbsolutePath(), Version.getVersion());
diff --git a/idp-installer/src/main/java/net/shibboleth/idp/installer/CopyDistribution.java b/idp-installer/src/main/java/net/shibboleth/idp/installer/CopyDistribution.java
index f03b7001b..597c7ba66 100644
--- a/idp-installer/src/main/java/net/shibboleth/idp/installer/CopyDistribution.java
+++ b/idp-installer/src/main/java/net/shibboleth/idp/installer/CopyDistribution.java
@@ -67,7 +67,7 @@ public final class CopyDistribution extends AbstractInitializableComponent {
      * @throws BuildException if badness occurs
      */
     public void execute() throws BuildException {
-        throwComponentStateExceptions();
+        checkComponentActive();
         deleteOld();
         copyDist();
         copyBinDocSystem();
diff --git a/idp-installer/src/main/java/net/shibboleth/idp/installer/InstallerPropertiesImpl.java b/idp-installer/src/main/java/net/shibboleth/idp/installer/InstallerPropertiesImpl.java
index dd06c3cb7..9591080b9 100644
--- a/idp-installer/src/main/java/net/shibboleth/idp/installer/InstallerPropertiesImpl.java
+++ b/idp-installer/src/main/java/net/shibboleth/idp/installer/InstallerPropertiesImpl.java
@@ -340,7 +340,7 @@ public class InstallerPropertiesImpl extends AbstractInitializableComponent impl
      * This is slightly complicated because the default depends on what we are doing.
      */
     @Nonnull public Path getTargetDir() throws BuildException {
-        throwComponentStateExceptions();
+        checkComponentActive();
         if (targetDir != null) {
             return targetDir;
         }
diff --git a/idp-installer/src/main/java/net/shibboleth/idp/installer/V4Install.java b/idp-installer/src/main/java/net/shibboleth/idp/installer/V4Install.java
index ab16c3b66..5c28ce80b 100644
--- a/idp-installer/src/main/java/net/shibboleth/idp/installer/V4Install.java
+++ b/idp-installer/src/main/java/net/shibboleth/idp/installer/V4Install.java
@@ -115,7 +115,7 @@ public class V4Install extends AbstractInitializableComponent {
      * @throws BuildException if unexpected badness occurs.
      */
     public void execute() throws BuildException {
-        throwComponentStateExceptions();
+        checkComponentActive();
         handleVersioning();
         checkPreConditions();
 
@@ -137,7 +137,7 @@ public class V4Install extends AbstractInitializableComponent {
      * prior to initialization.
      */
     public void setMetadataGenerator(final MetadataGenerator what) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         metadataGenerator = what;
     }
     
@@ -624,7 +624,7 @@ public class V4Install extends AbstractInitializableComponent {
                 log.debug("Skipping key generation");
                 return;
             }
-            throwComponentStateExceptions();
+            checkComponentActive();
             createdSigning = generateKey("idp-signing");
             createdEncryption = generateKey("idp-encryption");
             generateKeyStore();
diff --git a/idp-installer/src/main/java/net/shibboleth/idp/installer/metadata/impl/MetadataGeneratorImpl.java b/idp-installer/src/main/java/net/shibboleth/idp/installer/metadata/impl/MetadataGeneratorImpl.java
index 3e677a647..c536a28d3 100644
--- a/idp-installer/src/main/java/net/shibboleth/idp/installer/metadata/impl/MetadataGeneratorImpl.java
+++ b/idp-installer/src/main/java/net/shibboleth/idp/installer/metadata/impl/MetadataGeneratorImpl.java
@@ -167,13 +167,13 @@ public class MetadataGeneratorImpl extends AbstractInitializableComponent implem
 
     /** {@inheritDoc} */
     public void setOutput(@Nonnull final File file) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         output = Constraint.isNotNull(file, "provided file must be nonnull");
     }
 
     /** {@inheritDoc} */
     public void setParameters(@Nonnull final MetadataGeneratorParameters what) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         params = Constraint.isNotNull(what, "provided params must be nonnull");
     }
 
@@ -259,7 +259,7 @@ public class MetadataGeneratorImpl extends AbstractInitializableComponent implem
 
     /** {@inheritDoc} */
     public void generate() throws BuildException {
-        throwComponentStateExceptions();
+        checkComponentActive();
         try {
             writer.write("<?xml version=\"1.0\" encoding=\"UTF-8\"?>");
             writer.newLine();
diff --git a/idp-installer/src/main/java/net/shibboleth/idp/installer/plugin/impl/PluginInstaller.java b/idp-installer/src/main/java/net/shibboleth/idp/installer/plugin/impl/PluginInstaller.java
index 4cacef479..5eb2fa2cd 100644
--- a/idp-installer/src/main/java/net/shibboleth/idp/installer/plugin/impl/PluginInstaller.java
+++ b/idp-installer/src/main/java/net/shibboleth/idp/installer/plugin/impl/PluginInstaller.java
@@ -177,7 +177,7 @@ public final class PluginInstaller extends AbstractInitializableComponent implem
      * @param home Where we are working from
      */
     public void setIdpHome(@Nonnull final Path home) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         idpHome = Constraint.isNotNull(home, "IdPHome should be non-null");
     }
 
@@ -220,7 +220,7 @@ public final class PluginInstaller extends AbstractInitializableComponent implem
      * @param params what to set.
      */
     public void setModuleContextSecurityParams(@Nullable final HttpClientSecurityParameters params) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         securityParams =  params;
     }
 
@@ -651,7 +651,7 @@ public final class PluginInstaller extends AbstractInitializableComponent implem
 
     /** Build the Http Client if it doesn't exist. */
     private void buildHttpClient() {
-        throwComponentStateExceptions();
+        checkComponentActive();
         if (httpClient == null) {
             LOG.debug("No HttpClient built, creating default");
             try {
diff --git a/idp-installer/src/main/java/net/shibboleth/idp/installer/plugin/impl/PluginState.java b/idp-installer/src/main/java/net/shibboleth/idp/installer/plugin/impl/PluginState.java
index f5d564b18..f745cca11 100644
--- a/idp-installer/src/main/java/net/shibboleth/idp/installer/plugin/impl/PluginState.java
+++ b/idp-installer/src/main/java/net/shibboleth/idp/installer/plugin/impl/PluginState.java
@@ -107,7 +107,7 @@ public class PluginState extends AbstractInitializableComponent {
      * @param what what to set.
      */
     public void setHttpClient(@Nonnull final HttpClient what) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         httpClient = Constraint.isNotNull(what, "HttpClient cannot be null");
     }
 
diff --git a/idp-installer/src/main/java/net/shibboleth/idp/installer/plugin/impl/TrustStore.java b/idp-installer/src/main/java/net/shibboleth/idp/installer/plugin/impl/TrustStore.java
index 6c548c675..49a2133d5 100644
--- a/idp-installer/src/main/java/net/shibboleth/idp/installer/plugin/impl/TrustStore.java
+++ b/idp-installer/src/main/java/net/shibboleth/idp/installer/plugin/impl/TrustStore.java
@@ -84,7 +84,7 @@ import net.shibboleth.utilities.java.support.component.ComponentInitializationEx
      * @param what to set.
      */
     public void setPluginId(final String what) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         pluginId = what;
     }
 
@@ -93,7 +93,7 @@ import net.shibboleth.utilities.java.support.component.ComponentInitializationEx
      * @param what The idpHome to set.
      */
     public void setIdpHome(final Path what) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         idpHome = what;
     }
 
@@ -101,7 +101,7 @@ import net.shibboleth.utilities.java.support.component.ComponentInitializationEx
     * @param what The value to set.
     */
    public void setTrustStore(@Nullable final String what) {
-       throwSetterPreconditionExceptions();
+       checkSetterPreconditions();
        explicitTrustStore = what;
    }
 
@@ -169,7 +169,7 @@ import net.shibboleth.utilities.java.support.component.ComponentInitializationEx
      * from {@link PGPPublicKeyRingCollection#encode(OutputStream)}
      */
     public void saveStore() throws IOException {
-        throwComponentStateExceptions();
+        checkComponentActive();
         saveStoreInternal();
     }
 
diff --git a/idp-profile-api/src/main/java/net/shibboleth/idp/profile/AbstractProfileAction.java b/idp-profile-api/src/main/java/net/shibboleth/idp/profile/AbstractProfileAction.java
index 3112e4c5d..29bc559bc 100644
--- a/idp-profile-api/src/main/java/net/shibboleth/idp/profile/AbstractProfileAction.java
+++ b/idp-profile-api/src/main/java/net/shibboleth/idp/profile/AbstractProfileAction.java
@@ -100,7 +100,7 @@ public abstract class AbstractProfileAction
      */
     public void setProfileContextLookupStrategy(
             @Nonnull final Function<RequestContext,ProfileRequestContext> strategy) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
 
         profileContextLookupStrategy =
                 Constraint.isNotNull(strategy, "ProfileRequestContext lookup strategy cannot be null");
@@ -109,7 +109,7 @@ public abstract class AbstractProfileAction
     /** {@inheritDoc} */
     @Override
     @Nonnull public Event execute(@Nonnull final RequestContext springRequestContext) {
-        throwComponentStateExceptions();
+        checkComponentActive();
 
         final ProfileRequestContext profileRequestContext =
                 profileContextLookupStrategy.apply(springRequestContext);
diff --git a/idp-profile-api/src/main/java/net/shibboleth/idp/profile/ScriptedAction.java b/idp-profile-api/src/main/java/net/shibboleth/idp/profile/ScriptedAction.java
index 8447ce731..00e56ae49 100644
--- a/idp-profile-api/src/main/java/net/shibboleth/idp/profile/ScriptedAction.java
+++ b/idp-profile-api/src/main/java/net/shibboleth/idp/profile/ScriptedAction.java
@@ -95,7 +95,7 @@ public class ScriptedAction extends AbstractProfileAction {
      * @param object the custom object
      */
     @Nullable public void setCustomObject(@Nullable final Object object) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         scriptEvaluator.setCustomObject(object);
     }
 
@@ -107,7 +107,7 @@ public class ScriptedAction extends AbstractProfileAction {
      * @since 3.4.0
      */
     public void setHideExceptions(final boolean flag) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         scriptEvaluator.setHideExceptions(flag);
     }
     
diff --git a/idp-profile-api/src/main/java/net/shibboleth/idp/profile/interceptor/AbstractProfileInterceptorAction.java b/idp-profile-api/src/main/java/net/shibboleth/idp/profile/interceptor/AbstractProfileInterceptorAction.java
index 749190892..21af3a876 100644
--- a/idp-profile-api/src/main/java/net/shibboleth/idp/profile/interceptor/AbstractProfileInterceptorAction.java
+++ b/idp-profile-api/src/main/java/net/shibboleth/idp/profile/interceptor/AbstractProfileInterceptorAction.java
@@ -65,7 +65,7 @@ public abstract class AbstractProfileInterceptorAction extends
      * @param strategy lookup strategy function
      */
     public void setLookupStrategy(@Nonnull final Function<ProfileRequestContext, ProfileInterceptorContext> strategy) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         interceptorContextlookupStrategy = Constraint.isNotNull(strategy, "Strategy cannot be null");
     }
 
diff --git a/idp-profile-api/src/main/java/net/shibboleth/idp/profile/interceptor/ProfileInterceptorFlowDescriptor.java b/idp-profile-api/src/main/java/net/shibboleth/idp/profile/interceptor/ProfileInterceptorFlowDescriptor.java
index 58840edb7..0202db722 100644
--- a/idp-profile-api/src/main/java/net/shibboleth/idp/profile/interceptor/ProfileInterceptorFlowDescriptor.java
+++ b/idp-profile-api/src/main/java/net/shibboleth/idp/profile/interceptor/ProfileInterceptorFlowDescriptor.java
@@ -70,7 +70,7 @@ public class ProfileInterceptorFlowDescriptor extends AbstractIdentifiableInitia
      * @param condition predicate that controls activation of the flow
      */
     public void setActivationCondition(@Nonnull final Predicate<ProfileRequestContext> condition) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         activationCondition = Constraint.isNotNull(condition, "Activation condition predicate cannot be null");
     }
 
@@ -89,7 +89,7 @@ public class ProfileInterceptorFlowDescriptor extends AbstractIdentifiableInitia
      * @param isSupported whether this flow supports non-browser clients
      */
     public void setNonBrowserSupported(final boolean isSupported) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         supportsNonBrowser = isSupported;
     }
 
@@ -108,7 +108,7 @@ public class ProfileInterceptorFlowDescriptor extends AbstractIdentifiableInitia
      * @param service the storage service
      */
     public void setStorageService(@Nonnull final StorageService service) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         storageService = Constraint.isNotNull(service, "Storage service can not be null");
     }
 
diff --git a/idp-profile-api/src/main/java/net/shibboleth/idp/relyingparty/RelyingPartyConfiguration.java b/idp-profile-api/src/main/java/net/shibboleth/idp/relyingparty/RelyingPartyConfiguration.java
index 3c319962a..26f907efd 100644
--- a/idp-profile-api/src/main/java/net/shibboleth/idp/relyingparty/RelyingPartyConfiguration.java
+++ b/idp-profile-api/src/main/java/net/shibboleth/idp/relyingparty/RelyingPartyConfiguration.java
@@ -91,7 +91,7 @@ public class RelyingPartyConfiguration extends AbstractIdentifiableInitializable
      * @param responder ID to use when responding to messages
      */
     public void setResponderId(@Nonnull @NotEmpty final String responder) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         final String id =
                 Constraint.isNotNull(StringSupport.trimOrNull(responder), "ResponderId cannot be null or empty");
         responderIdLookupStrategy = FunctionSupport.constant(id);
@@ -105,7 +105,7 @@ public class RelyingPartyConfiguration extends AbstractIdentifiableInitializable
      * @since 3.4.0
      */
     public void setResponderIdLookupStrategy(@Nonnull final Function<ProfileRequestContext,String> strategy) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         responderIdLookupStrategy = Constraint.isNotNull(strategy, "Lookup strategy cannot be null");
     }
     
@@ -126,7 +126,7 @@ public class RelyingPartyConfiguration extends AbstractIdentifiableInitializable
      * @param flag  flag to set
      */
     public void setDetailedErrors(final boolean flag) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         detailedErrorsPredicate = flag ? Predicates.alwaysTrue() : Predicates.alwaysFalse();
     }
     
@@ -183,7 +183,7 @@ public class RelyingPartyConfiguration extends AbstractIdentifiableInitializable
      * @param configs the configurations to set
      */
     public void setProfileConfigurations(@Nullable @NonnullElements final Collection<ProfileConfiguration> configs) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         if (configs == null) {
             profileConfigurationsLookupStrategy = FunctionSupport.constant(null);
         } else {
@@ -207,7 +207,7 @@ public class RelyingPartyConfiguration extends AbstractIdentifiableInitializable
      */
     public void setProfileConfigurationsLookupStrategy(
             @Nonnull final Function<ProfileRequestContext,Map<String,ProfileConfiguration>> strategy) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         profileConfigurationsLookupStrategy = Constraint.isNotNull(strategy, "Lookup strategy cannot be null");
     }
 
@@ -217,7 +217,7 @@ public class RelyingPartyConfiguration extends AbstractIdentifiableInitializable
      * @param condition the activation condition
      */
     public void setActivationCondition(@Nonnull final Predicate<ProfileRequestContext> condition) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         activationCondition =
                 Constraint.isNotNull(condition, "Relying party configuration activation condition cannot be null");
     }
@@ -234,7 +234,7 @@ public class RelyingPartyConfiguration extends AbstractIdentifiableInitializable
 
     /** {@inheritDoc} */
     public boolean test(@Nullable final ProfileRequestContext input) {
-        throwComponentStateExceptions();
+        checkComponentActive();
         return activationCondition.test(input);
     }
 
diff --git a/idp-profile-impl/src/main/java/net/shibboleth/idp/profile/audit/impl/PopulateAuditContext.java b/idp-profile-impl/src/main/java/net/shibboleth/idp/profile/audit/impl/PopulateAuditContext.java
index 340178416..0aae26166 100644
--- a/idp-profile-impl/src/main/java/net/shibboleth/idp/profile/audit/impl/PopulateAuditContext.java
+++ b/idp-profile-impl/src/main/java/net/shibboleth/idp/profile/audit/impl/PopulateAuditContext.java
@@ -106,7 +106,7 @@ public class PopulateAuditContext extends AbstractProfileAction {
      * @param strategy lookup strategy
      */
     public void setAuditContextCreationStrategy(@Nonnull final Function<ProfileRequestContext,AuditContext> strategy) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         auditContextCreationStrategy = Constraint.isNotNull(strategy, "AuditContext lookup strategy cannot be null");
     }
     
@@ -117,7 +117,7 @@ public class PopulateAuditContext extends AbstractProfileAction {
      */
     public void setFieldExtractors(
             @Nonnull @NonnullElements final Map<String,Function<ProfileRequestContext,Object>> map) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         Constraint.isNotNull(map, "Field extractor map cannot be null");
         
         fieldExtractors = new HashMap<>(map.size());
@@ -141,7 +141,7 @@ public class PopulateAuditContext extends AbstractProfileAction {
      * @param parser the parsed map
      */
     public void setFormattingMapParser(@Nonnull final FormattingMapParser parser) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         Constraint.isNotNull(parser, "Parsed audit formatting map cannot be null");
         
         fieldsToExtract = parser.getFieldsToExtract();
@@ -153,7 +153,7 @@ public class PopulateAuditContext extends AbstractProfileAction {
      * @param map map of replacements
      */
     public void setFieldReplacements(@Nullable final Map<String,String> map) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         if (map != null) {
             fieldReplacements = new HashMap<>(map);
         } else {
@@ -167,7 +167,7 @@ public class PopulateAuditContext extends AbstractProfileAction {
      * @param format formatting string
      */
     public void setDateTimeFormat(@Nullable @NotEmpty final String format) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         if (format != null) {
             dateTimeFormatter = DateTimeFormatter.ofPattern(StringSupport.trimOrNull(format));
         }
@@ -179,7 +179,7 @@ public class PopulateAuditContext extends AbstractProfileAction {
      * @param flag flag to set
      */
     public void setUseDefaultTimeZone(final boolean flag) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         useDefaultTimeZone = flag;
     }
     
diff --git a/idp-profile-impl/src/main/java/net/shibboleth/idp/profile/audit/impl/WriteAuditLog.java b/idp-profile-impl/src/main/java/net/shibboleth/idp/profile/audit/impl/WriteAuditLog.java
index beb037708..2555f61fa 100644
--- a/idp-profile-impl/src/main/java/net/shibboleth/idp/profile/audit/impl/WriteAuditLog.java
+++ b/idp-profile-impl/src/main/java/net/shibboleth/idp/profile/audit/impl/WriteAuditLog.java
@@ -100,7 +100,7 @@ public class WriteAuditLog extends AbstractProfileAction {
      * @param strategy lookup strategy
      */
     public void setAuditContextLookupStrategy(@Nonnull final Function<ProfileRequestContext,AuditContext> strategy) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         auditContextLookupStrategy = Constraint.isNotNull(strategy, "AuditContext lookup strategy cannot be null");
     }
     
@@ -124,7 +124,7 @@ public class WriteAuditLog extends AbstractProfileAction {
      * @param map map of categories to formatting strings
      */
     public void setFormattingMap(@Nonnull @NonnullElements final Map<String,String> map) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         Constraint.isNotNull(map, "Audit formatting map cannot be null");
         
         formattingMap = new HashMap<>(map.size());
@@ -174,7 +174,7 @@ public class WriteAuditLog extends AbstractProfileAction {
      * @param format formatting string
      */
     public void setDateTimeFormat(@Nullable @NotEmpty final String format) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         if (format != null) {
             dateTimeFormatter = DateTimeFormatter.ofPattern(StringSupport.trimOrNull(format));
         }
@@ -186,7 +186,7 @@ public class WriteAuditLog extends AbstractProfileAction {
      * @param flag flag to set
      */
     public void setUseDefaultTimeZone(final boolean flag) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         useDefaultTimeZone = flag;
     }
     
diff --git a/idp-profile-impl/src/main/java/net/shibboleth/idp/profile/impl/FilterAttributes.java b/idp-profile-impl/src/main/java/net/shibboleth/idp/profile/impl/FilterAttributes.java
index 989a2a8d4..c414d95b2 100644
--- a/idp-profile-impl/src/main/java/net/shibboleth/idp/profile/impl/FilterAttributes.java
+++ b/idp-profile-impl/src/main/java/net/shibboleth/idp/profile/impl/FilterAttributes.java
@@ -198,7 +198,7 @@ public class FilterAttributes extends AbstractProfileAction {
      * @since 3.4.0
      */
     public void setMetadataResolver(@Nullable final MetadataResolver resolver) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         metadataResolver = resolver;
     }
     
@@ -208,7 +208,7 @@ public class FilterAttributes extends AbstractProfileAction {
      * @param strategy  lookup strategy
      */
     public void setIssuerLookupStrategy(@Nullable final Function<ProfileRequestContext,String> strategy) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         issuerLookupStrategy = strategy;
     }
 
@@ -218,7 +218,7 @@ public class FilterAttributes extends AbstractProfileAction {
      * @param strategy  lookup strategy
      */
     public void setRecipientLookupStrategy(@Nullable final Function<ProfileRequestContext,String> strategy) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         recipientLookupStrategy = strategy;
     }
 
@@ -229,7 +229,7 @@ public class FilterAttributes extends AbstractProfileAction {
      */
     public void setFilterContextCreationStrategy(
             @Nonnull final Function<ProfileRequestContext,AttributeFilterContext> strategy) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         filterContextCreationStrategy =
                 Constraint.isNotNull(strategy, "AttributeContext creation strategy cannot be null");
     }
@@ -243,7 +243,7 @@ public class FilterAttributes extends AbstractProfileAction {
      */
     public void setAttributeContextLookupStrategy(
             @Nonnull final Function<ProfileRequestContext,AttributeContext> strategy) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         attributeContextLookupStrategy =
                 Constraint.isNotNull(strategy, "AttributeContext lookup strategy cannot be null");
     }
@@ -254,7 +254,7 @@ public class FilterAttributes extends AbstractProfileAction {
      * @param strategy lookup strategy
      */
     public void setPrincipalNameLookupStrategy(@Nonnull final Function<ProfileRequestContext,String> strategy) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         principalNameLookupStrategy = Constraint.isNotNull(strategy, "Principal name lookup strategy cannot be null");
     }
     
@@ -267,7 +267,7 @@ public class FilterAttributes extends AbstractProfileAction {
      */
     public void setIssuerMetadataContextLookupStrategy(
             @Nullable final Function<ProfileRequestContext,SAMLMetadataContext> strategy) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         issuerMetadataContextLookupStrategy = strategy;
         issuerMetadataFromFilterLookupStrategy = strategy != null ?
                 issuerMetadataContextLookupStrategy.compose(profileRequestContextFromFilterLookupStrategy) : null;
@@ -282,7 +282,7 @@ public class FilterAttributes extends AbstractProfileAction {
      */
     public void setMetadataContextLookupStrategy(
             @Nullable final Function<ProfileRequestContext,SAMLMetadataContext> strategy) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         metadataContextLookupStrategy = strategy;
         metadataFromFilterLookupStrategy = strategy != null ?
                 metadataContextLookupStrategy.compose(profileRequestContextFromFilterLookupStrategy) : null;
@@ -299,7 +299,7 @@ public class FilterAttributes extends AbstractProfileAction {
      */
     public void setProxiedRequesterContextLookupStrategy(
             @Nullable final Function<ProfileRequestContext,ProxiedRequesterContext> strategy) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         proxiedRequesterContextLookupStrategy = strategy;
         proxiesFromFilterLookupStrategy = strategy != null ?
                 proxiedRequesterContextLookupStrategy.compose(profileRequestContextFromFilterLookupStrategy) : null;
@@ -314,7 +314,7 @@ public class FilterAttributes extends AbstractProfileAction {
      */
     public void setProxiedRequesterMetadataContextLookupStrategy(
             @Nullable final Function<ProfileRequestContext,SAMLMetadataContext> strategy) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         proxiedRequesterMetadataLookupStrategy = strategy;
         proxiedMetadataFromFilterLookupStrategy = strategy != null ?
                 proxiedRequesterMetadataLookupStrategy.compose(profileRequestContextFromFilterLookupStrategy) : null;
@@ -328,7 +328,7 @@ public class FilterAttributes extends AbstractProfileAction {
      * @param flag flag to set
      */
     public void setMaskFailures(final boolean flag) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         maskFailures = flag;
     }
 
diff --git a/idp-profile-impl/src/main/java/net/shibboleth/idp/profile/impl/InitializeProfileRequestContext.java b/idp-profile-impl/src/main/java/net/shibboleth/idp/profile/impl/InitializeProfileRequestContext.java
index 4911b63e1..046d3476a 100644
--- a/idp-profile-impl/src/main/java/net/shibboleth/idp/profile/impl/InitializeProfileRequestContext.java
+++ b/idp-profile-impl/src/main/java/net/shibboleth/idp/profile/impl/InitializeProfileRequestContext.java
@@ -68,7 +68,7 @@ public final class InitializeProfileRequestContext extends AbstractProfileAction
      * @param id    profile ID to populate into the context
      */
     public void setProfileId(@Nullable final String id) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         profileId = StringSupport.trimOrNull(id);
     }
     
@@ -80,7 +80,7 @@ public final class InitializeProfileRequestContext extends AbstractProfileAction
      * @since 4.2.0
      */
     public void setLegacyProfileId(@Nullable final String id) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         legacyProfileId = StringSupport.trimOrNull(id);
     }
 
@@ -90,7 +90,7 @@ public final class InitializeProfileRequestContext extends AbstractProfileAction
      * @param id    logging ID to populate into the context
      */
     public void setLoggingId(@Nullable final String id) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         loggingId = StringSupport.trimOrNull(id);
     }
     
@@ -100,7 +100,7 @@ public final class InitializeProfileRequestContext extends AbstractProfileAction
      * @param browser flag to set
      */
     public void setBrowserProfile(final boolean browser) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         browserProfile = browser;
     }
 
@@ -113,7 +113,7 @@ public final class InitializeProfileRequestContext extends AbstractProfileAction
      * @since 4.1.0
      */
     public void setCaptureQueryParameters(final boolean flag) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         captureQueryParameters = flag;
     }
     
@@ -124,7 +124,7 @@ public final class InitializeProfileRequestContext extends AbstractProfileAction
 
         // We have to override execute() because the profile request context doesn't exist yet.
         
-        throwComponentStateExceptions();
+        checkComponentActive();
         
         final ProfileRequestContext prc = new ProfileRequestContext();
         if (profileId != null) {
diff --git a/idp-profile-impl/src/main/java/net/shibboleth/idp/profile/impl/PopulateSubjectContext.java b/idp-profile-impl/src/main/java/net/shibboleth/idp/profile/impl/PopulateSubjectContext.java
index f73aac23f..c9e43227a 100644
--- a/idp-profile-impl/src/main/java/net/shibboleth/idp/profile/impl/PopulateSubjectContext.java
+++ b/idp-profile-impl/src/main/java/net/shibboleth/idp/profile/impl/PopulateSubjectContext.java
@@ -61,7 +61,7 @@ public class PopulateSubjectContext extends AbstractProfileAction {
      * @param strategy  lookup strategy
      */
     public void setPrincipalNameLookupStrategy(@Nonnull final Function<ProfileRequestContext,String> strategy) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         principalNameLookupStrategy = Constraint.isNotNull(strategy, "Principal name lookup strategy cannot be null");
     }
     
diff --git a/idp-profile-impl/src/main/java/net/shibboleth/idp/profile/impl/ReloadServiceConfiguration.java b/idp-profile-impl/src/main/java/net/shibboleth/idp/profile/impl/ReloadServiceConfiguration.java
index 0c0eb2c77..3f009fd9f 100644
--- a/idp-profile-impl/src/main/java/net/shibboleth/idp/profile/impl/ReloadServiceConfiguration.java
+++ b/idp-profile-impl/src/main/java/net/shibboleth/idp/profile/impl/ReloadServiceConfiguration.java
@@ -79,7 +79,7 @@ public class ReloadServiceConfiguration extends AbstractProfileAction {
      * @param strategy  lookup strategy
      */
     public void setServiceLookupStrategy(@Nonnull final Function<ProfileRequestContext,ReloadableService<?>> strategy) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         serviceLookupStrategy = Constraint.isNotNull(strategy, "ReloadableService lookup strategy cannot be null");
     }
     
diff --git a/idp-profile-impl/src/main/java/net/shibboleth/idp/profile/impl/ResolveAttributes.java b/idp-profile-impl/src/main/java/net/shibboleth/idp/profile/impl/ResolveAttributes.java
index 822303566..8e5d3b82c 100644
--- a/idp-profile-impl/src/main/java/net/shibboleth/idp/profile/impl/ResolveAttributes.java
+++ b/idp-profile-impl/src/main/java/net/shibboleth/idp/profile/impl/ResolveAttributes.java
@@ -129,7 +129,7 @@ public final class ResolveAttributes extends AbstractProfileAction {
      * @param registry registry service interface
      */
     public void setTranscoderRegistry(@Nullable final ReloadableService<AttributeTranscoderRegistry> registry) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         transcoderRegistry = registry;
     }
     
@@ -139,7 +139,7 @@ public final class ResolveAttributes extends AbstractProfileAction {
      * @param strategy  lookup strategy
      */
     public void setIssuerLookupStrategy(@Nullable final Function<ProfileRequestContext,String> strategy) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         issuerLookupStrategy = strategy;
     }
 
@@ -149,7 +149,7 @@ public final class ResolveAttributes extends AbstractProfileAction {
      * @param strategy  lookup strategy
      */
     public void setRecipientLookupStrategy(@Nullable final Function<ProfileRequestContext,String> strategy) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         recipientLookupStrategy = strategy;
     }
     
@@ -159,7 +159,7 @@ public final class ResolveAttributes extends AbstractProfileAction {
      * @param strategy lookup strategy
      */
     public void setPrincipalNameLookupStrategy(@Nullable final Function<ProfileRequestContext,String> strategy) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         principalNameLookupStrategy = strategy;
     }
     
@@ -170,7 +170,7 @@ public final class ResolveAttributes extends AbstractProfileAction {
      */
     public void setAttributeContextCreationStrategy(
             @Nonnull final Function<ProfileRequestContext,AttributeContext> strategy) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         attributeContextCreationStrategy =
                 Constraint.isNotNull(strategy, "AttributeContext creation strategy cannot be null");
     }
@@ -182,7 +182,7 @@ public final class ResolveAttributes extends AbstractProfileAction {
      */
     public void setAttributesLookupStrategy(
             @Nonnull final Function<ProfileRequestContext,Collection<String>> strategy) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         attributesLookupStrategy = Constraint.isNotNull(strategy, "Attributes lookup strategy cannot be null");
     }
     
@@ -192,7 +192,7 @@ public final class ResolveAttributes extends AbstractProfileAction {
      * @param attributeIds  attribute ID collection
      */
     public void setAttributesToResolve(@Nonnull @NonnullElements final Collection<String> attributeIds) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         Constraint.isNotNull(attributeIds, "Attribute ID collection cannot be null");
         attributesLookupStrategy = FunctionSupport.constant(StringSupport.normalizeStringCollection(attributeIds));
     }
@@ -205,7 +205,7 @@ public final class ResolveAttributes extends AbstractProfileAction {
      * @since 4.2.0
      */
     public void setResolutionContextDecorator(@Nullable final Consumer<AttributeResolutionContext> decorator) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         resolutionContextDecorator = decorator;
     }
     
@@ -217,7 +217,7 @@ public final class ResolveAttributes extends AbstractProfileAction {
      * @param flag flag to set
      */
     public void setMaskFailures(final boolean flag) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         maskFailures = flag;
     }
     
@@ -230,7 +230,7 @@ public final class ResolveAttributes extends AbstractProfileAction {
      * @since 3.4.0
      */
     public void setResolutionLabel(@Nullable final String label) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         resolutionLabel = StringSupport.trimOrNull(label);
     }
     
@@ -242,7 +242,7 @@ public final class ResolveAttributes extends AbstractProfileAction {
      * @param flag flag to set
      */
     public void setCreateResolutionContext(final boolean flag) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         createResolutionContext = flag;
     }
 
diff --git a/idp-profile-impl/src/main/java/net/shibboleth/idp/profile/impl/SelectProfileConfiguration.java b/idp-profile-impl/src/main/java/net/shibboleth/idp/profile/impl/SelectProfileConfiguration.java
index 74b8cf10a..a87187b06 100644
--- a/idp-profile-impl/src/main/java/net/shibboleth/idp/profile/impl/SelectProfileConfiguration.java
+++ b/idp-profile-impl/src/main/java/net/shibboleth/idp/profile/impl/SelectProfileConfiguration.java
@@ -81,7 +81,7 @@ public class SelectProfileConfiguration extends AbstractProfileAction {
      */
     public void setRelyingPartyContextLookupStrategy(
             @Nonnull final Function<ProfileRequestContext,RelyingPartyContext> strategy) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         relyingPartyContextLookupStrategy = Constraint.isNotNull(strategy,
                 "RelyingPartyContext lookup strategy cannot be null");
     }
@@ -96,7 +96,7 @@ public class SelectProfileConfiguration extends AbstractProfileAction {
      * @since 4.2.0
      */
     public void setProfileId(@Nullable @NotEmpty final String id) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         profileId = StringSupport.trimOrNull(id);
     }
     
@@ -110,7 +110,7 @@ public class SelectProfileConfiguration extends AbstractProfileAction {
      * @since 4.2.0
      */
     public void setFailIfMissing(final boolean flag) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         failIfMissing = flag;
     }
 
diff --git a/idp-profile-impl/src/main/java/net/shibboleth/idp/profile/impl/SelectRelyingPartyConfiguration.java b/idp-profile-impl/src/main/java/net/shibboleth/idp/profile/impl/SelectRelyingPartyConfiguration.java
index bff16034d..1d17f9ec7 100644
--- a/idp-profile-impl/src/main/java/net/shibboleth/idp/profile/impl/SelectRelyingPartyConfiguration.java
+++ b/idp-profile-impl/src/main/java/net/shibboleth/idp/profile/impl/SelectRelyingPartyConfiguration.java
@@ -83,7 +83,7 @@ public final class SelectRelyingPartyConfiguration extends AbstractProfileAction
      * @param resolver  the resolver to use
      */
     public void setRelyingPartyConfigurationResolver(@Nonnull final Resolver<RelyingPartyConfiguration,?> resolver) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         rpConfigResolver = Constraint.isNotNull(resolver, "Relying party configuration resolver cannot be null");
     }
     
@@ -96,7 +96,7 @@ public final class SelectRelyingPartyConfiguration extends AbstractProfileAction
      */
     public void setRelyingPartyContextLookupStrategy(
             @Nonnull final Function<ProfileRequestContext, RelyingPartyContext> strategy) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         relyingPartyContextLookupStrategy =
                 Constraint.isNotNull(strategy, "RelyingPartyContext lookup strategy cannot be null");
     }
diff --git a/idp-profile-impl/src/main/java/net/shibboleth/idp/profile/interceptor/impl/PopulateProfileInterceptorContext.java b/idp-profile-impl/src/main/java/net/shibboleth/idp/profile/interceptor/impl/PopulateProfileInterceptorContext.java
index 117bb122f..eb0715d24 100644
--- a/idp-profile-impl/src/main/java/net/shibboleth/idp/profile/interceptor/impl/PopulateProfileInterceptorContext.java
+++ b/idp-profile-impl/src/main/java/net/shibboleth/idp/profile/interceptor/impl/PopulateProfileInterceptorContext.java
@@ -77,7 +77,7 @@ public class PopulateProfileInterceptorContext extends AbstractProfileIntercepto
      * @param flows the flows available for possible use
      */
     public void setAvailableFlows(@Nonnull @NonnullElements final Collection<ProfileInterceptorFlowDescriptor> flows) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         availableFlows = List.copyOf(Constraint.isNotNull(flows, "Flow collection cannot be null"));
     }
     
@@ -88,7 +88,7 @@ public class PopulateProfileInterceptorContext extends AbstractProfileIntercepto
      */
     public void setActiveFlowsLookupStrategy(
             @Nonnull final Function<ProfileRequestContext,Collection<String>> strategy) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         activeFlowsLookupStrategy = Constraint.isNotNull(strategy, "Flow lookup strategy cannot be null");
     }
     
@@ -100,7 +100,7 @@ public class PopulateProfileInterceptorContext extends AbstractProfileIntercepto
      * @since 4.2.0
      */
     public void setLoggingLabel(@Nullable @NotEmpty final String label) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         loggingLabel = StringSupport.trimOrNull(label);
     }
     
diff --git a/idp-profile-impl/src/main/java/net/shibboleth/idp/profile/messaging/impl/SelectProfileConfiguration.java b/idp-profile-impl/src/main/java/net/shibboleth/idp/profile/messaging/impl/SelectProfileConfiguration.java
index 8fe60a1f9..16a007805 100644
--- a/idp-profile-impl/src/main/java/net/shibboleth/idp/profile/messaging/impl/SelectProfileConfiguration.java
+++ b/idp-profile-impl/src/main/java/net/shibboleth/idp/profile/messaging/impl/SelectProfileConfiguration.java
@@ -89,7 +89,7 @@ public class SelectProfileConfiguration extends AbstractMessageHandler {
      */
     public void setRelyingPartyContextLookupStrategy(
             @Nonnull final Function<MessageContext,RelyingPartyContext> strategy) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         relyingPartyContextLookupStrategy = Constraint.isNotNull(strategy,
                 "RelyingPartyContext lookup strategy cannot be null");
     }
@@ -124,7 +124,7 @@ public class SelectProfileConfiguration extends AbstractMessageHandler {
      *         {@link MessageContext}
      */
     public void setProfiledIdLookupStrategy(@Nonnull final Function<MessageContext,String> strategy) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         profileIdLookupStrategy = strategy;
     }
 
diff --git a/idp-profile-impl/src/main/java/net/shibboleth/idp/profile/messaging/impl/SelectRelyingPartyConfiguration.java b/idp-profile-impl/src/main/java/net/shibboleth/idp/profile/messaging/impl/SelectRelyingPartyConfiguration.java
index b200b95be..373ed86b9 100644
--- a/idp-profile-impl/src/main/java/net/shibboleth/idp/profile/messaging/impl/SelectRelyingPartyConfiguration.java
+++ b/idp-profile-impl/src/main/java/net/shibboleth/idp/profile/messaging/impl/SelectRelyingPartyConfiguration.java
@@ -79,7 +79,7 @@ public final class SelectRelyingPartyConfiguration extends AbstractMessageHandle
      */
     public void setRelyingPartyConfigurationResolver(
             @Nonnull final CriteriaRelyingPartyConfigurationResolver resolver) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         rpConfigResolver = Constraint.isNotNull(resolver, "Relying party configuration resolver cannot be null");
     }
     
@@ -92,7 +92,7 @@ public final class SelectRelyingPartyConfiguration extends AbstractMessageHandle
      */
     public void setRelyingPartyContextLookupStrategy(
             @Nonnull final Function<MessageContext, RelyingPartyContext> strategy) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         relyingPartyContextLookupStrategy =
                 Constraint.isNotNull(strategy, "RelyingPartyContext lookup strategy cannot be null");
     }
diff --git a/idp-profile-impl/src/main/java/net/shibboleth/idp/relyingparty/impl/CriteriaSelfEntityIDResolver.java b/idp-profile-impl/src/main/java/net/shibboleth/idp/relyingparty/impl/CriteriaSelfEntityIDResolver.java
index cac83e519..d6780d8c3 100644
--- a/idp-profile-impl/src/main/java/net/shibboleth/idp/relyingparty/impl/CriteriaSelfEntityIDResolver.java
+++ b/idp-profile-impl/src/main/java/net/shibboleth/idp/relyingparty/impl/CriteriaSelfEntityIDResolver.java
@@ -71,7 +71,7 @@ public class CriteriaSelfEntityIDResolver extends AbstractIdentifiedInitializabl
      */
     public void setRelyingPartyConfigurationResolver(
             @Nullable final CriteriaRelyingPartyConfigurationResolver resolver) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         rpcResolver = resolver;
     }
 
@@ -97,7 +97,7 @@ public class CriteriaSelfEntityIDResolver extends AbstractIdentifiedInitializabl
     /** {@inheritDoc} */
     @Nonnull @NonnullElements public Iterable<String> resolve(
             @Nullable final CriteriaSet criteria) throws ResolverException {
-        throwComponentStateExceptions();
+        checkComponentActive();
         final String entityID = resolveSingle(criteria);
         if (entityID != null) {
             return Collections.singletonList(entityID);
@@ -107,7 +107,7 @@ public class CriteriaSelfEntityIDResolver extends AbstractIdentifiedInitializabl
 
     /** {@inheritDoc} */
     @Nullable public String resolveSingle(@Nullable final CriteriaSet criteria) throws ResolverException {
-        throwComponentStateExceptions();
+        checkComponentActive();
         final ProfileRequestContext prc = buildContext(criteria);
         final CriteriaSet prcSet = new CriteriaSet(new ProfileRequestContextCriterion(prc));
         
diff --git a/idp-profile-impl/src/main/java/net/shibboleth/idp/relyingparty/impl/DefaultRelyingPartyConfigurationResolver.java b/idp-profile-impl/src/main/java/net/shibboleth/idp/relyingparty/impl/DefaultRelyingPartyConfigurationResolver.java
index 2ed323019..e320c30c9 100644
--- a/idp-profile-impl/src/main/java/net/shibboleth/idp/relyingparty/impl/DefaultRelyingPartyConfigurationResolver.java
+++ b/idp-profile-impl/src/main/java/net/shibboleth/idp/relyingparty/impl/DefaultRelyingPartyConfigurationResolver.java
@@ -108,7 +108,7 @@ public class DefaultRelyingPartyConfigurationResolver
      * @param configs list of verified relying party configurations
      */
     public void setRelyingPartyConfigurations(@Nonnull @NonnullElements final List<RelyingPartyConfiguration> configs) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         rpConfigurations = List.copyOf(Constraint.isNotNull(configs, "RelyingPartyConfiguration list cannot be null"));
     }
 
@@ -127,7 +127,7 @@ public class DefaultRelyingPartyConfigurationResolver
      * @param configuration default verified configuration
      */
     public void setDefaultConfiguration(@Nonnull final RelyingPartyConfiguration configuration) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         defaultConfiguration = Constraint.isNotNull(configuration, "Default RP configuration cannot be null");
     }
 
@@ -148,7 +148,7 @@ public class DefaultRelyingPartyConfigurationResolver
      * @param configuration unverified configuration
      */
     public void setUnverifiedConfiguration(@Nonnull final RelyingPartyConfiguration configuration) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         unverifiedConfiguration = Constraint.isNotNull(configuration, "Unverified RP configuration cannot be null");
     }
 
@@ -167,7 +167,7 @@ public class DefaultRelyingPartyConfigurationResolver
      * @param predicate predicate to set
      */
     public void setVerificationPredicate(@Nonnull final Predicate<ProfileRequestContext> predicate) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         verificationPredicate = Constraint.isNotNull(predicate, "Verification predicate cannot be null");
     }
     
@@ -177,7 +177,7 @@ public class DefaultRelyingPartyConfigurationResolver
      * @param config  global default
      */
     public void setDefaultSecurityConfiguration(@Nullable final SecurityConfiguration config) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         defaultSecurityConfiguration = config;
     }
 
@@ -198,7 +198,7 @@ public class DefaultRelyingPartyConfigurationResolver
     /** {@inheritDoc} */
     @Override @Nonnull @NonnullElements public Iterable<RelyingPartyConfiguration> resolve(
             @Nullable final ProfileRequestContext context) throws ResolverException {
-        throwComponentStateExceptions();
+        checkComponentActive();
 
         if (context == null) {
             return Collections.emptyList();
@@ -238,7 +238,7 @@ public class DefaultRelyingPartyConfigurationResolver
     /** {@inheritDoc} */
     @Override @Nullable public RelyingPartyConfiguration resolveSingle(@Nullable final ProfileRequestContext context)
             throws ResolverException {
-        throwComponentStateExceptions();
+        checkComponentActive();
 
         if (context == null) {
             return null;
@@ -293,7 +293,7 @@ public class DefaultRelyingPartyConfigurationResolver
     @Qualifier("signing")
     public void setSigningCredentials(
             @Nullable @NonnullElements final List<RelyingPartyResolverCredentialHolder> credentials) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         
         if (credentials != null) {
             signingCredentials = credentials.stream()
@@ -322,7 +322,7 @@ public class DefaultRelyingPartyConfigurationResolver
     @Qualifier("encryption")
     public void setEncryptionCredentials(
             @Nullable @NonnullElements final List<RelyingPartyResolverCredentialHolder> credentials) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         
         if (credentials != null) {
             encryptionCredentials = credentials.stream()
diff --git a/idp-profile-impl/src/main/java/net/shibboleth/idp/relyingparty/impl/DelegatingCriteriaRelyingPartyConfigurationResolver.java b/idp-profile-impl/src/main/java/net/shibboleth/idp/relyingparty/impl/DelegatingCriteriaRelyingPartyConfigurationResolver.java
index 8a207ade0..94bb549e4 100644
--- a/idp-profile-impl/src/main/java/net/shibboleth/idp/relyingparty/impl/DelegatingCriteriaRelyingPartyConfigurationResolver.java
+++ b/idp-profile-impl/src/main/java/net/shibboleth/idp/relyingparty/impl/DelegatingCriteriaRelyingPartyConfigurationResolver.java
@@ -81,7 +81,7 @@ public class DelegatingCriteriaRelyingPartyConfigurationResolver extends Abstrac
      * @param resolver the resolver delegate instance
      */
     public void setDelegate(@Nullable final RelyingPartyConfigurationResolver resolver) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         delegate = resolver;
     }
 
@@ -107,7 +107,7 @@ public class DelegatingCriteriaRelyingPartyConfigurationResolver extends Abstrac
     /** {@inheritDoc} */
     @Override
     @Nullable public SecurityConfiguration getDefaultSecurityConfiguration(@Nonnull @NotEmpty final String profileId) {
-        throwComponentStateExceptions();
+        checkComponentActive();
         return delegate.getDefaultSecurityConfiguration(profileId);
     }
     
@@ -115,7 +115,7 @@ public class DelegatingCriteriaRelyingPartyConfigurationResolver extends Abstrac
     @Override
     @Nullable public RelyingPartyConfiguration resolveSingle(@Nullable final CriteriaSet criteria) 
             throws ResolverException {
-        throwComponentStateExceptions();
+        checkComponentActive();
         final Iterator<RelyingPartyConfiguration> results = resolve(criteria).iterator();
         if (results.hasNext()) {
             return results.next();
@@ -127,7 +127,7 @@ public class DelegatingCriteriaRelyingPartyConfigurationResolver extends Abstrac
     @Override
     @Nonnull @NonnullElements public Iterable<RelyingPartyConfiguration> resolve(@Nullable final CriteriaSet criteria) 
             throws ResolverException {
-        throwComponentStateExceptions();
+        checkComponentActive();
         final ProfileRequestContext prc = buildContext(criteria);
         if (prc != null) {
             return delegate.resolve(prc);
diff --git a/idp-profile-impl/src/main/java/net/shibboleth/idp/relyingparty/impl/ReloadingRelyingPartyConfigurationResolver.java b/idp-profile-impl/src/main/java/net/shibboleth/idp/relyingparty/impl/ReloadingRelyingPartyConfigurationResolver.java
index caf5d9fb1..f17b21798 100644
--- a/idp-profile-impl/src/main/java/net/shibboleth/idp/relyingparty/impl/ReloadingRelyingPartyConfigurationResolver.java
+++ b/idp-profile-impl/src/main/java/net/shibboleth/idp/relyingparty/impl/ReloadingRelyingPartyConfigurationResolver.java
@@ -70,7 +70,7 @@ public class ReloadingRelyingPartyConfigurationResolver extends AbstractIdentifi
     /** {@inheritDoc} */
     @Override @Nonnull @NonnullElements public Iterable<RelyingPartyConfiguration> resolve(
             @Nullable final ProfileRequestContext context) throws ResolverException {
-        throwComponentStateExceptions();
+        checkComponentActive();
         ServiceableComponent<RelyingPartyConfigurationResolver> component = null;
         try {
             component = service.getServiceableComponent();
@@ -97,7 +97,7 @@ public class ReloadingRelyingPartyConfigurationResolver extends AbstractIdentifi
     /** {@inheritDoc} */
     @Override @Nullable public RelyingPartyConfiguration resolveSingle(@Nullable final ProfileRequestContext context)
             throws ResolverException {
-        throwComponentStateExceptions();
+        checkComponentActive();
         ServiceableComponent<RelyingPartyConfigurationResolver> component = null;
         try {
             component = service.getServiceableComponent();
@@ -119,7 +119,7 @@ public class ReloadingRelyingPartyConfigurationResolver extends AbstractIdentifi
 
     /** {@inheritDoc} */
     @Override public SecurityConfiguration getDefaultSecurityConfiguration(final String profileId) {
-        throwComponentStateExceptions();
+        checkComponentActive();
         ServiceableComponent<RelyingPartyConfigurationResolver> component = null;
         try {
             component = service.getServiceableComponent();
diff --git a/idp-saml-api/src/main/java/net/shibboleth/idp/saml/profile/config/AbstractCollectionConfigurationLookupStrategy.java b/idp-saml-api/src/main/java/net/shibboleth/idp/saml/profile/config/AbstractCollectionConfigurationLookupStrategy.java
index 3a68ed4aa..9d25cc8d6 100644
--- a/idp-saml-api/src/main/java/net/shibboleth/idp/saml/profile/config/AbstractCollectionConfigurationLookupStrategy.java
+++ b/idp-saml-api/src/main/java/net/shibboleth/idp/saml/profile/config/AbstractCollectionConfigurationLookupStrategy.java
@@ -72,7 +72,7 @@ public abstract class AbstractCollectionConfigurationLookupStrategy<T1,T2>
      * @param type object type
      */
     public void setPropertyType(@Nonnull final Class<T1> type) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         propertyType = Constraint.isNotNull(type, "Property type cannot be null");
     }
     
diff --git a/idp-saml-api/src/main/java/net/shibboleth/idp/saml/profile/config/AbstractMetadataDrivenConfigurationLookupStrategy.java b/idp-saml-api/src/main/java/net/shibboleth/idp/saml/profile/config/AbstractMetadataDrivenConfigurationLookupStrategy.java
index 81cf99bbc..e67fc2ad2 100644
--- a/idp-saml-api/src/main/java/net/shibboleth/idp/saml/profile/config/AbstractMetadataDrivenConfigurationLookupStrategy.java
+++ b/idp-saml-api/src/main/java/net/shibboleth/idp/saml/profile/config/AbstractMetadataDrivenConfigurationLookupStrategy.java
@@ -128,7 +128,7 @@ public abstract class AbstractMetadataDrivenConfigurationLookupStrategy<T> exten
      * @param flag flag to set
      */
     public void setStrictNameFormat(final boolean flag) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         strictNameFormat = flag;
     }
     
@@ -140,7 +140,7 @@ public abstract class AbstractMetadataDrivenConfigurationLookupStrategy<T> exten
      * @param flag flag to set
      */
     public void setEnableCaching(final boolean flag) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         enableCaching = flag;
     }
 
@@ -153,7 +153,7 @@ public abstract class AbstractMetadataDrivenConfigurationLookupStrategy<T> exten
      * @param flag flag to set
      */
     public void setIgnoreUnmappedEntityAttributes(final boolean flag) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         ignoreUnmappedEntityAttributes = flag;
     }
     
@@ -163,7 +163,7 @@ public abstract class AbstractMetadataDrivenConfigurationLookupStrategy<T> exten
      * @param name base property name
      */
     public void setPropertyName(@Nonnull @NotEmpty final String name) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         propertyName = Constraint.isNotNull(StringSupport.trimOrNull(name), "Property name cannot be null or empty");
     }
     
@@ -176,7 +176,7 @@ public abstract class AbstractMetadataDrivenConfigurationLookupStrategy<T> exten
      * @param aliases alternative profile IDs
      */
     public void setProfileAliases(@Nonnull @NonnullElements final Collection<String> aliases) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         Constraint.isNotNull(aliases, "Alias collection cannot be null");
         
         propertyAliases = List.copyOf(StringSupport.normalizeStringCollection(aliases));
@@ -188,7 +188,7 @@ public abstract class AbstractMetadataDrivenConfigurationLookupStrategy<T> exten
      * @param value default value to return 
      */
     public void setDefaultValue(@Nullable final T value) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         defaultValueStrategy = FunctionSupport.constant(value);
     }
     
@@ -200,7 +200,7 @@ public abstract class AbstractMetadataDrivenConfigurationLookupStrategy<T> exten
      * @since 4.0.0
      */
     public void setDefaultValueStrategy(@Nonnull final Function<BaseContext,T> strategy) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         defaultValueStrategy = Constraint.isNotNull(strategy, "Default value strategy cannot be null");
     }
     
@@ -210,7 +210,7 @@ public abstract class AbstractMetadataDrivenConfigurationLookupStrategy<T> exten
      * @param strategy  lookup strategy
      */
     public void setMetadataLookupStrategy(@Nonnull final Function<BaseContext,EntityDescriptor> strategy) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         metadataLookupStrategy = Constraint.isNotNull(strategy, "Metadata lookup strategy cannot be null");
     }
 
@@ -220,7 +220,7 @@ public abstract class AbstractMetadataDrivenConfigurationLookupStrategy<T> exten
      * @param strategy  lookup strategy
      */
     public void setProfileIdLookupStrategy(@Nonnull final Function<BaseContext,String> strategy) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         profileIdLookupStrategy = Constraint.isNotNull(strategy, "Profile ID lookup strategy cannot be null");
     }
 
@@ -245,7 +245,7 @@ public abstract class AbstractMetadataDrivenConfigurationLookupStrategy<T> exten
     // Checkstyle: CyclomaticComplexity|MethodLength OFF    
     /** {@inheritDoc} */
     @Nullable public T apply(@Nullable final BaseContext input) {
-        throwComponentStateExceptions();
+        checkComponentActive();
         
         CachedConfigurationContext cacheContext = null;
         
diff --git a/idp-saml-api/src/main/java/net/shibboleth/idp/saml/profile/config/BeanConfigurationLookupStrategy.java b/idp-saml-api/src/main/java/net/shibboleth/idp/saml/profile/config/BeanConfigurationLookupStrategy.java
index 9730e54fd..50e523009 100644
--- a/idp-saml-api/src/main/java/net/shibboleth/idp/saml/profile/config/BeanConfigurationLookupStrategy.java
+++ b/idp-saml-api/src/main/java/net/shibboleth/idp/saml/profile/config/BeanConfigurationLookupStrategy.java
@@ -72,13 +72,13 @@ public class BeanConfigurationLookupStrategy<T> extends AbstractMetadataDrivenCo
      * @param type bean type
      */
     public void setPropertyType(@Nonnull final Class<T> type) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         propertyType = Constraint.isNotNull(type, "Property type cannot be null");
     }
 
     /** {@inheritDoc} */
     public void setApplicationContext(final ApplicationContext context) throws BeansException {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         applicationContext = context;
     }
 
diff --git a/idp-saml-impl/src/main/java/net/shibboleth/idp/saml/audit/impl/WriteFTICKSLog.java b/idp-saml-impl/src/main/java/net/shibboleth/idp/saml/audit/impl/WriteFTICKSLog.java
index c207a1da5..3851fa42d 100644
--- a/idp-saml-impl/src/main/java/net/shibboleth/idp/saml/audit/impl/WriteFTICKSLog.java
+++ b/idp-saml-impl/src/main/java/net/shibboleth/idp/saml/audit/impl/WriteFTICKSLog.java
@@ -133,7 +133,7 @@ public class WriteFTICKSLog extends AbstractProfileAction {
      * @param strategy lookup strategy
      */
     public void setRelyingPartyLookupStrategy(@Nonnull final Function<ProfileRequestContext,String> strategy) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         relyingPartyLookupStrategy = Constraint.isNotNull(strategy, "Relying Party ID lookup strategy cannot be null");
     }
 
@@ -143,7 +143,7 @@ public class WriteFTICKSLog extends AbstractProfileAction {
      * @param strategy lookup strategy
      */
     public void setResponderLookupStrategy(@Nonnull final Function<ProfileRequestContext,String> strategy) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         responderLookupStrategy = Constraint.isNotNull(strategy, "Responder ID lookup strategy cannot be null");
     }
 
@@ -153,7 +153,7 @@ public class WriteFTICKSLog extends AbstractProfileAction {
      * @param strategy lookup strategy
      */
     public void setUsernameLookupStrategy(@Nonnull final Function<ProfileRequestContext,String> strategy) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         usernameLookupStrategy = Constraint.isNotNull(strategy, "Username lookup strategy cannot be null");
     }
 
@@ -163,7 +163,7 @@ public class WriteFTICKSLog extends AbstractProfileAction {
      * @param strategy lookup strategy
      */
     public void setAuthenticationMethodLookupStrategy(@Nonnull final Function<ProfileRequestContext,String> strategy) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         authenticationMethodLookupStrategy = Constraint.isNotNull(strategy,
                 "Authentication method lookup strategy cannot be null");
     }
@@ -174,7 +174,7 @@ public class WriteFTICKSLog extends AbstractProfileAction {
      * @param strategy lookup strategy
      */
     public void setStatusCodeLookupStrategy(@Nonnull final Function<ProfileRequestContext,String> strategy) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         statusCodeLookupStrategy = Constraint.isNotNull(strategy, "StatusCode lookup strategy cannot be null");
     }
 
diff --git a/idp-saml-impl/src/main/java/net/shibboleth/idp/saml/messaging/impl/InitializeRelyingPartyContextFromSAMLPeer.java b/idp-saml-impl/src/main/java/net/shibboleth/idp/saml/messaging/impl/InitializeRelyingPartyContextFromSAMLPeer.java
index 08977a5fc..faffdf54d 100644
--- a/idp-saml-impl/src/main/java/net/shibboleth/idp/saml/messaging/impl/InitializeRelyingPartyContextFromSAMLPeer.java
+++ b/idp-saml-impl/src/main/java/net/shibboleth/idp/saml/messaging/impl/InitializeRelyingPartyContextFromSAMLPeer.java
@@ -83,7 +83,7 @@ public class InitializeRelyingPartyContextFromSAMLPeer extends AbstractMessageHa
      */
     public void setRelyingPartyContextCreationStrategy(
             @Nonnull final Function<MessageContext,RelyingPartyContext> strategy) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         relyingPartyContextCreationStrategy =
                 Constraint.isNotNull(strategy, "RelyingPartyContext creation strategy cannot be null");
     }
@@ -95,7 +95,7 @@ public class InitializeRelyingPartyContextFromSAMLPeer extends AbstractMessageHa
      */
     public void setPeerEntityContextLookupStrategy(
             @Nonnull final Function<MessageContext,SAMLPeerEntityContext> strategy) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         peerEntityContextLookupStrategy =
                 Constraint.isNotNull(strategy, "SAMLPeerEntityContext lookup strategy cannot be null");
     }
diff --git a/idp-saml-impl/src/main/java/net/shibboleth/idp/saml/nameid/impl/AttributeSourcedSAML1NameIdentifierGenerator.java b/idp-saml-impl/src/main/java/net/shibboleth/idp/saml/nameid/impl/AttributeSourcedSAML1NameIdentifierGenerator.java
index 12af401fc..01ca49b3c 100644
--- a/idp-saml-impl/src/main/java/net/shibboleth/idp/saml/nameid/impl/AttributeSourcedSAML1NameIdentifierGenerator.java
+++ b/idp-saml-impl/src/main/java/net/shibboleth/idp/saml/nameid/impl/AttributeSourcedSAML1NameIdentifierGenerator.java
@@ -91,7 +91,7 @@ public class AttributeSourcedSAML1NameIdentifierGenerator extends AbstractSAML1N
      */
     public void setAttributeContextLookupStrategy(
             @Nonnull final Function<ProfileRequestContext, AttributeContext> strategy) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         attributeContextLookupStrategy = Constraint.isNotNull(strategy,
                 "AttributeContext lookup strategy cannot be null");
     }
@@ -102,7 +102,7 @@ public class AttributeSourcedSAML1NameIdentifierGenerator extends AbstractSAML1N
      * @param ch scope to set
      */
     public void setScopedDelimiter(final char ch) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         delimiter = ch;
     }
 
@@ -112,7 +112,7 @@ public class AttributeSourcedSAML1NameIdentifierGenerator extends AbstractSAML1N
      * @param ids attribute IDs to pull from
      */
     public void setAttributeSourceIds(@Nonnull @NonnullElements final List<String> ids) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         attributeSourceIds = List.copyOf(Constraint.isNotNull(ids, "Attribute ID collection cannot be null"));
     }
 
diff --git a/idp-saml-impl/src/main/java/net/shibboleth/idp/saml/nameid/impl/AttributeSourcedSAML2NameIDGenerator.java b/idp-saml-impl/src/main/java/net/shibboleth/idp/saml/nameid/impl/AttributeSourcedSAML2NameIDGenerator.java
index f87094035..8c20454aa 100644
--- a/idp-saml-impl/src/main/java/net/shibboleth/idp/saml/nameid/impl/AttributeSourcedSAML2NameIDGenerator.java
+++ b/idp-saml-impl/src/main/java/net/shibboleth/idp/saml/nameid/impl/AttributeSourcedSAML2NameIDGenerator.java
@@ -90,7 +90,7 @@ public class AttributeSourcedSAML2NameIDGenerator extends AbstractSAML2NameIDGen
      */
     public void setAttributeContextLookupStrategy(
             @Nonnull final Function<ProfileRequestContext, AttributeContext> strategy) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         attributeContextLookupStrategy = Constraint.isNotNull(strategy,
             "AttributeContext lookup strategy cannot be null");
     }
@@ -101,7 +101,7 @@ public class AttributeSourcedSAML2NameIDGenerator extends AbstractSAML2NameIDGen
      * @param ch scope to set
      */
     public void setScopedDelimiter(final char ch) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         delimiter = ch;
     }
 
@@ -111,7 +111,7 @@ public class AttributeSourcedSAML2NameIDGenerator extends AbstractSAML2NameIDGen
      * @param ids attribute IDs to pull from
      */
     public void setAttributeSourceIds(@Nonnull @NonnullElements final List<String> ids) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         attributeSourceIds = List.copyOf(Constraint.isNotNull(ids, "Attribute ID collection cannot be null"));
     }
 
diff --git a/idp-saml-impl/src/main/java/net/shibboleth/idp/saml/nameid/impl/BaseCryptoTransientDecoder.java b/idp-saml-impl/src/main/java/net/shibboleth/idp/saml/nameid/impl/BaseCryptoTransientDecoder.java
index a6c242651..d68de6e7a 100644
--- a/idp-saml-impl/src/main/java/net/shibboleth/idp/saml/nameid/impl/BaseCryptoTransientDecoder.java
+++ b/idp-saml-impl/src/main/java/net/shibboleth/idp/saml/nameid/impl/BaseCryptoTransientDecoder.java
@@ -65,7 +65,7 @@ public abstract class BaseCryptoTransientDecoder extends AbstractIdentifiableIni
      * @param sealer the Data Sealer to use.
      */
     public void setDataSealer(@Nonnull final DataSealer sealer) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         dataSealer = Constraint.isNotNull(sealer, "DataSealer cannot be null");
     }
 
@@ -80,7 +80,7 @@ public abstract class BaseCryptoTransientDecoder extends AbstractIdentifiableIni
      */
     @Nullable @NotEmpty protected String decode(@Nonnull final String transientId,
             @Nonnull @NotEmpty final String requesterId) throws NameDecoderException {
-        throwComponentStateExceptions();
+        checkComponentActive();
         if (null == transientId) {
             throw new NameDecoderException(getLogPrefix() + " Transient identifier was null");
         } else if (Strings.isNullOrEmpty(requesterId)) {
diff --git a/idp-saml-impl/src/main/java/net/shibboleth/idp/saml/nameid/impl/BaseTransformingDecoder.java b/idp-saml-impl/src/main/java/net/shibboleth/idp/saml/nameid/impl/BaseTransformingDecoder.java
index b18a6cf5c..17bc774e6 100644
--- a/idp-saml-impl/src/main/java/net/shibboleth/idp/saml/nameid/impl/BaseTransformingDecoder.java
+++ b/idp-saml-impl/src/main/java/net/shibboleth/idp/saml/nameid/impl/BaseTransformingDecoder.java
@@ -65,7 +65,7 @@ public abstract class BaseTransformingDecoder extends AbstractIdentifiableInitia
      * @since 4.1.0
      */
     public void setUppercase(final boolean flag) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         uppercase = flag;
     }
 
@@ -77,7 +77,7 @@ public abstract class BaseTransformingDecoder extends AbstractIdentifiableInitia
      * @since 4.1.0
      */
     public void setLowercase(final boolean flag) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         lowercase = flag;
     }
     
@@ -87,7 +87,7 @@ public abstract class BaseTransformingDecoder extends AbstractIdentifiableInitia
      * @param newTransforms collection of replacement transforms
      */
     public void setTransforms(@Nonnull @NonnullElements final Collection<Pair<String,String>> newTransforms) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         Constraint.isNotNull(newTransforms, "Transforms collection cannot be null");
         
         transforms = new ArrayList<>();
@@ -105,7 +105,7 @@ public abstract class BaseTransformingDecoder extends AbstractIdentifiableInitia
      * @return transformed value
      */
     @Nullable protected String decode(@Nonnull @NotEmpty final String id) {
-        throwComponentStateExceptions();
+        checkComponentActive();
         String s = id;
         
         if (lowercase) {
diff --git a/idp-saml-impl/src/main/java/net/shibboleth/idp/saml/nameid/impl/BaseTransientDecoder.java b/idp-saml-impl/src/main/java/net/shibboleth/idp/saml/nameid/impl/BaseTransientDecoder.java
index 5dbb6f8d4..05554617e 100644
--- a/idp-saml-impl/src/main/java/net/shibboleth/idp/saml/nameid/impl/BaseTransientDecoder.java
+++ b/idp-saml-impl/src/main/java/net/shibboleth/idp/saml/nameid/impl/BaseTransientDecoder.java
@@ -65,7 +65,7 @@ public abstract class BaseTransientDecoder extends AbstractIdentifiableInitializ
      * @param store the store to use.
      */
     public void setIdStore(@Nonnull final StorageService store) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         idStore = Constraint.isNotNull(store, "StorageService cannot be null");
     }
 
@@ -80,7 +80,7 @@ public abstract class BaseTransientDecoder extends AbstractIdentifiableInitializ
      */
     @Nullable public String decode(@Nonnull final String transientId, @Nonnull @NotEmpty final String requesterId)
             throws NameDecoderException {
-        throwComponentStateExceptions();
+        checkComponentActive();
         if (null == transientId) {
             throw new NameDecoderException(getLogPrefix() + " Transient identifier was null");
         } else if (Strings.isNullOrEmpty(requesterId)) {
diff --git a/idp-saml-impl/src/main/java/net/shibboleth/idp/saml/nameid/impl/CryptoTransientIdGenerationStrategy.java b/idp-saml-impl/src/main/java/net/shibboleth/idp/saml/nameid/impl/CryptoTransientIdGenerationStrategy.java
index 383c19646..e69a7ae08 100644
--- a/idp-saml-impl/src/main/java/net/shibboleth/idp/saml/nameid/impl/CryptoTransientIdGenerationStrategy.java
+++ b/idp-saml-impl/src/main/java/net/shibboleth/idp/saml/nameid/impl/CryptoTransientIdGenerationStrategy.java
@@ -61,7 +61,7 @@ public class CryptoTransientIdGenerationStrategy extends AbstractIdentifiableIni
      * @param sealer object used to protect and encrypt the data
      */
     public void setDataSealer(@Nonnull final DataSealer sealer) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         dataSealer = Constraint.isNotNull(sealer, "DataSealer cannot be null");
     }
     
@@ -80,7 +80,7 @@ public class CryptoTransientIdGenerationStrategy extends AbstractIdentifiableIni
      * @param lifetime time ids are valid
      */
     public void setIdLifetime(@Nonnull final Duration lifetime) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         Constraint.isNotNull(lifetime, "Lifetime cannot be null");
         Constraint.isFalse(lifetime.isNegative() || lifetime.isZero(), "Lifetime must be positive");
         
@@ -100,7 +100,7 @@ public class CryptoTransientIdGenerationStrategy extends AbstractIdentifiableIni
     @Override
     @Nonnull @NotEmpty public String generate(@Nonnull @NotEmpty final String relyingPartyId,
             @Nonnull @NotEmpty final String principalName) throws SAMLException {
-        throwComponentStateExceptions();
+        checkComponentActive();
         final StringBuilder principalTokenIdBuilder = new StringBuilder();
         principalTokenIdBuilder.append(relyingPartyId).append("!").append(principalName);
 
diff --git a/idp-saml-impl/src/main/java/net/shibboleth/idp/saml/nameid/impl/NameIDCanonicalization.java b/idp-saml-impl/src/main/java/net/shibboleth/idp/saml/nameid/impl/NameIDCanonicalization.java
index 2dfd8279c..f06a669ef 100644
--- a/idp-saml-impl/src/main/java/net/shibboleth/idp/saml/nameid/impl/NameIDCanonicalization.java
+++ b/idp-saml-impl/src/main/java/net/shibboleth/idp/saml/nameid/impl/NameIDCanonicalization.java
@@ -88,7 +88,7 @@ public class NameIDCanonicalization extends AbstractSubjectCanonicalizationActio
      * @param theDecoder the decoder
      */
     @NonnullAfterInit public void setDecoder(@Nonnull final NameIDDecoder theDecoder) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         decoder = Constraint.isNotNull(theDecoder, "Name ID decoder cannot be null");
     }
     
diff --git a/idp-saml-impl/src/main/java/net/shibboleth/idp/saml/nameid/impl/NameIdentifierCanonicalization.java b/idp-saml-impl/src/main/java/net/shibboleth/idp/saml/nameid/impl/NameIdentifierCanonicalization.java
index b34f4f65e..58103e811 100644
--- a/idp-saml-impl/src/main/java/net/shibboleth/idp/saml/nameid/impl/NameIdentifierCanonicalization.java
+++ b/idp-saml-impl/src/main/java/net/shibboleth/idp/saml/nameid/impl/NameIdentifierCanonicalization.java
@@ -86,7 +86,7 @@ public class NameIdentifierCanonicalization extends AbstractSubjectCanonicalizat
      * @param theDecoder the decoder
      */
     public void setDecoder(@Nonnull final NameIdentifierDecoder theDecoder) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         decoder = Constraint.isNotNull(theDecoder, "NameIdentifierDecoder cannot be null");
     }
     
diff --git a/idp-saml-impl/src/main/java/net/shibboleth/idp/saml/nameid/impl/PersistentSAML2NameIDGenerator.java b/idp-saml-impl/src/main/java/net/shibboleth/idp/saml/nameid/impl/PersistentSAML2NameIDGenerator.java
index 51423215f..2be6864e1 100644
--- a/idp-saml-impl/src/main/java/net/shibboleth/idp/saml/nameid/impl/PersistentSAML2NameIDGenerator.java
+++ b/idp-saml-impl/src/main/java/net/shibboleth/idp/saml/nameid/impl/PersistentSAML2NameIDGenerator.java
@@ -102,7 +102,7 @@ public class PersistentSAML2NameIDGenerator extends AbstractSAML2NameIDGenerator
      */
     public void setSubjectContextLookupStrategy(
             @Nonnull final Function<ProfileRequestContext,SubjectContext> strategy) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         subjectContextLookupStrategy = Constraint.isNotNull(strategy, "SubjectContext lookup strategy cannot be null");
     }
 
@@ -113,7 +113,7 @@ public class PersistentSAML2NameIDGenerator extends AbstractSAML2NameIDGenerator
      */
     public void setAttributeContextLookupStrategy(
             @Nonnull final Function<ProfileRequestContext,AttributeContext> strategy) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         attributeContextLookupStrategy =
                 Constraint.isNotNull(strategy, "AttributeContext lookup strategy cannot be null");
     }
@@ -124,7 +124,7 @@ public class PersistentSAML2NameIDGenerator extends AbstractSAML2NameIDGenerator
      * @param ids attribute IDs to pull from
      */
     public void setAttributeSourceIds(@Nonnull @NonnullElements final List<String> ids) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         attributeSourceIds = List.copyOf(Constraint.isNotNull(ids, "Attribute ID collection cannot be null"));
     }
 
@@ -134,7 +134,7 @@ public class PersistentSAML2NameIDGenerator extends AbstractSAML2NameIDGenerator
      * @param store the id store
      */
     public void setPersistentIdStore(@Nullable final PairwiseIdStore store) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         pidStore = store;
     }
 
@@ -145,7 +145,7 @@ public class PersistentSAML2NameIDGenerator extends AbstractSAML2NameIDGenerator
      * @param source data source
      */
     public void setDataSource(@Nullable final DataSource source) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         dataSource = source;
     }
     
diff --git a/idp-saml-impl/src/main/java/net/shibboleth/idp/saml/nameid/impl/StoredPersistentIdDecoder.java b/idp-saml-impl/src/main/java/net/shibboleth/idp/saml/nameid/impl/StoredPersistentIdDecoder.java
index 74f2fa59b..2a22ffe29 100644
--- a/idp-saml-impl/src/main/java/net/shibboleth/idp/saml/nameid/impl/StoredPersistentIdDecoder.java
+++ b/idp-saml-impl/src/main/java/net/shibboleth/idp/saml/nameid/impl/StoredPersistentIdDecoder.java
@@ -59,7 +59,7 @@ public class StoredPersistentIdDecoder extends AbstractIdentifiableInitializable
      * @param store the id store
      */
     public void setPersistentIdStore(@Nullable final DurablePairwiseIdStore store) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         pidStore = store;
     }
 
@@ -70,7 +70,7 @@ public class StoredPersistentIdDecoder extends AbstractIdentifiableInitializable
      * @param source data source
      */
     public void setDataSource(@Nullable final DataSource source) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         dataSource = source;
     }
     
@@ -98,7 +98,7 @@ public class StoredPersistentIdDecoder extends AbstractIdentifiableInitializable
     /** {@inheritDoc} */
     @Nonnull @NotEmpty public String decode(@Nonnull final SubjectCanonicalizationContext c14nContext,
             @Nonnull final NameID nameID) throws NameDecoderException {
-        throwComponentStateExceptions();
+        checkComponentActive();
 
         if (nameID.getValue() == null) {
             throw new NameDecoderException("Persistent NameID was empty");
diff --git a/idp-saml-impl/src/main/java/net/shibboleth/idp/saml/nameid/impl/StoredTransientIdGenerationStrategy.java b/idp-saml-impl/src/main/java/net/shibboleth/idp/saml/nameid/impl/StoredTransientIdGenerationStrategy.java
index 1465ab22d..c904256e5 100644
--- a/idp-saml-impl/src/main/java/net/shibboleth/idp/saml/nameid/impl/StoredTransientIdGenerationStrategy.java
+++ b/idp-saml-impl/src/main/java/net/shibboleth/idp/saml/nameid/impl/StoredTransientIdGenerationStrategy.java
@@ -73,7 +73,7 @@ public class StoredTransientIdGenerationStrategy extends AbstractIdentifiableIni
      * @param store the store to use.
      */
     public void setIdStore(@Nonnull final StorageService store) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         idStore = Constraint.isNotNull(store, "StorageService cannot be null");
     }
 
@@ -83,7 +83,7 @@ public class StoredTransientIdGenerationStrategy extends AbstractIdentifiableIni
      * @param generator identifier generation strategy to use
      */
     public void setIdGenerator(@Nonnull final IdentifierGenerationStrategy generator) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         idGenerator = Constraint.isNotNull(generator, "IdentifierGenerationStrategy cannot be null");
     }
     
@@ -102,7 +102,7 @@ public class StoredTransientIdGenerationStrategy extends AbstractIdentifiableIni
      * @param size size, in bytes, of the id
      */
     public void setIdSize(@Positive final int size) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         idSize = (int) Constraint.isGreaterThan(0, size, "ID size must be positive");
     }
     
@@ -121,7 +121,7 @@ public class StoredTransientIdGenerationStrategy extends AbstractIdentifiableIni
      * @param lifetime time ids are valid
      */
     public void setIdLifetime(@Nonnull final Duration lifetime) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         Constraint.isNotNull(lifetime, "ID lifetime cannot be null");
         Constraint.isFalse(lifetime.isNegative() || lifetime.isZero(), "ID lifetime must be greater than 0");
         
@@ -144,7 +144,7 @@ public class StoredTransientIdGenerationStrategy extends AbstractIdentifiableIni
     /** {@inheritDoc} */
     @Nonnull @NotEmpty public String generate(@Nonnull @NotEmpty final String relyingPartyId,
             @Nonnull @NotEmpty final String principalName) throws SAMLException {
-        throwComponentStateExceptions();
+        checkComponentActive();
         try {
             final String principalTokenId = new TransientIdParameters(relyingPartyId, principalName).encode();
     
diff --git a/idp-saml-impl/src/main/java/net/shibboleth/idp/saml/nameid/impl/TransientSAML1NameIdentifierGenerator.java b/idp-saml-impl/src/main/java/net/shibboleth/idp/saml/nameid/impl/TransientSAML1NameIdentifierGenerator.java
index 3df4d42ef..e14f76227 100644
--- a/idp-saml-impl/src/main/java/net/shibboleth/idp/saml/nameid/impl/TransientSAML1NameIdentifierGenerator.java
+++ b/idp-saml-impl/src/main/java/net/shibboleth/idp/saml/nameid/impl/TransientSAML1NameIdentifierGenerator.java
@@ -68,7 +68,7 @@ public class TransientSAML1NameIdentifierGenerator extends AbstractSAML1NameIden
      */
     public void setSubjectContextLookupStrategy(
             @Nonnull final Function<ProfileRequestContext,SubjectContext> strategy) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         subjectContextLookupStrategy = Constraint.isNotNull(strategy, "SubjectContext lookup strategy cannot be null");
     }
 
@@ -78,7 +78,7 @@ public class TransientSAML1NameIdentifierGenerator extends AbstractSAML1NameIden
      * @param generator transient ID generator
      */
     public void setTransientIdGenerator(@Nonnull final TransientIdGenerationStrategy generator) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         transientIdGenerator = Constraint.isNotNull(generator, "TransientIdGenerationStrategy cannot be null");
     }
 
diff --git a/idp-saml-impl/src/main/java/net/shibboleth/idp/saml/nameid/impl/TransientSAML2NameIDGenerator.java b/idp-saml-impl/src/main/java/net/shibboleth/idp/saml/nameid/impl/TransientSAML2NameIDGenerator.java
index 87d70c3e9..fb1a4729d 100644
--- a/idp-saml-impl/src/main/java/net/shibboleth/idp/saml/nameid/impl/TransientSAML2NameIDGenerator.java
+++ b/idp-saml-impl/src/main/java/net/shibboleth/idp/saml/nameid/impl/TransientSAML2NameIDGenerator.java
@@ -68,7 +68,7 @@ public class TransientSAML2NameIDGenerator extends AbstractSAML2NameIDGenerator
      */
     public void setSubjectContextLookupStrategy(
             @Nonnull final Function<ProfileRequestContext,SubjectContext> strategy) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         subjectContextLookupStrategy = Constraint.isNotNull(strategy, "SubjectContext lookup strategy cannot be null");
     }
 
@@ -78,7 +78,7 @@ public class TransientSAML2NameIDGenerator extends AbstractSAML2NameIDGenerator
      * @param generator transient ID generator
      */
     public void setTransientIdGenerator(@Nonnull final TransientIdGenerationStrategy generator) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         transientIdGenerator = Constraint.isNotNull(generator, "TransientIdGenerationStrategy cannot be null");
     }
 
diff --git a/idp-saml-impl/src/main/java/net/shibboleth/idp/saml/profile/impl/BaseAddAttributeStatementToAssertion.java b/idp-saml-impl/src/main/java/net/shibboleth/idp/saml/profile/impl/BaseAddAttributeStatementToAssertion.java
index f33712787..97202bf4a 100644
--- a/idp-saml-impl/src/main/java/net/shibboleth/idp/saml/profile/impl/BaseAddAttributeStatementToAssertion.java
+++ b/idp-saml-impl/src/main/java/net/shibboleth/idp/saml/profile/impl/BaseAddAttributeStatementToAssertion.java
@@ -132,7 +132,7 @@ public abstract class BaseAddAttributeStatementToAssertion<T extends SAMLObject>
      *            one if it exists
      */
     public void setStatementInOwnAssertion(final boolean flag) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         statementInOwnAssertion = flag;
     }
 
@@ -157,7 +157,7 @@ public abstract class BaseAddAttributeStatementToAssertion<T extends SAMLObject>
      * @param flag flag to set
      */
     public void setIgnoringUnencodableAttributes(final boolean flag) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         ignoringUnencodableAttributes = flag;
     }
 
@@ -170,7 +170,7 @@ public abstract class BaseAddAttributeStatementToAssertion<T extends SAMLObject>
      */
     public void setAttributeContextLookupStrategy(
             @Nonnull final Function<ProfileRequestContext, AttributeContext> strategy) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         attributeContextLookupStrategy =
                 Constraint.isNotNull(strategy, "AttributeContext lookup strategy cannot be null");
     }
@@ -182,7 +182,7 @@ public abstract class BaseAddAttributeStatementToAssertion<T extends SAMLObject>
      */
     public void setIdentifierGeneratorLookupStrategy(
             @Nonnull final Function<ProfileRequestContext,IdentifierGenerationStrategy> strategy) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         idGeneratorLookupStrategy =
                 Constraint.isNotNull(strategy, "IdentifierGenerationStrategy lookup strategy cannot be null");
     }
@@ -193,7 +193,7 @@ public abstract class BaseAddAttributeStatementToAssertion<T extends SAMLObject>
      * @param strategy lookup strategy
      */
     public void setIssuerLookupStrategy(@Nonnull final Function<ProfileRequestContext,String> strategy) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         issuerLookupStrategy = Constraint.isNotNull(strategy, "Issuer lookup strategy cannot be null");
     }
 
@@ -212,7 +212,7 @@ public abstract class BaseAddAttributeStatementToAssertion<T extends SAMLObject>
      * @param registry registry service interface
      */
     public void setTranscoderRegistry(@Nonnull final ReloadableService<AttributeTranscoderRegistry> registry) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         transcoderRegistry = Constraint.isNotNull(registry, "AttributeTranscoderRegistry cannot be null");
     }
     
diff --git a/idp-saml-impl/src/main/java/net/shibboleth/idp/saml/profile/impl/BaseAddAuthenticationStatementToAssertion.java b/idp-saml-impl/src/main/java/net/shibboleth/idp/saml/profile/impl/BaseAddAuthenticationStatementToAssertion.java
index 29f97b695..3ede945a0 100644
--- a/idp-saml-impl/src/main/java/net/shibboleth/idp/saml/profile/impl/BaseAddAuthenticationStatementToAssertion.java
+++ b/idp-saml-impl/src/main/java/net/shibboleth/idp/saml/profile/impl/BaseAddAuthenticationStatementToAssertion.java
@@ -102,7 +102,7 @@ public abstract class BaseAddAuthenticationStatementToAssertion extends Abstract
      *            added to one if it exists
      */
     public void setStatementInOwnAssertion(final boolean inOwnAssertion) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         statementInOwnAssertion = inOwnAssertion;
     }
 
@@ -113,7 +113,7 @@ public abstract class BaseAddAuthenticationStatementToAssertion extends Abstract
      */
     public void setIdentifierGeneratorLookupStrategy(
             @Nonnull final Function<ProfileRequestContext,IdentifierGenerationStrategy> strategy) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         idGeneratorLookupStrategy =
                 Constraint.isNotNull(strategy, "IdentifierGenerationStrategy lookup strategy cannot be null");
     }
@@ -124,7 +124,7 @@ public abstract class BaseAddAuthenticationStatementToAssertion extends Abstract
      * @param strategy lookup strategy
      */
     public void setIssuerLookupStrategy(@Nonnull final Function<ProfileRequestContext,String> strategy) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         issuerLookupStrategy = Constraint.isNotNull(strategy, "Issuer lookup strategy cannot be null");
     }
 
@@ -147,7 +147,7 @@ public abstract class BaseAddAuthenticationStatementToAssertion extends Abstract
      * @since 4.0.0
      */
     public void setAddressLookupStrategy(@Nullable final Function<ProfileRequestContext,String> strategy) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         addressLookupStrategy = strategy;
     }
     
diff --git a/idp-saml-impl/src/main/java/net/shibboleth/idp/saml/profile/impl/ExtractSubjectFromRequest.java b/idp-saml-impl/src/main/java/net/shibboleth/idp/saml/profile/impl/ExtractSubjectFromRequest.java
index ed5235cfe..22a78f87b 100644
--- a/idp-saml-impl/src/main/java/net/shibboleth/idp/saml/profile/impl/ExtractSubjectFromRequest.java
+++ b/idp-saml-impl/src/main/java/net/shibboleth/idp/saml/profile/impl/ExtractSubjectFromRequest.java
@@ -100,7 +100,7 @@ public class ExtractSubjectFromRequest extends AbstractProfileAction {
      * @param strategy lookup strategy
      */
     public void setRequesterLookupStrategy(@Nullable final Function<ProfileRequestContext,String> strategy) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         requesterLookupStrategy = strategy;
     }
 
@@ -110,7 +110,7 @@ public class ExtractSubjectFromRequest extends AbstractProfileAction {
      * @param strategy lookup strategy
      */
     public void setResponderLookupStrategy(@Nullable final Function<ProfileRequestContext,String> strategy) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         responderLookupStrategy = strategy;
     }
     
@@ -120,7 +120,7 @@ public class ExtractSubjectFromRequest extends AbstractProfileAction {
      * @param predicate predicate to use
      */
     public void setNameIDPolicyPredicate(@Nullable final Predicate<ProfileRequestContext> predicate) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         nameIDPolicyPredicate = predicate;
     }
     
diff --git a/idp-saml-impl/src/main/java/net/shibboleth/idp/saml/profile/impl/InitializeAuthenticationContext.java b/idp-saml-impl/src/main/java/net/shibboleth/idp/saml/profile/impl/InitializeAuthenticationContext.java
index 13d4d9f63..bc39826f0 100644
--- a/idp-saml-impl/src/main/java/net/shibboleth/idp/saml/profile/impl/InitializeAuthenticationContext.java
+++ b/idp-saml-impl/src/main/java/net/shibboleth/idp/saml/profile/impl/InitializeAuthenticationContext.java
@@ -101,7 +101,7 @@ public class InitializeAuthenticationContext extends AbstractProfileAction {
      */
     public void setRelyingPartyContextLookupStrategy(
             @Nonnull final Function<ProfileRequestContext,RelyingPartyContext> strategy) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         relyingPartyContextLookupStrategy =
                 Constraint.isNotNull(strategy, "RelyingPartyContext lookup strategy cannot be null");
     }
@@ -114,7 +114,7 @@ public class InitializeAuthenticationContext extends AbstractProfileAction {
      * @since 3.4.0
      */
     public void setForceAuthnPredicate(@Nonnull final Predicate<ProfileRequestContext> condition) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         forceAuthnPredicate = Constraint.isNotNull(condition, "Forced authentication predicate cannot be null");
     }
 
@@ -126,7 +126,7 @@ public class InitializeAuthenticationContext extends AbstractProfileAction {
      * @since 4.0.0
      */
     public void setIgnoreScopingPredicate(@Nonnull final Predicate<ProfileRequestContext> condition) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         ignoreScopingPredicate = Constraint.isNotNull(condition, "Ignore Scoping predicate cannot be null");
     }
 
@@ -138,7 +138,7 @@ public class InitializeAuthenticationContext extends AbstractProfileAction {
      * @since 4.0.0
      */
     public void setProxyCountLookupStrategy(@Nonnull final Function<ProfileRequestContext,Integer> strategy) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         proxyCountLookupStrategy = Constraint.isNotNull(strategy, "Proxy count lookup strategy cannot be null");
     }
     
@@ -148,7 +148,7 @@ public class InitializeAuthenticationContext extends AbstractProfileAction {
      * @param strategy strategy used to locate the {@link AuthnRequest}
      */
     public void setRequestLookupStrategy(@Nonnull final Function<ProfileRequestContext,AuthnRequest> strategy) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         requestLookupStrategy = Constraint.isNotNull(strategy, "AuthnRequest lookup strategy cannot be null");
     }
     
diff --git a/idp-saml-impl/src/main/java/net/shibboleth/idp/saml/profile/impl/InitializeOutboundMessageContext.java b/idp-saml-impl/src/main/java/net/shibboleth/idp/saml/profile/impl/InitializeOutboundMessageContext.java
index 96420c5a4..66249827d 100644
--- a/idp-saml-impl/src/main/java/net/shibboleth/idp/saml/profile/impl/InitializeOutboundMessageContext.java
+++ b/idp-saml-impl/src/main/java/net/shibboleth/idp/saml/profile/impl/InitializeOutboundMessageContext.java
@@ -81,7 +81,7 @@ public class InitializeOutboundMessageContext extends AbstractProfileAction {
      */
     public void setRelyingPartyContextLookupStrategy(
             @Nonnull final Function<ProfileRequestContext, RelyingPartyContext> strategy) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         relyingPartyContextLookupStrategy =
                 Constraint.isNotNull(strategy, "RelyingPartyContext lookup strategy cannot be null");
     }
@@ -92,7 +92,7 @@ public class InitializeOutboundMessageContext extends AbstractProfileAction {
      * @param strategy lookup strategy
      */
     public void setSelfIdentityLookupStrategy(@Nonnull final Function<ProfileRequestContext, String> strategy) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         selfIdentityLookupStrategy = Constraint.isNotNull(strategy, "Self identity lookup strategy cannot be null");
     }
 
diff --git a/idp-saml-impl/src/main/java/net/shibboleth/idp/saml/profile/impl/InitializeOutboundMessageContextForError.java b/idp-saml-impl/src/main/java/net/shibboleth/idp/saml/profile/impl/InitializeOutboundMessageContextForError.java
index 8d41ad404..e467b1d2b 100644
--- a/idp-saml-impl/src/main/java/net/shibboleth/idp/saml/profile/impl/InitializeOutboundMessageContextForError.java
+++ b/idp-saml-impl/src/main/java/net/shibboleth/idp/saml/profile/impl/InitializeOutboundMessageContextForError.java
@@ -93,7 +93,7 @@ public class InitializeOutboundMessageContextForError extends AbstractProfileAct
      */
     public void setBindingContextLookupStrategy(
             @Nonnull final Function<ProfileRequestContext,SAMLBindingContext> strategy) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         bindingContextLookupStrategy = Constraint.isNotNull(strategy,
                 "SAMLBindingContext lookup strategy cannot be null");
     }
diff --git a/idp-saml-impl/src/main/java/net/shibboleth/idp/saml/profile/impl/InitializeRelyingPartyContextFromSAMLPeer.java b/idp-saml-impl/src/main/java/net/shibboleth/idp/saml/profile/impl/InitializeRelyingPartyContextFromSAMLPeer.java
index d53b824a9..985f1a8cc 100644
--- a/idp-saml-impl/src/main/java/net/shibboleth/idp/saml/profile/impl/InitializeRelyingPartyContextFromSAMLPeer.java
+++ b/idp-saml-impl/src/main/java/net/shibboleth/idp/saml/profile/impl/InitializeRelyingPartyContextFromSAMLPeer.java
@@ -82,7 +82,7 @@ public class InitializeRelyingPartyContextFromSAMLPeer extends AbstractProfileAc
      */
     public void setRelyingPartyContextCreationStrategy(
             @Nonnull final Function<ProfileRequestContext,RelyingPartyContext> strategy) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         relyingPartyContextCreationStrategy =
                 Constraint.isNotNull(strategy, "RelyingPartyContext creation strategy cannot be null");
     }
@@ -94,7 +94,7 @@ public class InitializeRelyingPartyContextFromSAMLPeer extends AbstractProfileAc
      */
     public void setPeerEntityContextLookupStrategy(
             @Nonnull final Function<ProfileRequestContext,SAMLPeerEntityContext> strategy) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         peerEntityContextLookupStrategy =
                 Constraint.isNotNull(strategy, "SAMLPeerEntityContext lookup strategy cannot be null");
     }
diff --git a/idp-saml-impl/src/main/java/net/shibboleth/idp/saml/profile/impl/PopulateBindingAndEndpointContexts.java b/idp-saml-impl/src/main/java/net/shibboleth/idp/saml/profile/impl/PopulateBindingAndEndpointContexts.java
index 068eeee1e..b0ea0fb1c 100644
--- a/idp-saml-impl/src/main/java/net/shibboleth/idp/saml/profile/impl/PopulateBindingAndEndpointContexts.java
+++ b/idp-saml-impl/src/main/java/net/shibboleth/idp/saml/profile/impl/PopulateBindingAndEndpointContexts.java
@@ -185,7 +185,7 @@ public class PopulateBindingAndEndpointContexts extends AbstractProfileAction {
      * @param type  type of endpoint to resolve
      */
     public void setEndpointType(@Nullable final QName type) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         endpointType = type;
     }
     
@@ -195,7 +195,7 @@ public class PopulateBindingAndEndpointContexts extends AbstractProfileAction {
      * @param resolver endpoint resolver to use  
      */
     public void setEndpointResolver(@Nonnull final EndpointResolver<?> resolver) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         endpointResolver = Constraint.isNotNull(resolver, "EndpointResolver cannot be null");
     }
     
@@ -208,7 +208,7 @@ public class PopulateBindingAndEndpointContexts extends AbstractProfileAction {
      */
     public void setBindingDescriptorsLookupStrategy(
             @Nonnull final Function<ProfileRequestContext,List<BindingDescriptor>> strategy) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         bindingDescriptorsLookupStrategy =
                 Constraint.isNotNull(strategy, "Binding descriptors lookup strategy cannot be null");
     }
@@ -220,7 +220,7 @@ public class PopulateBindingAndEndpointContexts extends AbstractProfileAction {
      */
     public void setRelyingPartyContextLookupStrategy(
             @Nonnull final Function<ProfileRequestContext,RelyingPartyContext> strategy) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         relyingPartyContextLookupStrategy = Constraint.isNotNull(strategy,
                 "RelyingPartyContext lookup strategy cannot be null");
     }
@@ -232,7 +232,7 @@ public class PopulateBindingAndEndpointContexts extends AbstractProfileAction {
      */
     public void setMetadataContextLookupStrategy(
             @Nonnull final Function<ProfileRequestContext,SAMLMetadataContext> strategy) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         metadataContextLookupStrategy = Constraint.isNotNull(strategy,
                 "SAMLMetadataContext lookup strategy cannot be null");
     }
@@ -244,7 +244,7 @@ public class PopulateBindingAndEndpointContexts extends AbstractProfileAction {
      */
     public void setBindingContextLookupStrategy(
             @Nonnull final Function<ProfileRequestContext,SAMLBindingContext> strategy) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         bindingContextLookupStrategy = Constraint.isNotNull(strategy,
                 "SAMLBindingContext lookup strategy cannot be null");
     }
@@ -256,7 +256,7 @@ public class PopulateBindingAndEndpointContexts extends AbstractProfileAction {
      */
     public void setEndpointContextLookupStrategy(
             @Nonnull final Function<ProfileRequestContext,SAMLEndpointContext> strategy) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         endpointContextLookupStrategy = Constraint.isNotNull(strategy,
                 "SAMLEndpointContext lookup strategy cannot be null");
     }
@@ -268,7 +268,7 @@ public class PopulateBindingAndEndpointContexts extends AbstractProfileAction {
      */
     public void setArtifactContextLookupStrategy(
             @Nonnull final Function<ProfileRequestContext,SAMLArtifactContext> strategy) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         artifactContextLookupStrategy = Constraint.isNotNull(strategy,
                 "SAMLArtifactContext lookup strategy cannot be null");
     }
@@ -280,7 +280,7 @@ public class PopulateBindingAndEndpointContexts extends AbstractProfileAction {
      */
     public void setBestMatchCriterionLookupStrategy(
             @Nullable final Function<ProfileRequestContext,BestMatchLocationCriterion> strategy) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         bestMatchCriterionLookupStrategy = strategy;
     }
     
@@ -296,7 +296,7 @@ public class PopulateBindingAndEndpointContexts extends AbstractProfileAction {
      * @param flag flag to set
      */
     public void setArtifactImpliesSecureChannel(final boolean flag) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         artifactImpliesSecureChannel = flag;
     }
     
diff --git a/idp-saml-impl/src/main/java/net/shibboleth/idp/saml/profile/impl/PopulateInboundMessageContextWithSAMLSelf.java b/idp-saml-impl/src/main/java/net/shibboleth/idp/saml/profile/impl/PopulateInboundMessageContextWithSAMLSelf.java
index 11a64e78b..fb96d7b01 100644
--- a/idp-saml-impl/src/main/java/net/shibboleth/idp/saml/profile/impl/PopulateInboundMessageContextWithSAMLSelf.java
+++ b/idp-saml-impl/src/main/java/net/shibboleth/idp/saml/profile/impl/PopulateInboundMessageContextWithSAMLSelf.java
@@ -63,7 +63,7 @@ public class PopulateInboundMessageContextWithSAMLSelf extends AbstractProfileAc
      * @param strategy lookup strategy
      */
     public void setSelfIdentityLookupStrategy(@Nonnull final Function<ProfileRequestContext, String> strategy) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         selfIdentityLookupStrategy = Constraint.isNotNull(strategy, "Self identity lookup strategy cannot be null");
     }
 
diff --git a/idp-saml-impl/src/main/java/net/shibboleth/idp/saml/profile/impl/ReloadMetadata.java b/idp-saml-impl/src/main/java/net/shibboleth/idp/saml/profile/impl/ReloadMetadata.java
index d4788f24c..11d0c96c1 100644
--- a/idp-saml-impl/src/main/java/net/shibboleth/idp/saml/profile/impl/ReloadMetadata.java
+++ b/idp-saml-impl/src/main/java/net/shibboleth/idp/saml/profile/impl/ReloadMetadata.java
@@ -78,7 +78,7 @@ public class ReloadMetadata extends AbstractProfileAction {
      * @param service what to set.
      */
     public void setMetadataResolver(@Nonnull final ReloadableService<MetadataResolver> service) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         metadataResolverService = Constraint.isNotNull(service, "MetadataResolver service cannot be null");
     }
     
diff --git a/idp-saml-impl/src/main/java/net/shibboleth/idp/saml/profile/impl/SpringAwareMessageDecoderFactory.java b/idp-saml-impl/src/main/java/net/shibboleth/idp/saml/profile/impl/SpringAwareMessageDecoderFactory.java
index 1d54cf6d1..9e710b55d 100644
--- a/idp-saml-impl/src/main/java/net/shibboleth/idp/saml/profile/impl/SpringAwareMessageDecoderFactory.java
+++ b/idp-saml-impl/src/main/java/net/shibboleth/idp/saml/profile/impl/SpringAwareMessageDecoderFactory.java
@@ -66,7 +66,7 @@ public class SpringAwareMessageDecoderFactory extends AbstractInitializableCompo
      * @param mappings string to bean ID mappings
      */
     public void setBeanMappings(@Nonnull final Map<String,String> mappings) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         Constraint.isNotNull(mappings, "Mappings cannot be null");
         
         beanMappings = new HashMap<>(mappings.size());
@@ -87,7 +87,7 @@ public class SpringAwareMessageDecoderFactory extends AbstractInitializableCompo
     
     /** {@inheritDoc} */
     @Nullable public MessageDecoder apply(@Nullable final String input) {
-        throwComponentStateExceptions();
+        checkComponentActive();
         
         final String beanID = beanMappings.get(StringSupport.trimOrNull(input));
         
diff --git a/idp-saml-impl/src/main/java/net/shibboleth/idp/saml/profile/impl/SpringAwareMessageEncoderFactory.java b/idp-saml-impl/src/main/java/net/shibboleth/idp/saml/profile/impl/SpringAwareMessageEncoderFactory.java
index fdc46fc0e..8c4f5b085 100644
--- a/idp-saml-impl/src/main/java/net/shibboleth/idp/saml/profile/impl/SpringAwareMessageEncoderFactory.java
+++ b/idp-saml-impl/src/main/java/net/shibboleth/idp/saml/profile/impl/SpringAwareMessageEncoderFactory.java
@@ -56,7 +56,7 @@ public class SpringAwareMessageEncoderFactory extends AbstractInitializableCompo
     
     /** {@inheritDoc} */
     @Nullable public MessageEncoder apply(@Nullable final ProfileRequestContext profileRequestContext) {
-        throwComponentStateExceptions();
+        checkComponentActive();
         
         if (applicationContext == null) {
             log.warn("No Spring ApplicationContext set");
diff --git a/idp-saml-impl/src/main/java/net/shibboleth/idp/saml/profile/impl/UpdateSAMLSelfEntityContext.java b/idp-saml-impl/src/main/java/net/shibboleth/idp/saml/profile/impl/UpdateSAMLSelfEntityContext.java
index 0fd5e2f68..8b1be7630 100644
--- a/idp-saml-impl/src/main/java/net/shibboleth/idp/saml/profile/impl/UpdateSAMLSelfEntityContext.java
+++ b/idp-saml-impl/src/main/java/net/shibboleth/idp/saml/profile/impl/UpdateSAMLSelfEntityContext.java
@@ -65,7 +65,7 @@ public class UpdateSAMLSelfEntityContext extends AbstractProfileAction {
      * @param strategy lookup strategy
      */
     public void setSelfIdentityLookupStrategy(@Nonnull final Function<ProfileRequestContext, String> strategy) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         selfIdentityLookupStrategy = Constraint.isNotNull(strategy, "Self identity lookup strategy cannot be null");
     }
 
diff --git a/idp-saml-impl/src/main/java/net/shibboleth/idp/saml/saml1/profile/impl/AddAttributeStatementToAssertion.java b/idp-saml-impl/src/main/java/net/shibboleth/idp/saml/saml1/profile/impl/AddAttributeStatementToAssertion.java
index 99157edb1..b8751e0b0 100644
--- a/idp-saml-impl/src/main/java/net/shibboleth/idp/saml/saml1/profile/impl/AddAttributeStatementToAssertion.java
+++ b/idp-saml-impl/src/main/java/net/shibboleth/idp/saml/saml1/profile/impl/AddAttributeStatementToAssertion.java
@@ -84,7 +84,7 @@ public class AddAttributeStatementToAssertion extends BaseAddAttributeStatementT
      * @param strategy strategy used to locate the {@link Assertion} to operate on
      */
     public void setAssertionLookupStrategy(@Nonnull final Function<ProfileRequestContext,Assertion> strategy) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         assertionLookupStrategy = Constraint.isNotNull(strategy, "Assertion lookup strategy cannot be null");
     }
 
diff --git a/idp-saml-impl/src/main/java/net/shibboleth/idp/saml/saml1/profile/impl/AddAuthenticationStatementToAssertion.java b/idp-saml-impl/src/main/java/net/shibboleth/idp/saml/saml1/profile/impl/AddAuthenticationStatementToAssertion.java
index 0f5e4cb5a..fad4be2a8 100644
--- a/idp-saml-impl/src/main/java/net/shibboleth/idp/saml/saml1/profile/impl/AddAuthenticationStatementToAssertion.java
+++ b/idp-saml-impl/src/main/java/net/shibboleth/idp/saml/saml1/profile/impl/AddAuthenticationStatementToAssertion.java
@@ -88,7 +88,7 @@ public class AddAuthenticationStatementToAssertion extends BaseAddAuthentication
      * @param strategy strategy used to locate the {@link Assertion} to operate on
      */
     public void setAssertionLookupStrategy(@Nonnull final Function<ProfileRequestContext,Assertion> strategy) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         assertionLookupStrategy = Constraint.isNotNull(strategy, "Assertion lookup strategy cannot be null");
     }
     
@@ -99,7 +99,7 @@ public class AddAuthenticationStatementToAssertion extends BaseAddAuthentication
      */
     public void setAuthenticationMethodLookupStrategy(
             @Nonnull final Function<ProfileRequestContext,AuthenticationMethodPrincipal> strategy) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         methodLookupStrategy = Constraint.isNotNull(strategy, "Authentication method strategy cannot be null");
     }
         
diff --git a/idp-saml-impl/src/main/java/net/shibboleth/idp/saml/saml1/profile/impl/FilterByQueriedAttributeDesignators.java b/idp-saml-impl/src/main/java/net/shibboleth/idp/saml/saml1/profile/impl/FilterByQueriedAttributeDesignators.java
index dca88be32..248b8f85a 100644
--- a/idp-saml-impl/src/main/java/net/shibboleth/idp/saml/saml1/profile/impl/FilterByQueriedAttributeDesignators.java
+++ b/idp-saml-impl/src/main/java/net/shibboleth/idp/saml/saml1/profile/impl/FilterByQueriedAttributeDesignators.java
@@ -95,7 +95,7 @@ public class FilterByQueriedAttributeDesignators extends AbstractProfileAction {
      * @param registry registry service interface
      */
     public void setTranscoderRegistry(@Nonnull final ReloadableService<AttributeTranscoderRegistry> registry) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         transcoderRegistry = Constraint.isNotNull(registry, "AttributeTranscoderRegistry cannot be null");
     }
     
@@ -105,7 +105,7 @@ public class FilterByQueriedAttributeDesignators extends AbstractProfileAction {
      * @param strategy lookup strategy
      */
     public void setRequestLookupStrategy(@Nonnull final Function<ProfileRequestContext,Request> strategy) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         requestLookupStrategy = Constraint.isNotNull(strategy, "Request lookup strategy cannot be null");
     }
 
@@ -117,7 +117,7 @@ public class FilterByQueriedAttributeDesignators extends AbstractProfileAction {
      */
     public void setAttributeContextLookupStrategy(
             @Nonnull final Function<ProfileRequestContext,AttributeContext> strategy) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         attributeContextLookupStrategy =
                 Constraint.isNotNull(strategy, "AttributeContext lookup strategy cannot be null");
     }
diff --git a/idp-saml-impl/src/main/java/net/shibboleth/idp/saml/saml2/profile/impl/AddAttributeStatementToAssertion.java b/idp-saml-impl/src/main/java/net/shibboleth/idp/saml/saml2/profile/impl/AddAttributeStatementToAssertion.java
index 2306f1006..cfc1515cf 100644
--- a/idp-saml-impl/src/main/java/net/shibboleth/idp/saml/saml2/profile/impl/AddAttributeStatementToAssertion.java
+++ b/idp-saml-impl/src/main/java/net/shibboleth/idp/saml/saml2/profile/impl/AddAttributeStatementToAssertion.java
@@ -85,7 +85,7 @@ public class AddAttributeStatementToAssertion extends BaseAddAttributeStatementT
      * @param strategy strategy used to locate the {@link Assertion} to operate on
      */
     public void setAssertionLookupStrategy(@Nonnull final Function<ProfileRequestContext,Assertion> strategy) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         assertionLookupStrategy = Constraint.isNotNull(strategy, "Assertion lookup strategy cannot be null");
     }
 
diff --git a/idp-saml-impl/src/main/java/net/shibboleth/idp/saml/saml2/profile/impl/AddAuthnRequest.java b/idp-saml-impl/src/main/java/net/shibboleth/idp/saml/saml2/profile/impl/AddAuthnRequest.java
index c0e105d67..5e68dc9b4 100644
--- a/idp-saml-impl/src/main/java/net/shibboleth/idp/saml/saml2/profile/impl/AddAuthnRequest.java
+++ b/idp-saml-impl/src/main/java/net/shibboleth/idp/saml/saml2/profile/impl/AddAuthnRequest.java
@@ -113,7 +113,7 @@ public class AddAuthnRequest extends AbstractAuthenticationAction {
      * @param flag flag to set
      */
     public void setOverwriteExisting(final boolean flag) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         overwriteExisting = flag;
     }
 
@@ -124,7 +124,7 @@ public class AddAuthnRequest extends AbstractAuthenticationAction {
      */
     public void setIdentifierGeneratorLookupStrategy(
             @Nonnull final Function<ProfileRequestContext,IdentifierGenerationStrategy> strategy) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         idGeneratorLookupStrategy =
                 Constraint.isNotNull(strategy, "IdentifierGenerationStrategy lookup strategy cannot be null");
     }
@@ -135,7 +135,7 @@ public class AddAuthnRequest extends AbstractAuthenticationAction {
      * @param strategy lookup strategy
      */
     public void setIssuerLookupStrategy(@Nullable final Function<ProfileRequestContext,String> strategy) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         issuerLookupStrategy = strategy;
     }
 
diff --git a/idp-saml-impl/src/main/java/net/shibboleth/idp/saml/saml2/profile/impl/AddAuthnStatementToAssertion.java b/idp-saml-impl/src/main/java/net/shibboleth/idp/saml/saml2/profile/impl/AddAuthnStatementToAssertion.java
index 12f853464..d997fe927 100644
--- a/idp-saml-impl/src/main/java/net/shibboleth/idp/saml/saml2/profile/impl/AddAuthnStatementToAssertion.java
+++ b/idp-saml-impl/src/main/java/net/shibboleth/idp/saml/saml2/profile/impl/AddAuthnStatementToAssertion.java
@@ -109,7 +109,7 @@ public class AddAuthnStatementToAssertion extends BaseAddAuthenticationStatement
      * @param strategy strategy used to locate the {@link Assertion} to operate on
      */
     public void setAssertionLookupStrategy(@Nonnull final Function<ProfileRequestContext,Assertion> strategy) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         assertionLookupStrategy = Constraint.isNotNull(strategy, "Assertion lookup strategy cannot be null");
     }
     
@@ -120,7 +120,7 @@ public class AddAuthnStatementToAssertion extends BaseAddAuthenticationStatement
      */
     public void setClassRefLookupStrategy(
             @Nonnull final Function<ProfileRequestContext,AuthnContextClassRefPrincipal> strategy) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         classRefLookupStrategy = Constraint.isNotNull(strategy,
                 "Authentication context class reference strategy cannot be null");
     }
@@ -131,7 +131,7 @@ public class AddAuthnStatementToAssertion extends BaseAddAuthenticationStatement
      * @param strategy lookup strategy
      */
     public void setSessionLifetimeLookupStrategy(@Nullable final Function<ProfileRequestContext,Duration> strategy) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         sessionLifetimeLookupStrategy = strategy;
     }
     
@@ -142,7 +142,7 @@ public class AddAuthnStatementToAssertion extends BaseAddAuthenticationStatement
      */
     public void setSuppressAuthenticatingAuthorityPredicate(
             @Nonnull final Predicate<ProfileRequestContext> condition) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         suppressAuthenticatingAuthorityPredicate = Constraint.isNotNull(condition, "Condition cannot be null");
     }
     
diff --git a/idp-saml-impl/src/main/java/net/shibboleth/idp/saml/saml2/profile/impl/FilterByQueriedAttributes.java b/idp-saml-impl/src/main/java/net/shibboleth/idp/saml/saml2/profile/impl/FilterByQueriedAttributes.java
index d22e8f92f..9708b5c96 100644
--- a/idp-saml-impl/src/main/java/net/shibboleth/idp/saml/saml2/profile/impl/FilterByQueriedAttributes.java
+++ b/idp-saml-impl/src/main/java/net/shibboleth/idp/saml/saml2/profile/impl/FilterByQueriedAttributes.java
@@ -97,7 +97,7 @@ public class FilterByQueriedAttributes extends AbstractProfileAction {
      * @param registry registry service interface
      */
     public void setTranscoderRegistry(@Nonnull final ReloadableService<AttributeTranscoderRegistry> registry) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         transcoderRegistry = Constraint.isNotNull(registry, "AttributeTranscoderRegistry cannot be null");
     }
     
@@ -107,7 +107,7 @@ public class FilterByQueriedAttributes extends AbstractProfileAction {
      * @param strategy lookup strategy
      */
     public void setQueryLookupStrategy(@Nonnull final Function<ProfileRequestContext,AttributeQuery> strategy) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         queryLookupStrategy = Constraint.isNotNull(strategy, "Request lookup strategy cannot be null");
     }
 
@@ -119,7 +119,7 @@ public class FilterByQueriedAttributes extends AbstractProfileAction {
      */
     public void setAttributeContextLookupStrategy(
             @Nonnull final Function<ProfileRequestContext,AttributeContext> strategy) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         attributeContextLookupStrategy =
                 Constraint.isNotNull(strategy, "AttributeContext lookup strategy cannot be null");
     }
diff --git a/idp-saml-impl/src/main/java/net/shibboleth/idp/saml/saml2/profile/impl/PopulateEncryptionParameters.java b/idp-saml-impl/src/main/java/net/shibboleth/idp/saml/saml2/profile/impl/PopulateEncryptionParameters.java
index 7c9b3b035..7c82bfdaf 100644
--- a/idp-saml-impl/src/main/java/net/shibboleth/idp/saml/saml2/profile/impl/PopulateEncryptionParameters.java
+++ b/idp-saml-impl/src/main/java/net/shibboleth/idp/saml/saml2/profile/impl/PopulateEncryptionParameters.java
@@ -141,7 +141,7 @@ public class PopulateEncryptionParameters extends AbstractProfileAction {
      */
     public void setRelyingPartyContextLookupStrategy(
             @Nonnull final Function<ProfileRequestContext,RelyingPartyContext> strategy) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         relyingPartyContextLookupStrategy =
                 Constraint.isNotNull(strategy, "RelyingPartyContext lookup strategy cannot be null");
     }
@@ -153,7 +153,7 @@ public class PopulateEncryptionParameters extends AbstractProfileAction {
      */
     public void setEncryptionContextLookupStrategy(
             @Nonnull final Function<ProfileRequestContext,EncryptionContext> strategy) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         encryptionContextLookupStrategy = Constraint.isNotNull(strategy,
                 "EncryptionContext lookup strategy cannot be null");
     }
@@ -183,7 +183,7 @@ public class PopulateEncryptionParameters extends AbstractProfileAction {
      */
     public void setConfigurationLookupStrategy(
             @Nonnull final Function<ProfileRequestContext,List<EncryptionConfiguration>> strategy) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         configurationLookupStrategy = Constraint.isNotNull(strategy,
                 "EncryptionConfiguration lookup strategy cannot be null");
     }
@@ -195,7 +195,7 @@ public class PopulateEncryptionParameters extends AbstractProfileAction {
      */
     public void setPeerContextLookupStrategy(
             @Nullable final Function<ProfileRequestContext,SAMLPeerEntityContext> strategy) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         peerContextLookupStrategy = strategy;
     }
     
@@ -206,7 +206,7 @@ public class PopulateEncryptionParameters extends AbstractProfileAction {
      */
     public void setEncryptionParametersResolver(
             @Nonnull final EncryptionParametersResolver newResolver) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         encParamsresolver = Constraint.isNotNull(newResolver, "EncryptionParametersResolver cannot be null");
     }
     
diff --git a/idp-saml-impl/src/main/java/net/shibboleth/idp/saml/saml2/profile/impl/PreProcessLogoutMessage.java b/idp-saml-impl/src/main/java/net/shibboleth/idp/saml/saml2/profile/impl/PreProcessLogoutMessage.java
index f638e8fc2..4af01a505 100644
--- a/idp-saml-impl/src/main/java/net/shibboleth/idp/saml/saml2/profile/impl/PreProcessLogoutMessage.java
+++ b/idp-saml-impl/src/main/java/net/shibboleth/idp/saml/saml2/profile/impl/PreProcessLogoutMessage.java
@@ -100,7 +100,7 @@ public class PreProcessLogoutMessage extends AbstractProfileAction {
      * @param flag what to set
      */
     public void setAssumeAsynchronousLogout(final boolean flag) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         assumeAsync = flag;
     }
     
@@ -111,7 +111,7 @@ public class PreProcessLogoutMessage extends AbstractProfileAction {
      */
     public void setMetadataContextLookupStrategy(
             @Nonnull final Function<ProfileRequestContext,SAMLMetadataContext> strategy) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         metadataContextLookupStrategy =
                 Constraint.isNotNull(strategy, "SAMLMetadataContext lookup strategy cannot be null");
     }
diff --git a/idp-saml-impl/src/main/java/net/shibboleth/idp/saml/saml2/profile/impl/ProcessAssertionsForAuthentication.java b/idp-saml-impl/src/main/java/net/shibboleth/idp/saml/saml2/profile/impl/ProcessAssertionsForAuthentication.java
index c1b851de0..37f8edabf 100644
--- a/idp-saml-impl/src/main/java/net/shibboleth/idp/saml/saml2/profile/impl/ProcessAssertionsForAuthentication.java
+++ b/idp-saml-impl/src/main/java/net/shibboleth/idp/saml/saml2/profile/impl/ProcessAssertionsForAuthentication.java
@@ -118,7 +118,7 @@ public class ProcessAssertionsForAuthentication extends AbstractAuthenticationAc
      * @param strategy the new strategy function
      */
     public void setAuthnAssertionSelectionStrategy(@Nonnull final Function<List<Assertion>, Assertion> strategy) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         authnAssertionSelectionStrategy = strategy;
     }
     
@@ -128,7 +128,7 @@ public class ProcessAssertionsForAuthentication extends AbstractAuthenticationAc
      * @param strategy the new strategy function
      */
     public void setAuthnStatementSelectionStrategy(@Nonnull final Function<Assertion, AuthnStatement> strategy) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         authnStatementSelectionStrategy = strategy;
     }
     
@@ -138,7 +138,7 @@ public class ProcessAssertionsForAuthentication extends AbstractAuthenticationAc
      * @param strategy the new strategy function
      */
     public void setResponseResolver(@Nonnull final Function<ProfileRequestContext, Response> strategy) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         responseResolver = strategy;
     }
     
@@ -149,7 +149,7 @@ public class ProcessAssertionsForAuthentication extends AbstractAuthenticationAc
      */
     public void setSAMLAuthnContextLookupStrategy(
             @Nonnull final Function<ProfileRequestContext,SAMLAuthnContext> strategy) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         samlContextLookupStrategy = strategy;
     }
 
diff --git a/idp-saml-impl/src/main/java/net/shibboleth/idp/saml/saml2/profile/impl/ProcessLogoutRequest.java b/idp-saml-impl/src/main/java/net/shibboleth/idp/saml/saml2/profile/impl/ProcessLogoutRequest.java
index 3f03cf027..569e7517c 100644
--- a/idp-saml-impl/src/main/java/net/shibboleth/idp/saml/saml2/profile/impl/ProcessLogoutRequest.java
+++ b/idp-saml-impl/src/main/java/net/shibboleth/idp/saml/saml2/profile/impl/ProcessLogoutRequest.java
@@ -158,7 +158,7 @@ public class ProcessLogoutRequest extends AbstractProfileAction {
      * @param resolver  session resolver to use
      */
     public void setSessionResolver(@Nonnull final SessionResolver resolver) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         sessionResolver = Constraint.isNotNull(resolver, "SessionResolver cannot be null");
     }
     
@@ -169,7 +169,7 @@ public class ProcessLogoutRequest extends AbstractProfileAction {
      */
     public void setSubjectContextCreationStrategy(
             @Nonnull final Function<ProfileRequestContext,SubjectContext> strategy) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         subjectContextCreationStrategy = Constraint.isNotNull(strategy,
                 "SubjectContext creation strategy cannot be null");
     }
@@ -181,7 +181,7 @@ public class ProcessLogoutRequest extends AbstractProfileAction {
      */
     public void setSessionContextCreationStrategy(
             @Nonnull final Function<ProfileRequestContext,SessionContext> strategy) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         sessionContextCreationStrategy = Constraint.isNotNull(strategy,
                 "SessionContext creation strategy cannot be null");
     }
@@ -193,7 +193,7 @@ public class ProcessLogoutRequest extends AbstractProfileAction {
      */
     public void setLogoutContextCreationStrategy(
             @Nonnull final Function<ProfileRequestContext,LogoutContext> strategy) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         logoutContextCreationStrategy = Constraint.isNotNull(strategy,
                 "LogoutContext creation strategy cannot be null");
     }
@@ -205,7 +205,7 @@ public class ProcessLogoutRequest extends AbstractProfileAction {
      */
     public void setSessionResolverCriteriaStrategy(
             @Nonnull final Function<ProfileRequestContext,CriteriaSet> strategy) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         sessionResolverCriteriaStrategy = Constraint.isNotNull(strategy,
                 "SessionResolver CriteriaSet strategy cannot be null");
     }
@@ -217,7 +217,7 @@ public class ProcessLogoutRequest extends AbstractProfileAction {
      */
     public void setLogoutRequestLookupStrategy(
             @Nonnull final Function<ProfileRequestContext,LogoutRequest> strategy) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         logoutRequestLookupStrategy = Constraint.isNotNull(strategy, "LogoutRequest lookup strategy cannot be null");
     }
     
@@ -230,7 +230,7 @@ public class ProcessLogoutRequest extends AbstractProfileAction {
      */
     public void setQualifiedNameIDFormatsLookupStrategy(
             @Nonnull final Function<ProfileRequestContext,Collection<String>> strategy) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         qualifiedNameIDFormatsLookupStrategy = Constraint.isNotNull(strategy,
                 "Qualified NameID Formats lookup strategy cannot be null");
     }
@@ -244,7 +244,7 @@ public class ProcessLogoutRequest extends AbstractProfileAction {
      */
     public void setAssertingPartyLookupStrategy(
             @Nullable final Function<ProfileRequestContext,String> strategy) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         assertingPartyLookupStrategy = strategy;
     }
     
@@ -257,7 +257,7 @@ public class ProcessLogoutRequest extends AbstractProfileAction {
      */
     public void setRelyingPartyLookupStrategy(
             @Nullable final Function<ProfileRequestContext,String> strategy) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         relyingPartyLookupStrategy = strategy;
     }
     
diff --git a/idp-saml-impl/src/main/java/net/shibboleth/idp/saml/saml2/profile/impl/ProcessRequestedAuthnContext.java b/idp-saml-impl/src/main/java/net/shibboleth/idp/saml/saml2/profile/impl/ProcessRequestedAuthnContext.java
index aae78f150..0795a4d40 100644
--- a/idp-saml-impl/src/main/java/net/shibboleth/idp/saml/saml2/profile/impl/ProcessRequestedAuthnContext.java
+++ b/idp-saml-impl/src/main/java/net/shibboleth/idp/saml/saml2/profile/impl/ProcessRequestedAuthnContext.java
@@ -100,7 +100,7 @@ public class ProcessRequestedAuthnContext extends AbstractAuthenticationAction {
      */
     public void setRelyingPartyContextLookupStrategy(
             @Nonnull final Function<ProfileRequestContext,RelyingPartyContext> strategy) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         relyingPartyContextLookupStrategy =
                 Constraint.isNotNull(strategy, "RelyingPartyContext lookup strategy cannot be null");
     }
@@ -111,7 +111,7 @@ public class ProcessRequestedAuthnContext extends AbstractAuthenticationAction {
      * @param strategy lookup strategy
      */
     public void setAuthnRequestLookupStrategy(@Nonnull final Function<ProfileRequestContext,AuthnRequest> strategy) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         authnRequestLookupStrategy = Constraint.isNotNull(strategy, "AuthnRequest lookup strategy cannot be null");
     }
     
@@ -123,7 +123,7 @@ public class ProcessRequestedAuthnContext extends AbstractAuthenticationAction {
      * @param contexts  contexts to ignore
      */
     public void setIgnoredContexts(@Nonnull @NonnullElements final Collection<String> contexts) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         final Collection<String> trimmed = StringSupport.normalizeStringCollection(contexts);
         
         if (trimmed.isEmpty()) {
@@ -137,7 +137,7 @@ public class ProcessRequestedAuthnContext extends AbstractAuthenticationAction {
     @Override
     protected boolean doPreExecute(@Nonnull final ProfileRequestContext profileRequestContext,
             @Nonnull final AuthenticationContext authenticationContext) {
-        throwComponentStateExceptions();
+        checkComponentActive();
         if (!super.doPreExecute(profileRequestContext, authenticationContext)) {
             return false;
         }
diff --git a/idp-saml-impl/src/main/java/net/shibboleth/idp/saml/saml2/profile/impl/SAMLAuthnController.java b/idp-saml-impl/src/main/java/net/shibboleth/idp/saml/saml2/profile/impl/SAMLAuthnController.java
index 7b107c6b0..7c09a11d1 100644
--- a/idp-saml-impl/src/main/java/net/shibboleth/idp/saml/saml2/profile/impl/SAMLAuthnController.java
+++ b/idp-saml-impl/src/main/java/net/shibboleth/idp/saml/saml2/profile/impl/SAMLAuthnController.java
@@ -103,7 +103,7 @@ public class SAMLAuthnController extends AbstractInitializableComponent {
      */
     public void setProfileRequestContextLookupStrategy(
             @Nonnull final Function<ProfileRequestContext,ProfileRequestContext> strategy) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         profileRequestContextLookupStrategy = Constraint.isNotNull(strategy,
                 "ProfileRequestContext lookup strategy cannot be null");
     }
@@ -115,7 +115,7 @@ public class SAMLAuthnController extends AbstractInitializableComponent {
      */
     public void setSAMLAuthnContextLookupStrategy(
             @Nonnull final Function<ProfileRequestContext,SAMLAuthnContext> strategy) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         samlContextLookupStrategy = Constraint.isNotNull(strategy, "SAMLAuthnContext lookup strategy cannot be null");
     }
     
@@ -125,7 +125,7 @@ public class SAMLAuthnController extends AbstractInitializableComponent {
      * @param bindings the bindings to set
      */
     public void setInboundBindings(@Nullable @NonnullElements final Collection<BindingDescriptor> bindings) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         if (bindings != null) {
             bindingMap = new HashMap<>(bindings.size());
             bindings.forEach(b -> bindingMap.put(b.getShortName(), b));
diff --git a/idp-saml-impl/src/main/java/net/shibboleth/idp/saml/saml2/profile/impl/SOAPLogoutRequest.java b/idp-saml-impl/src/main/java/net/shibboleth/idp/saml/saml2/profile/impl/SOAPLogoutRequest.java
index 27ae9a20d..42fddfc90 100644
--- a/idp-saml-impl/src/main/java/net/shibboleth/idp/saml/saml2/profile/impl/SOAPLogoutRequest.java
+++ b/idp-saml-impl/src/main/java/net/shibboleth/idp/saml/saml2/profile/impl/SOAPLogoutRequest.java
@@ -142,7 +142,7 @@ public class SOAPLogoutRequest extends AbstractProfileAction {
      */
     public void setLogoutRequestLookupStrategy(
             @Nonnull final Function<ProfileRequestContext,LogoutRequest> strategy) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         logoutRequestLookupStrategy = Constraint.isNotNull(strategy, "LogoutRequest lookup strategy cannot be null");
     }
 
@@ -153,7 +153,7 @@ public class SOAPLogoutRequest extends AbstractProfileAction {
      */
     public void setPropagationContextLookupStrategy(
             @Nonnull final Function<ProfileRequestContext,LogoutPropagationContext> strategy) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         propagationContextLookupStrategy =
                 Constraint.isNotNull(strategy, "LogoutPropagationContext lookup strategy cannot be null");
     }
@@ -165,7 +165,7 @@ public class SOAPLogoutRequest extends AbstractProfileAction {
      */
     public void setMetadataContextLookupStrategy(
             @Nonnull final Function<ProfileRequestContext,SAMLMetadataContext> strategy) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         metadataContextLookupStrategy = Constraint.isNotNull(strategy,
                 "SAMLMetadataContext lookup strategy cannot be null");
     }
@@ -177,7 +177,7 @@ public class SOAPLogoutRequest extends AbstractProfileAction {
      */
     public void setEndpointContextLookupStrategy(
             @Nonnull final Function<ProfileRequestContext,SAMLEndpointContext> strategy) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         endpointContextLookupStrategy = Constraint.isNotNull(strategy,
                 "SAMLEndpointContext lookup strategy cannot be null");
     }
@@ -188,7 +188,7 @@ public class SOAPLogoutRequest extends AbstractProfileAction {
      * @param client the SOAP client
      */
     public void setSOAPClient(@Nonnull final SOAPClient client) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         soapClient = Constraint.isNotNull(client, "SOAPClient cannot be null");
     }
     
@@ -199,7 +199,7 @@ public class SOAPLogoutRequest extends AbstractProfileAction {
      * @param name the pipeline name, or null
      */
     public void setSOAPPipelineName(@Nullable @NotEmpty final String name) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         soapPipelineName = StringSupport.trimOrNull(name);
     }
     
diff --git a/idp-saml-impl/src/main/java/net/shibboleth/idp/saml/saml2/profile/impl/ValidateSAMLAuthentication.java b/idp-saml-impl/src/main/java/net/shibboleth/idp/saml/saml2/profile/impl/ValidateSAMLAuthentication.java
index fd1ebed7c..ec77ca000 100644
--- a/idp-saml-impl/src/main/java/net/shibboleth/idp/saml/saml2/profile/impl/ValidateSAMLAuthentication.java
+++ b/idp-saml-impl/src/main/java/net/shibboleth/idp/saml/saml2/profile/impl/ValidateSAMLAuthentication.java
@@ -148,7 +148,7 @@ public class ValidateSAMLAuthentication extends AbstractValidationAction {
      * @param registry registry service interface
      */
     public void setTranscoderRegistry(@Nullable final ReloadableService<AttributeTranscoderRegistry> registry) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         transcoderRegistry = registry;
     }
     
@@ -158,7 +158,7 @@ public class ValidateSAMLAuthentication extends AbstractValidationAction {
      * @param filterService optional filter service for inbound attributes
      */
     public void setAttributeFilter(@Nullable final ReloadableService<AttributeFilter> filterService) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         attributeFilterService = filterService;
     }
     
@@ -168,7 +168,7 @@ public class ValidateSAMLAuthentication extends AbstractValidationAction {
      * @param resolver metadata resolver
      */
     public void setMetadataResolver(@Nullable final MetadataResolver resolver) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         metadataResolver = resolver;
     }
     
@@ -179,7 +179,7 @@ public class ValidateSAMLAuthentication extends AbstractValidationAction {
      */
     public void setRelyingPartyContextLookupStrategy(
             @Nonnull final Function<ProfileRequestContext,RelyingPartyContext> strategy) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         relyingPartyContextLookupStrategy =
                 Constraint.isNotNull(strategy, "RelyingPartyContext lookup strategy cannot be null");
     }
@@ -193,7 +193,7 @@ public class ValidateSAMLAuthentication extends AbstractValidationAction {
      */
     public void setAttributeExtractionStrategy(
             @Nullable final Function<ProfileRequestContext,Collection<IdPAttribute>> strategy) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         attributeExtractionStrategy = strategy;
     }
     
@@ -205,7 +205,7 @@ public class ValidateSAMLAuthentication extends AbstractValidationAction {
      * @since 4.2.0
      */
     public void setLoggedAttributeId(@Nullable @NotEmpty final String id) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         loggedAttributeId = StringSupport.trimOrNull(id);
     }
 
diff --git a/idp-saml-impl/src/main/java/net/shibboleth/idp/saml/session/impl/AddLogoutRequest.java b/idp-saml-impl/src/main/java/net/shibboleth/idp/saml/session/impl/AddLogoutRequest.java
index 56daaa3aa..3742b80d6 100644
--- a/idp-saml-impl/src/main/java/net/shibboleth/idp/saml/session/impl/AddLogoutRequest.java
+++ b/idp-saml-impl/src/main/java/net/shibboleth/idp/saml/session/impl/AddLogoutRequest.java
@@ -111,7 +111,7 @@ public class AddLogoutRequest extends AbstractProfileAction {
      * @param flag flag to set
      */
     public void setOverwriteExisting(final boolean flag) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         overwriteExisting = flag;
     }
 
@@ -121,7 +121,7 @@ public class AddLogoutRequest extends AbstractProfileAction {
      * @param flag flag to set
      */
     public void setIncludeSessionIndex(final boolean flag) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         includeSessionIndex = flag;
     }
 
@@ -132,7 +132,7 @@ public class AddLogoutRequest extends AbstractProfileAction {
      */
     public void setIdentifierGeneratorLookupStrategy(
             @Nonnull final Function<ProfileRequestContext,IdentifierGenerationStrategy> strategy) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         idGeneratorLookupStrategy =
                 Constraint.isNotNull(strategy, "IdentifierGenerationStrategy lookup strategy cannot be null");
     }
@@ -143,7 +143,7 @@ public class AddLogoutRequest extends AbstractProfileAction {
      * @param strategy lookup strategy
      */
     public void setIssuerLookupStrategy(@Nullable final Function<ProfileRequestContext,String> strategy) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         issuerLookupStrategy = strategy;
     }
 
@@ -154,7 +154,7 @@ public class AddLogoutRequest extends AbstractProfileAction {
      */
     public void setLogoutPropagationContextLookupStrategy(
             @Nonnull final Function<ProfileRequestContext,LogoutPropagationContext> strategy) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         logoutPropContextLookupStrategy =
                 Constraint.isNotNull(strategy, "LogoutPropagationContext lookup strategy cannot be null");
     }
diff --git a/idp-saml-impl/src/main/java/net/shibboleth/idp/saml/session/impl/PrepareInboundMessageContext.java b/idp-saml-impl/src/main/java/net/shibboleth/idp/saml/session/impl/PrepareInboundMessageContext.java
index 2669b02cf..fdf70dd1a 100644
--- a/idp-saml-impl/src/main/java/net/shibboleth/idp/saml/session/impl/PrepareInboundMessageContext.java
+++ b/idp-saml-impl/src/main/java/net/shibboleth/idp/saml/session/impl/PrepareInboundMessageContext.java
@@ -77,7 +77,7 @@ public class PrepareInboundMessageContext extends AbstractProfileAction {
      */
     public void setLogoutPropagationContextLookupStrategy(
             @Nonnull final Function<ProfileRequestContext,LogoutPropagationContext> strategy) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         logoutPropContextLookupStrategy =
                 Constraint.isNotNull(strategy, "LogoutPropagationContext lookup strategy cannot be null");
     }
@@ -91,7 +91,7 @@ public class PrepareInboundMessageContext extends AbstractProfileAction {
      * @since 4.0.0
      */
     public void setRelyingPartyLookupStrategy(@Nullable final Function<ProfileRequestContext,String> strategy) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         relyingPartyLookupStrategy = strategy;
     }
 
diff --git a/idp-saml-impl/src/main/java/net/shibboleth/idp/saml/session/impl/SAML2SPSessionSerializer.java b/idp-saml-impl/src/main/java/net/shibboleth/idp/saml/session/impl/SAML2SPSessionSerializer.java
index b096fc13a..7df417df1 100644
--- a/idp-saml-impl/src/main/java/net/shibboleth/idp/saml/session/impl/SAML2SPSessionSerializer.java
+++ b/idp-saml-impl/src/main/java/net/shibboleth/idp/saml/session/impl/SAML2SPSessionSerializer.java
@@ -90,7 +90,7 @@ public class SAML2SPSessionSerializer extends AbstractSPSessionSerializer {
      * @param pool  parser source
      */
     public void setParserPool(@Nonnull final ParserPool pool) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         parserPool = Constraint.isNotNull(pool, "ParserPool cannot be null");
     }
    
diff --git a/idp-saml-impl/src/test/java/net/shibboleth/idp/saml/impl/testing/TestSources.java b/idp-saml-impl/src/test/java/net/shibboleth/idp/saml/impl/testing/TestSources.java
index dad0d2c13..607dbe6fc 100644
--- a/idp-saml-impl/src/test/java/net/shibboleth/idp/saml/impl/testing/TestSources.java
+++ b/idp-saml-impl/src/test/java/net/shibboleth/idp/saml/impl/testing/TestSources.java
@@ -255,7 +255,7 @@ public final class TestSources {
          * @param newAttribute what to set.
          */
         public void setValue(@Nullable final IdPAttribute newAttribute) {
-            throwSetterPreconditionExceptions();
+            checkSetterPreconditions();
             value = newAttribute;
         }
 
diff --git a/idp-session-api/src/main/java/net/shibboleth/idp/session/SPSessionSerializerRegistry.java b/idp-session-api/src/main/java/net/shibboleth/idp/session/SPSessionSerializerRegistry.java
index f03932ad0..4c978ca52 100644
--- a/idp-session-api/src/main/java/net/shibboleth/idp/session/SPSessionSerializerRegistry.java
+++ b/idp-session-api/src/main/java/net/shibboleth/idp/session/SPSessionSerializerRegistry.java
@@ -74,7 +74,7 @@ public final class SPSessionSerializerRegistry extends AbstractInitializableComp
      */
     public void setMappings(@Nonnull @NonnullElements final
             Map<Class<? extends SPSession>,StorageSerializer<? extends SPSession>> map) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         Constraint.isNotNull(map, "Map cannot be null");
         
         for (final Map.Entry<Class<? extends SPSession>,StorageSerializer<? extends SPSession>> entry
@@ -93,7 +93,7 @@ public final class SPSessionSerializerRegistry extends AbstractInitializableComp
      * @return a corresponding StorageSerializer, or null
      */
     @Nullable public <T extends SPSession> StorageSerializer<T> lookup(@Nonnull final Class<T> type) {
-        throwComponentStateExceptions();
+        checkComponentActive();
         Constraint.isNotNull(type, "SPSession type cannot be null");
         
         final StorageSerializer<T> serializer = (StorageSerializer<T>) registry.get(type);
diff --git a/idp-session-impl/src/main/java/net/shibboleth/idp/session/impl/DestroySessions.java b/idp-session-impl/src/main/java/net/shibboleth/idp/session/impl/DestroySessions.java
index 66d55c4c2..1b28e1217 100644
--- a/idp-session-impl/src/main/java/net/shibboleth/idp/session/impl/DestroySessions.java
+++ b/idp-session-impl/src/main/java/net/shibboleth/idp/session/impl/DestroySessions.java
@@ -87,7 +87,7 @@ public class DestroySessions extends AbstractProfileAction {
      * @param manager  session manager to use
      */
     public void setSessionManager(@Nonnull final SessionManager manager) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         sessionManager = Constraint.isNotNull(manager, "SessionManager cannot be null");
     }
     
@@ -98,7 +98,7 @@ public class DestroySessions extends AbstractProfileAction {
      */
     public void setSessionContextLookupStrategy(
             @Nonnull final Function<ProfileRequestContext,SessionContext> strategy) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         sessionContextLookupStrategy = Constraint.isNotNull(strategy,
                 "SessionContext lookup strategy cannot be null");
     }
@@ -110,7 +110,7 @@ public class DestroySessions extends AbstractProfileAction {
      */
     public void setLogoutContextLookupStrategy(
             @Nonnull final Function<ProfileRequestContext,LogoutContext> strategy) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         logoutContextLookupStrategy = Constraint.isNotNull(strategy,
                 "LogoutContext lookup strategy cannot be null");
     }
diff --git a/idp-session-impl/src/main/java/net/shibboleth/idp/session/impl/DetectIdentitySwitch.java b/idp-session-impl/src/main/java/net/shibboleth/idp/session/impl/DetectIdentitySwitch.java
index 47aef89b4..ab10967ad 100644
--- a/idp-session-impl/src/main/java/net/shibboleth/idp/session/impl/DetectIdentitySwitch.java
+++ b/idp-session-impl/src/main/java/net/shibboleth/idp/session/impl/DetectIdentitySwitch.java
@@ -92,7 +92,7 @@ public class DetectIdentitySwitch extends AbstractAuthenticationAction {
      * @param manager  session manager to use
      */
     public void setSessionManager(@Nonnull final SessionManager manager) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         sessionManager = Constraint.isNotNull(manager, "SessionManager cannot be null");
     }
     
@@ -103,7 +103,7 @@ public class DetectIdentitySwitch extends AbstractAuthenticationAction {
      */
     public void setSessionContextLookupStrategy(
             @Nonnull final Function<ProfileRequestContext,SessionContext> strategy) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         sessionContextLookupStrategy = Constraint.isNotNull(strategy,
                 "SessionContext lookup strategy cannot be null");
     }
@@ -115,7 +115,7 @@ public class DetectIdentitySwitch extends AbstractAuthenticationAction {
      */
     public void setSubjectCanonicalizationContextLookupStrategy(
             @Nonnull final Function<ProfileRequestContext,SubjectCanonicalizationContext> strategy) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         c14nContextLookupStrategy = Constraint.isNotNull(strategy,
                 "SubjectCanonicalizationContext lookup strategy cannot be null");
     }
diff --git a/idp-session-impl/src/main/java/net/shibboleth/idp/session/impl/ExtractActiveAuthenticationResults.java b/idp-session-impl/src/main/java/net/shibboleth/idp/session/impl/ExtractActiveAuthenticationResults.java
index 8436a836a..65e820930 100644
--- a/idp-session-impl/src/main/java/net/shibboleth/idp/session/impl/ExtractActiveAuthenticationResults.java
+++ b/idp-session-impl/src/main/java/net/shibboleth/idp/session/impl/ExtractActiveAuthenticationResults.java
@@ -79,7 +79,7 @@ public class ExtractActiveAuthenticationResults extends AbstractAuthenticationAc
      */
     public void setSessionContextLookupStrategy(
             @Nonnull final Function<ProfileRequestContext,SessionContext> strategy) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         sessionContextLookupStrategy = Constraint.isNotNull(strategy,
                 "SessionContext lookup strategy cannot be null");
     }
diff --git a/idp-session-impl/src/main/java/net/shibboleth/idp/session/impl/PopulateLogoutPropagationContext.java b/idp-session-impl/src/main/java/net/shibboleth/idp/session/impl/PopulateLogoutPropagationContext.java
index cc5ec6af7..c0f315743 100644
--- a/idp-session-impl/src/main/java/net/shibboleth/idp/session/impl/PopulateLogoutPropagationContext.java
+++ b/idp-session-impl/src/main/java/net/shibboleth/idp/session/impl/PopulateLogoutPropagationContext.java
@@ -105,7 +105,7 @@ public class PopulateLogoutPropagationContext extends AbstractProfileAction {
      * @param sealer the {@link DataSealer} to use
      */
     public void setDataSealer(@Nullable final DataSealer sealer) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         dataSealer = sealer;
     }
     
@@ -115,7 +115,7 @@ public class PopulateLogoutPropagationContext extends AbstractProfileAction {
      * @param registry a registry of SPSession class to serializer mappings
      */
     public void setSPSessionSerializerRegistry(@Nullable final SPSessionSerializerRegistry registry) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         spSessionSerializerRegistry = registry;
     }
     
@@ -126,7 +126,7 @@ public class PopulateLogoutPropagationContext extends AbstractProfileAction {
      */
     public void setLogoutPropagationContextCreationStrategy(
             @Nonnull final Function<ProfileRequestContext, LogoutPropagationContext> strategy) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         contextCreationStrategy = Constraint.isNotNull(strategy,
                 "LogoutPropagationContext creation strategy cannot be null");
     }
@@ -137,7 +137,7 @@ public class PopulateLogoutPropagationContext extends AbstractProfileAction {
      * @param strategy lookup strategy
      */
     public void setSessionLookupStrategy(@Nullable final Function<ProfileRequestContext,SPSession> strategy) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         sessionLookupStrategy = strategy;
     }
     
diff --git a/idp-session-impl/src/main/java/net/shibboleth/idp/session/impl/PopulateMultiRPContextFromLogoutContext.java b/idp-session-impl/src/main/java/net/shibboleth/idp/session/impl/PopulateMultiRPContextFromLogoutContext.java
index 7be644b6f..c496f7da1 100644
--- a/idp-session-impl/src/main/java/net/shibboleth/idp/session/impl/PopulateMultiRPContextFromLogoutContext.java
+++ b/idp-session-impl/src/main/java/net/shibboleth/idp/session/impl/PopulateMultiRPContextFromLogoutContext.java
@@ -91,7 +91,7 @@ public class PopulateMultiRPContextFromLogoutContext extends AbstractProfileActi
      * @param resolver  the resolver to use
      */
     public void setRoleDescriptorResolver(@Nonnull final RoleDescriptorResolver resolver) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         metadataResolver = Constraint.isNotNull(resolver, "RoleDescriptorResolver cannot be null");
     }
 
@@ -101,7 +101,7 @@ public class PopulateMultiRPContextFromLogoutContext extends AbstractProfileActi
      * @param strategy  lookup strategy
      */
     public void setLogoutContextLookupStrategy(@Nonnull final Function<ProfileRequestContext,LogoutContext> strategy) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         logoutContextLookupStrategy = Constraint.isNotNull(strategy, "LogoutContext lookup strategy cannot be null");
     }
     
@@ -146,7 +146,7 @@ public class PopulateMultiRPContextFromLogoutContext extends AbstractProfileActi
     /** {@inheritDoc} */
     @Override
     protected void doExecute(@Nonnull final ProfileRequestContext profileRequestContext) {
-        throwComponentStateExceptions();
+        checkComponentActive();
         
         final MultiRelyingPartyContext multiCtx = new MultiRelyingPartyContext();
         profileRequestContext.addSubcontext(multiCtx, true);
diff --git a/idp-session-impl/src/main/java/net/shibboleth/idp/session/impl/PopulateSessionContext.java b/idp-session-impl/src/main/java/net/shibboleth/idp/session/impl/PopulateSessionContext.java
index 3bc112211..c93ee974c 100644
--- a/idp-session-impl/src/main/java/net/shibboleth/idp/session/impl/PopulateSessionContext.java
+++ b/idp-session-impl/src/main/java/net/shibboleth/idp/session/impl/PopulateSessionContext.java
@@ -82,7 +82,7 @@ public class PopulateSessionContext extends AbstractProfileAction {
      * @param resolver  session resolver to use
      */
     public void setSessionResolver(@Nonnull final SessionResolver resolver) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         sessionResolver = Constraint.isNotNull(resolver, "SessionResolver cannot be null");
     }
     
@@ -93,7 +93,7 @@ public class PopulateSessionContext extends AbstractProfileAction {
      */
     public void setSessionContextCreationStrategy(
             @Nonnull final Function<ProfileRequestContext,SessionContext> strategy) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         sessionContextCreationStrategy = Constraint.isNotNull(strategy,
                 "SessionContext creation strategy cannot be null");
     }
@@ -106,7 +106,7 @@ public class PopulateSessionContext extends AbstractProfileAction {
      * @since 4.2.0
      */
     public void setAddressLookupStrategy(@Nullable final Function<ProfileRequestContext,String> strategy) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         addressLookupStrategy = strategy;
     }
     
diff --git a/idp-session-impl/src/main/java/net/shibboleth/idp/session/impl/ProcessLogout.java b/idp-session-impl/src/main/java/net/shibboleth/idp/session/impl/ProcessLogout.java
index 5ed66fad5..0aa87b5bf 100644
--- a/idp-session-impl/src/main/java/net/shibboleth/idp/session/impl/ProcessLogout.java
+++ b/idp-session-impl/src/main/java/net/shibboleth/idp/session/impl/ProcessLogout.java
@@ -100,7 +100,7 @@ public class ProcessLogout extends AbstractProfileAction {
      * @param resolver  session resolver to use
      */
     public void setSessionResolver(@Nonnull final SessionResolver resolver) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         sessionResolver = Constraint.isNotNull(resolver, "SessionResolver cannot be null");
     }
     
@@ -111,7 +111,7 @@ public class ProcessLogout extends AbstractProfileAction {
      */
     public void setSubjectContextCreationStrategy(
             @Nonnull final Function<ProfileRequestContext,SubjectContext> strategy) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         subjectContextCreationStrategy = Constraint.isNotNull(strategy,
                 "SubjectContext creation strategy cannot be null");
     }
@@ -123,7 +123,7 @@ public class ProcessLogout extends AbstractProfileAction {
      */
     public void setSessionContextCreationStrategy(
             @Nonnull final Function<ProfileRequestContext,SessionContext> strategy) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         sessionContextCreationStrategy = Constraint.isNotNull(strategy,
                 "SessionContext creation strategy cannot be null");
     }
@@ -135,7 +135,7 @@ public class ProcessLogout extends AbstractProfileAction {
      */
     public void setLogoutContextCreationStrategy(
             @Nonnull final Function<ProfileRequestContext,LogoutContext> strategy) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         logoutContextCreationStrategy = Constraint.isNotNull(strategy,
                 "LogoutContext creation strategy cannot be null");
     }
@@ -159,7 +159,7 @@ public class ProcessLogout extends AbstractProfileAction {
      * @since 4.2.0
      */
     public void setAddressLookupStrategy(@Nullable final Function<ProfileRequestContext,String> strategy) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         addressLookupStrategy = strategy;
     }
     
diff --git a/idp-session-impl/src/main/java/net/shibboleth/idp/session/impl/StorageBackedSessionManager.java b/idp-session-impl/src/main/java/net/shibboleth/idp/session/impl/StorageBackedSessionManager.java
index 84df1a23c..476f1e48f 100644
--- a/idp-session-impl/src/main/java/net/shibboleth/idp/session/impl/StorageBackedSessionManager.java
+++ b/idp-session-impl/src/main/java/net/shibboleth/idp/session/impl/StorageBackedSessionManager.java
@@ -188,7 +188,7 @@ public class StorageBackedSessionManager extends AbstractIdentifiableInitializab
      * @param request servlet request
      */
     public void setHttpServletRequest(@Nullable final HttpServletRequest request) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         httpRequest = request;
     }
 
@@ -198,7 +198,7 @@ public class StorageBackedSessionManager extends AbstractIdentifiableInitializab
      * @param response servlet response
      */
     public void setHttpServletResponse(@Nullable final HttpServletResponse response) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         httpResponse = response;
     }
 
@@ -217,7 +217,7 @@ public class StorageBackedSessionManager extends AbstractIdentifiableInitializab
      * @param timeout the policy to set
      */
     public void setSessionTimeout(@Nonnull final Duration timeout) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         sessionTimeout = Constraint.isNotNull(timeout, "Timeout cannot be null");
     }
 
@@ -236,7 +236,7 @@ public class StorageBackedSessionManager extends AbstractIdentifiableInitializab
      * @param slop amount of time to defer expiration of records
      */
     public void setSessionSlop(@Nonnull final Duration slop) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         sessionSlop = Constraint.isNotNull(slop, "Slop cannot be null");
     }
 
@@ -255,7 +255,7 @@ public class StorageBackedSessionManager extends AbstractIdentifiableInitializab
      * @param flag flag to set
      */
     public void setMaskStorageFailure(final boolean flag) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         maskStorageFailure = flag;
     }
 
@@ -278,7 +278,7 @@ public class StorageBackedSessionManager extends AbstractIdentifiableInitializab
      * @param flag flag to set
      */
     public void setTrackSPSessions(final boolean flag) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         trackSPSessions = flag;
     }
 
@@ -301,7 +301,7 @@ public class StorageBackedSessionManager extends AbstractIdentifiableInitializab
      * @param flag flag to set
      */
     public void setSecondaryServiceIndex(final boolean flag) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         secondaryServiceIndex = flag;
     }
 
@@ -323,7 +323,7 @@ public class StorageBackedSessionManager extends AbstractIdentifiableInitializab
      * @param flag flag to set
      */
     public void setConsistentAddress(final boolean flag) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         consistentAddressCondition =
                 DefaultConsistentAddressConditionFactory.getDefaultConsistentAddressCondition(flag);
     }
@@ -336,7 +336,7 @@ public class StorageBackedSessionManager extends AbstractIdentifiableInitializab
      * @since 4.0.0
      */
     public void setConsistentAddressCondition(@Nonnull final BiPredicate<String,String> condition) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         consistentAddressCondition = Constraint.isNotNull(condition, "Consistent address condition cannot be null");
     }
 
@@ -346,7 +346,7 @@ public class StorageBackedSessionManager extends AbstractIdentifiableInitializab
      * @param name cookie name to use
      */
     public void setCookieName(@Nonnull @NotEmpty final String name) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         cookieName = Constraint.isNotNull(StringSupport.trimOrNull(name), "Cookie name cannot be null or empty");
     }
 
@@ -356,7 +356,7 @@ public class StorageBackedSessionManager extends AbstractIdentifiableInitializab
      * @param manager the CookieManager to use.
      */
     public void setCookieManager(@Nonnull final CookieManager manager) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         cookieManager = Constraint.isNotNull(manager, "CookieManager cannot be null");
     }
     
@@ -375,7 +375,7 @@ public class StorageBackedSessionManager extends AbstractIdentifiableInitializab
      * @param storage the back-end to use
      */
     public void setStorageService(@Nonnull final StorageService storage) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         storageService = Constraint.isNotNull(storage, "StorageService cannot be null");
     }
     
@@ -387,7 +387,7 @@ public class StorageBackedSessionManager extends AbstractIdentifiableInitializab
      * @return true iff the threshold is met
      */
     public boolean storageServiceMeetsThreshold() {
-        throwComponentStateExceptions();
+        checkComponentActive();
         return storageService.getCapabilities().getValueSize() >= storageServiceThreshold;
     }
     
@@ -404,7 +404,7 @@ public class StorageBackedSessionManager extends AbstractIdentifiableInitializab
      * @param size  size in characters
      */
     public void setStorageServiceThreshold(final long size) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         storageServiceThreshold = size;
     }
     
@@ -414,7 +414,7 @@ public class StorageBackedSessionManager extends AbstractIdentifiableInitializab
      * @param newIDGenerator the new IdentifierGenerator to use
      */
     public void setIDGenerator(@Nonnull final IdentifierGenerationStrategy newIDGenerator) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         idGenerator = Constraint.isNotNull(newIDGenerator, "IdentifierGenerationStrategy cannot be null");
     }
 
@@ -446,7 +446,7 @@ public class StorageBackedSessionManager extends AbstractIdentifiableInitializab
      */
     public void setAuthenticationFlowDescriptors(
             @Nonnull @NonnullElements final Iterable<AuthenticationFlowDescriptor> flows) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         flowDescriptorMap.clear();
         for (final AuthenticationFlowDescriptor desc : Constraint.isNotNull(flows, "Flow collection cannot be null")) {
             if (desc != null) { 
@@ -470,7 +470,7 @@ public class StorageBackedSessionManager extends AbstractIdentifiableInitializab
      * @param registry a registry of SPSession class to serializer mappings
      */
     public void setSPSessionSerializerRegistry(@Nullable final SPSessionSerializerRegistry registry) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         spSessionSerializerRegistry = registry;
     }
 
@@ -498,7 +498,7 @@ public class StorageBackedSessionManager extends AbstractIdentifiableInitializab
     /** {@inheritDoc} */
     @Override @Nonnull public IdPSession createSession(@Nonnull @NotEmpty final String principalName)
             throws SessionException {
-        throwComponentStateExceptions();
+        checkComponentActive();
 
         if (httpRequest == null) {
             throw new SessionException("No HttpServletRequest available, can't bind to client address");
@@ -538,7 +538,7 @@ public class StorageBackedSessionManager extends AbstractIdentifiableInitializab
     /** {@inheritDoc} */
     @Override public void destroySession(@Nonnull @NotEmpty final String sessionId, final boolean unbind)
             throws SessionException {
-        throwComponentStateExceptions();
+        checkComponentActive();
 
         // Note that this can leave entries in the secondary SPSession records, but those
         // will eventually expire outright, or can be cleaned up if the index is searched.
@@ -560,7 +560,7 @@ public class StorageBackedSessionManager extends AbstractIdentifiableInitializab
     // Checkstyle: CyclomaticComplexity OFF
     @Override @Nonnull @NonnullElements public Iterable<IdPSession> resolve(@Nullable final CriteriaSet criteria)
             throws ResolverException {
-        throwComponentStateExceptions();
+        checkComponentActive();
 
         // We support either session ID lookup, or secondary lookup by service ID and key, if
         // a secondary index is being maintained.
diff --git a/idp-session-impl/src/main/java/net/shibboleth/idp/session/impl/UpdateSessionWithAuthenticationResult.java b/idp-session-impl/src/main/java/net/shibboleth/idp/session/impl/UpdateSessionWithAuthenticationResult.java
index 5624b85a1..337eac883 100644
--- a/idp-session-impl/src/main/java/net/shibboleth/idp/session/impl/UpdateSessionWithAuthenticationResult.java
+++ b/idp-session-impl/src/main/java/net/shibboleth/idp/session/impl/UpdateSessionWithAuthenticationResult.java
@@ -96,7 +96,7 @@ public class UpdateSessionWithAuthenticationResult extends AbstractAuthenticatio
      * @param manager  session manager to use
      */
     public void setSessionManager(@Nonnull final SessionManager manager) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         sessionManager = Constraint.isNotNull(manager, "SessionManager cannot be null");
     }
     
@@ -107,7 +107,7 @@ public class UpdateSessionWithAuthenticationResult extends AbstractAuthenticatio
      */
     public void setSessionContextCreationStrategy(
             @Nonnull final Function<ProfileRequestContext,SessionContext> strategy) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         sessionContextCreationStrategy = Constraint.isNotNull(strategy,
                 "SessionContext lookup/creation strategy cannot be null");
     }
@@ -119,7 +119,7 @@ public class UpdateSessionWithAuthenticationResult extends AbstractAuthenticatio
      */
     public void setSubjectContextLookupStrategy(
             @Nonnull final Function<ProfileRequestContext,SubjectContext> strategy) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         subjectContextLookupStrategy = Constraint.isNotNull(strategy, "SubjectContext lookup strategy cannot be null");
     }
     
diff --git a/idp-session-impl/src/main/java/net/shibboleth/idp/session/impl/UpdateSessionWithSPSession.java b/idp-session-impl/src/main/java/net/shibboleth/idp/session/impl/UpdateSessionWithSPSession.java
index 96c1a7c02..5d3510045 100644
--- a/idp-session-impl/src/main/java/net/shibboleth/idp/session/impl/UpdateSessionWithSPSession.java
+++ b/idp-session-impl/src/main/java/net/shibboleth/idp/session/impl/UpdateSessionWithSPSession.java
@@ -95,7 +95,7 @@ public class UpdateSessionWithSPSession extends AbstractProfileAction {
      * @param manager  session manager to use
      */
     public void setSessionManager(@Nonnull final SessionManager manager) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         sessionManager = Constraint.isNotNull(manager, "SessionManager cannot be null");
     }
     
@@ -106,7 +106,7 @@ public class UpdateSessionWithSPSession extends AbstractProfileAction {
      */
     public void setSessionContextLookupStrategy(
             @Nonnull final Function<ProfileRequestContext,SessionContext> strategy) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         sessionContextLookupStrategy = Constraint.isNotNull(strategy,
                 "SessionContext lookup strategy cannot be null");
     }
diff --git a/idp-ui/src/main/java/net/shibboleth/idp/ui/csrf/impl/CSRFTokenFlowExecutionListener.java b/idp-ui/src/main/java/net/shibboleth/idp/ui/csrf/impl/CSRFTokenFlowExecutionListener.java
index b9b504075..73666a293 100644
--- a/idp-ui/src/main/java/net/shibboleth/idp/ui/csrf/impl/CSRFTokenFlowExecutionListener.java
+++ b/idp-ui/src/main/java/net/shibboleth/idp/ui/csrf/impl/CSRFTokenFlowExecutionListener.java
@@ -79,7 +79,7 @@ public class CSRFTokenFlowExecutionListener extends AbstractInitializableCompone
      * @param enable enabled/disable CSRF protection (default is {@literal false}).
      */
     public void setEnabled(@Nonnull final boolean enable) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         enabled = enable;
     }
     
@@ -89,7 +89,7 @@ public class CSRFTokenFlowExecutionListener extends AbstractInitializableCompone
      * @param condition the condition to apply.
      */
     public void setViewRequiresCSRFTokenPredicate(@Nonnull final Predicate<RequestContext> condition) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         viewRequiresCSRFTokenPredicate = Constraint.isNotNull(condition, 
                         "Does view require CSRF token predicate can not be null");
     }
@@ -101,7 +101,7 @@ public class CSRFTokenFlowExecutionListener extends AbstractInitializableCompone
      */
     public void setEventRequiresCSRFTokenValidationPredicate(
             @Nonnull final BiPredicate<RequestContext,Event> condition) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         eventRequiresCSRFTokenValidationPredicate = Constraint.isNotNull(condition, 
                 "Validate CSRF token condition cannot be null");
     }
@@ -113,7 +113,7 @@ public class CSRFTokenFlowExecutionListener extends AbstractInitializableCompone
      * @param tokenManager the CSRF token manager.
      */
     public void setCsrfTokenManager(@Nonnull final CSRFTokenManager tokenManager) {    
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         csrfTokenManager = Constraint.isNotNull(tokenManager, "CSRF Token manager can not be null");
     }
 
diff --git a/idp-ui/src/main/java/net/shibboleth/idp/ui/impl/SetRPUIInformation.java b/idp-ui/src/main/java/net/shibboleth/idp/ui/impl/SetRPUIInformation.java
index 37a65b46b..5b5834a58 100644
--- a/idp-ui/src/main/java/net/shibboleth/idp/ui/impl/SetRPUIInformation.java
+++ b/idp-ui/src/main/java/net/shibboleth/idp/ui/impl/SetRPUIInformation.java
@@ -114,7 +114,7 @@ public class SetRPUIInformation extends AbstractProfileAction {
      */
     public void setMetadataContextLookupStrategy(
             @Nonnull final Function<ProfileRequestContext, SAMLMetadataContext> strgy) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         metadataContextLookupStrategy = Constraint.isNotNull(strgy, "Injected Metadata Strategy cannot be null");
     }
 
@@ -134,7 +134,7 @@ public class SetRPUIInformation extends AbstractProfileAction {
      */
     public void setRPUIContextCreateStrategy(
             @Nonnull final Function<ProfileRequestContext, RelyingPartyUIContext> strategy) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         rpUIContextCreateStrategy = Constraint.isNotNull(strategy, "Injected RPUI Strategy cannot be null");
     }
 
@@ -144,7 +144,7 @@ public class SetRPUIInformation extends AbstractProfileAction {
      * @param langs a semi-colon separated string.
      */
     public void setFallbackLanguages(@Nonnull @NonnullElements final List<String> langs) {
-        throwSetterPreconditionExceptions();
+        checkSetterPreconditions();
         fallbackLanguages = List.copyOf(StringSupport.normalizeStringCollection(langs));
     }
 

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


More information about the commits mailing list