[java-oidc-common] branch main updated: Null cleanup for profile-api/impl.

Henri Mikkonen henri.mikkonen at iki.fi
Fri Apr 5 13:15:12 UTC 2024


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

hjmikkon pushed a commit to branch main
in repository java-oidc-common.

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

The following commit(s) were added to refs/heads/main by this push:
     new c14c8eb  Null cleanup for profile-api/impl.
c14c8eb is described below

commit c14c8eb792f6a6ee83a7a48c104833a22797d693
Author: Henri Mikkonen <henri.mikkonen at iki.fi>
AuthorDate: Fri Apr 5 16:15:04 2024 +0300

    Null cleanup for profile-api/impl.
---
 .../OIDCIDTokenProducingProfileConfiguration.java  |  2 +-
 .../config/OIDCLogoutProfileConfiguration.java     |  2 +-
 .../config/navigate/GrantTypesLookupFunction.java  |  8 +++----
 .../JWEDataEncryptionAlgorithmsLookupFunction.java |  2 +-
 ...ransportEncryptionAlgorithmsLookupFunction.java |  2 +-
 .../JWSSignatureAlgorithmsLookupFunction.java      |  2 +-
 ...nticationContextClassRequestLookupFunction.java |  4 +++-
 .../TokenEndpointAuthMethodLookupFunction.java     | 10 ++++-----
 .../profile/core/OIDCAuthenticationRequest.java    |  5 ++---
 ...h2AccessTokenProducingProfileConfiguration.java |  2 +-
 ...orizationCodeProducingProfileConfiguration.java |  2 +-
 ...entAuthenticableClientProfileConfiguration.java |  3 +--
 ...th2ClientAuthenticableProfileConfiguration.java |  2 +-
 .../oauth2/config/OAuth2TokenConfiguration.java    |  2 +-
 .../config/OAuth2TokenRevocationConfiguration.java |  1 +
 ...thenticationContextClassLookupFunctionTest.java |  7 +++---
 ...tionContextClassResponseLookupFunctionTest.java |  2 +-
 .../impl/DateBasedJWTClaimAuditExtractor.java      | 16 +++++++++----
 .../config/impl/AbstractOIDCSSOConfiguration.java  | 24 +++++++++++---------
 .../DefaultOIDCAuthorizationConfiguration.java     | 16 +++++++------
 .../impl/DefaultOIDCLogoutConfiguration.java       | 26 +++++++++++-----------
 .../impl/HTTPPostAuthnResponseDecoder.java         |  3 ++-
 .../impl/HTTPRedirectAuthnResponseDecoder.java     |  3 ++-
 .../impl/HTTPRedirectAuthnRequestEncoder.java      |  4 +++-
 .../impl/AbstractBuildErrorResponseFromEvent.java  |  1 +
 .../impl/PopulateJWTDecryptionParameters.java      |  4 +++-
 .../impl/PopulateJWTEncryptionParameters.java      |  4 +++-
 .../PopulateJWTSignatureSigningParameters.java     | 10 ++++-----
 ...pulateJWTSignatureSigningParametersHandler.java | 11 ++++++---
 .../PopulateJWTSignatureValidationParameters.java  |  4 +++-
 ...entIDFromOIDCMetadataContextLookupFunction.java |  7 ++++--
 ...mOIDCProviderMetadataContextLookupFunction.java |  7 ++++--
 ...th2ClientAuthenticableProfileConfiguration.java | 12 +++++++---
 .../DefaultOAuth2TokenAudienceConfiguration.java   |  7 +++---
 .../impl/DefaultOAuth2TokenConfiguration.java      |  2 +-
 .../DefaultOAuth2TokenRevocationConfiguration.java |  7 +++---
 .../impl/OIDCCoreProtocolConfigurationTest.java    |  5 +++++
 .../impl/HTTPPostAuthnRequestEncoderTest.java      |  2 ++
 .../impl/HTTPRedirectAuthnRequestEncoderTest.java  |  3 ++-
 .../impl/SimpleNimbusResponseEncoderTest.java      |  1 +
 .../FormOutboundKeySetResponseMessageTest.java     |  2 +-
 41 files changed, 145 insertions(+), 94 deletions(-)

diff --git a/oidc-common-profile-api/src/main/java/net/shibboleth/oidc/profile/config/OIDCIDTokenProducingProfileConfiguration.java b/oidc-common-profile-api/src/main/java/net/shibboleth/oidc/profile/config/OIDCIDTokenProducingProfileConfiguration.java
index db54837..1f326cd 100644
--- a/oidc-common-profile-api/src/main/java/net/shibboleth/oidc/profile/config/OIDCIDTokenProducingProfileConfiguration.java
+++ b/oidc-common-profile-api/src/main/java/net/shibboleth/oidc/profile/config/OIDCIDTokenProducingProfileConfiguration.java
@@ -56,7 +56,7 @@ public interface OIDCIDTokenProducingProfileConfiguration extends OIDCProfileCon
      * @since 2.1.0
      */
     @ConfigurationSetting(name="iDTokenManipulationStrategy")
-    @Nonnull BiFunction<ProfileRequestContext,Map<String,Object>,Map<String,Object>> getIDTokenManipulationStrategy(
+    @Nullable BiFunction<ProfileRequestContext,Map<String,Object>,Map<String,Object>> getIDTokenManipulationStrategy(
             @Nullable final ProfileRequestContext profileRequestContext);
     
 
diff --git a/oidc-common-profile-api/src/main/java/net/shibboleth/oidc/profile/config/OIDCLogoutProfileConfiguration.java b/oidc-common-profile-api/src/main/java/net/shibboleth/oidc/profile/config/OIDCLogoutProfileConfiguration.java
index 02be179..91e25cf 100644
--- a/oidc-common-profile-api/src/main/java/net/shibboleth/oidc/profile/config/OIDCLogoutProfileConfiguration.java
+++ b/oidc-common-profile-api/src/main/java/net/shibboleth/oidc/profile/config/OIDCLogoutProfileConfiguration.java
@@ -85,7 +85,7 @@ public interface OIDCLogoutProfileConfiguration extends OAuth2TokenEncryptionPro
      * @return the bi-predicate for matching logout hint to an existing session.
      */
     @ConfigurationSetting(name="logoutHintMatchingStrategy")
-    @Nonnull BiPredicate<String,SPSession> getLogoutHintMatchingStrategy(
+    @Nullable BiPredicate<String,SPSession> getLogoutHintMatchingStrategy(
             @Nullable final ProfileRequestContext profileRequestContext);
 
 }
\ No newline at end of file
diff --git a/oidc-common-profile-api/src/main/java/net/shibboleth/oidc/profile/config/navigate/GrantTypesLookupFunction.java b/oidc-common-profile-api/src/main/java/net/shibboleth/oidc/profile/config/navigate/GrantTypesLookupFunction.java
index ae3f50f..39d612e 100644
--- a/oidc-common-profile-api/src/main/java/net/shibboleth/oidc/profile/config/navigate/GrantTypesLookupFunction.java
+++ b/oidc-common-profile-api/src/main/java/net/shibboleth/oidc/profile/config/navigate/GrantTypesLookupFunction.java
@@ -48,11 +48,9 @@ public class GrantTypesLookupFunction extends AbstractRelyingPartyLookupFunction
             final ProfileConfiguration pc = rpc.getProfileConfig();
             if (pc instanceof OAuth2TokenConfiguration) {
                 final Set<String> types = ((OAuth2TokenConfiguration)pc).getGrantTypes(input);
-                if (types != null) {
-                    return types.stream()
-                            .map(GrantType::new)
-                            .collect(Collectors.toUnmodifiableSet());
-                }
+                return types.stream()
+                        .map(GrantType::new)
+                        .collect(Collectors.toUnmodifiableSet());
             } else if (pc instanceof OIDCAuthorizationConfiguration) {
                 // For compatibility just return the lone supported type.
                 return Set.of(GrantType.AUTHORIZATION_CODE, GrantType.REFRESH_TOKEN);
diff --git a/oidc-common-profile-api/src/main/java/net/shibboleth/oidc/profile/config/navigate/JWEDataEncryptionAlgorithmsLookupFunction.java b/oidc-common-profile-api/src/main/java/net/shibboleth/oidc/profile/config/navigate/JWEDataEncryptionAlgorithmsLookupFunction.java
index f674568..18fd8d1 100644
--- a/oidc-common-profile-api/src/main/java/net/shibboleth/oidc/profile/config/navigate/JWEDataEncryptionAlgorithmsLookupFunction.java
+++ b/oidc-common-profile-api/src/main/java/net/shibboleth/oidc/profile/config/navigate/JWEDataEncryptionAlgorithmsLookupFunction.java
@@ -50,7 +50,7 @@ public class JWEDataEncryptionAlgorithmsLookupFunction extends AbstractRelyingPa
                 final SecurityConfiguration secConfig = pc.getSecurityConfiguration(input);
                 if (secConfig instanceof JSONSecurityConfiguration jsc) {
                     final EncryptionConfiguration encryptionConfig = jsc.getJwtEncryptionConfiguration();
-                    if (encryptionConfig != null && encryptionConfig.getDataEncryptionAlgorithms() != null) {
+                    if (encryptionConfig != null) {
                         return encryptionConfig.getDataEncryptionAlgorithms();
                     }
                 }
diff --git a/oidc-common-profile-api/src/main/java/net/shibboleth/oidc/profile/config/navigate/JWEKeyTransportEncryptionAlgorithmsLookupFunction.java b/oidc-common-profile-api/src/main/java/net/shibboleth/oidc/profile/config/navigate/JWEKeyTransportEncryptionAlgorithmsLookupFunction.java
index 0483036..d16bf55 100644
--- a/oidc-common-profile-api/src/main/java/net/shibboleth/oidc/profile/config/navigate/JWEKeyTransportEncryptionAlgorithmsLookupFunction.java
+++ b/oidc-common-profile-api/src/main/java/net/shibboleth/oidc/profile/config/navigate/JWEKeyTransportEncryptionAlgorithmsLookupFunction.java
@@ -54,7 +54,7 @@ public class JWEKeyTransportEncryptionAlgorithmsLookupFunction
                 final SecurityConfiguration secConfig = pc.getSecurityConfiguration(input);
                 if (secConfig instanceof JSONSecurityConfiguration jsc) {
                     final EncryptionConfiguration encryptionConfig = jsc.getJwtEncryptionConfiguration();
-                    if (encryptionConfig != null && encryptionConfig.getKeyTransportEncryptionAlgorithms() != null) {
+                    if (encryptionConfig != null) {
                         return encryptionConfig.getKeyTransportEncryptionAlgorithms();
                     }
                 }
diff --git a/oidc-common-profile-api/src/main/java/net/shibboleth/oidc/profile/config/navigate/JWSSignatureAlgorithmsLookupFunction.java b/oidc-common-profile-api/src/main/java/net/shibboleth/oidc/profile/config/navigate/JWSSignatureAlgorithmsLookupFunction.java
index f4822db..5c166ef 100644
--- a/oidc-common-profile-api/src/main/java/net/shibboleth/oidc/profile/config/navigate/JWSSignatureAlgorithmsLookupFunction.java
+++ b/oidc-common-profile-api/src/main/java/net/shibboleth/oidc/profile/config/navigate/JWSSignatureAlgorithmsLookupFunction.java
@@ -53,7 +53,7 @@ public class JWSSignatureAlgorithmsLookupFunction extends AbstractRelyingPartyLo
                 final SecurityConfiguration secConfig = pc.getSecurityConfiguration(input);
                 if (secConfig instanceof JSONSecurityConfiguration jsc) {
                     final SignatureSigningConfiguration sigConfig = jsc.getJwtSignatureSigningConfiguration();
-                    if (sigConfig != null && sigConfig.getSignatureAlgorithms() != null) {
+                    if (sigConfig != null) {
                         return sigConfig.getSignatureAlgorithms();
                     }
                 }
diff --git a/oidc-common-profile-api/src/main/java/net/shibboleth/oidc/profile/config/navigate/ProxyAwareDefaultOIDCAuthenticationContextClassRequestLookupFunction.java b/oidc-common-profile-api/src/main/java/net/shibboleth/oidc/profile/config/navigate/ProxyAwareDefaultOIDCAuthenticationContextClassRequestLookupFunction.java
index 0045cee..71d4d85 100644
--- a/oidc-common-profile-api/src/main/java/net/shibboleth/oidc/profile/config/navigate/ProxyAwareDefaultOIDCAuthenticationContextClassRequestLookupFunction.java
+++ b/oidc-common-profile-api/src/main/java/net/shibboleth/oidc/profile/config/navigate/ProxyAwareDefaultOIDCAuthenticationContextClassRequestLookupFunction.java
@@ -94,8 +94,10 @@ public class ProxyAwareDefaultOIDCAuthenticationContextClassRequestLookupFunctio
                     } else {
                         // If no mapping exists, just convert to correct output type - which might not make sense
                         // to the upstream OP.
+                        final String name = requestedPrincipal.getName();
+                        assert name != null;
                         mappedAndPassedThroughPrincipals.add(
-                                new AuthenticationContextClassReferencePrincipal(requestedPrincipal.getName()));
+                                new AuthenticationContextClassReferencePrincipal(name));
                     }
                 
                 }
diff --git a/oidc-common-profile-api/src/main/java/net/shibboleth/oidc/profile/config/navigate/TokenEndpointAuthMethodLookupFunction.java b/oidc-common-profile-api/src/main/java/net/shibboleth/oidc/profile/config/navigate/TokenEndpointAuthMethodLookupFunction.java
index 8b99214..42aa849 100644
--- a/oidc-common-profile-api/src/main/java/net/shibboleth/oidc/profile/config/navigate/TokenEndpointAuthMethodLookupFunction.java
+++ b/oidc-common-profile-api/src/main/java/net/shibboleth/oidc/profile/config/navigate/TokenEndpointAuthMethodLookupFunction.java
@@ -49,12 +49,10 @@ public class TokenEndpointAuthMethodLookupFunction
             if (pc instanceof OAuth2ClientAuthenticableProfileConfiguration) {
                 final Set<String> methods =
                         ((OAuth2ClientAuthenticableProfileConfiguration)pc).getTokenEndpointAuthMethods(input);
-                if (methods != null) {
-                    return methods
-                            .stream()
-                            .map(ClientAuthenticationMethod::new)
-                            .collect(Collectors.toUnmodifiableSet());
-                }
+                return methods
+                        .stream()
+                        .map(ClientAuthenticationMethod::new)
+                        .collect(Collectors.toUnmodifiableSet());
             }
         }
         
diff --git a/oidc-common-profile-api/src/main/java/net/shibboleth/oidc/profile/core/OIDCAuthenticationRequest.java b/oidc-common-profile-api/src/main/java/net/shibboleth/oidc/profile/core/OIDCAuthenticationRequest.java
index 25fcfa1..93bfbc1 100644
--- a/oidc-common-profile-api/src/main/java/net/shibboleth/oidc/profile/core/OIDCAuthenticationRequest.java
+++ b/oidc-common-profile-api/src/main/java/net/shibboleth/oidc/profile/core/OIDCAuthenticationRequest.java
@@ -17,7 +17,6 @@ package net.shibboleth.oidc.profile.core;
 import java.net.URI;
 import java.time.Duration;
 import java.time.Instant;
-import java.util.Collections;
 import java.util.List;
 
 import javax.annotation.Nonnull;
@@ -301,7 +300,7 @@ public class OIDCAuthenticationRequest extends OAuthAuthorizationRequest {
     * @return the acrs.
     */
    @Nonnull @NotLive @Unmodifiable public List<ACR> getAcrs() {
-       return Collections.unmodifiableList(acrs);
+       return CollectionSupport.copyToList(acrs);
    }
 
    /**
@@ -311,7 +310,7 @@ public class OIDCAuthenticationRequest extends OAuthAuthorizationRequest {
     */
    public void setAcrs(@Nullable final List<ACR> theAcrs) {
        if (theAcrs != null) {
-           acrs = Collections.unmodifiableList(theAcrs);
+           acrs = CollectionSupport.copyToList(theAcrs);
        }
    }
    
diff --git a/oidc-common-profile-api/src/main/java/net/shibboleth/oidc/profile/oauth2/config/OAuth2AccessTokenProducingProfileConfiguration.java b/oidc-common-profile-api/src/main/java/net/shibboleth/oidc/profile/oauth2/config/OAuth2AccessTokenProducingProfileConfiguration.java
index fa558c5..25ed8e1 100644
--- a/oidc-common-profile-api/src/main/java/net/shibboleth/oidc/profile/oauth2/config/OAuth2AccessTokenProducingProfileConfiguration.java
+++ b/oidc-common-profile-api/src/main/java/net/shibboleth/oidc/profile/oauth2/config/OAuth2AccessTokenProducingProfileConfiguration.java
@@ -66,7 +66,7 @@ public interface OAuth2AccessTokenProducingProfileConfiguration extends OAuth2Pr
      * @since 2.1.0
      */
     @ConfigurationSetting(name="accessTokenClaimsSetManipulationStrategy")
-    @Nonnull BiFunction<ProfileRequestContext,Map<String,Object>,Map<String,Object>>
+    @Nullable BiFunction<ProfileRequestContext,Map<String,Object>,Map<String,Object>>
         getAccessTokenClaimsSetManipulationStrategy(
                 @Nullable final ProfileRequestContext profileRequestContext);
 
diff --git a/oidc-common-profile-api/src/main/java/net/shibboleth/oidc/profile/oauth2/config/OAuth2AuthorizationCodeProducingProfileConfiguration.java b/oidc-common-profile-api/src/main/java/net/shibboleth/oidc/profile/oauth2/config/OAuth2AuthorizationCodeProducingProfileConfiguration.java
index ba20b78..e4bc5fe 100644
--- a/oidc-common-profile-api/src/main/java/net/shibboleth/oidc/profile/oauth2/config/OAuth2AuthorizationCodeProducingProfileConfiguration.java
+++ b/oidc-common-profile-api/src/main/java/net/shibboleth/oidc/profile/oauth2/config/OAuth2AuthorizationCodeProducingProfileConfiguration.java
@@ -55,7 +55,7 @@ public interface OAuth2AuthorizationCodeProducingProfileConfiguration extends OA
      * @since 2.1.0
      */
     @ConfigurationSetting(name="authorizationCodeClaimsSetManipulationStrategy")
-    @Nonnull BiFunction<ProfileRequestContext,Map<String,Object>,Map<String,Object>>
+    @Nullable BiFunction<ProfileRequestContext,Map<String,Object>,Map<String,Object>>
         getAuthorizationCodeClaimsSetManipulationStrategy(
             @Nullable final ProfileRequestContext profileRequestContext);
 
diff --git a/oidc-common-profile-api/src/main/java/net/shibboleth/oidc/profile/oauth2/config/OAuth2ClientAuthenticableClientProfileConfiguration.java b/oidc-common-profile-api/src/main/java/net/shibboleth/oidc/profile/oauth2/config/OAuth2ClientAuthenticableClientProfileConfiguration.java
index 66e9a27..ad814fb 100644
--- a/oidc-common-profile-api/src/main/java/net/shibboleth/oidc/profile/oauth2/config/OAuth2ClientAuthenticableClientProfileConfiguration.java
+++ b/oidc-common-profile-api/src/main/java/net/shibboleth/oidc/profile/oauth2/config/OAuth2ClientAuthenticableClientProfileConfiguration.java
@@ -14,7 +14,6 @@
 
 package net.shibboleth.oidc.profile.oauth2.config;
 
-import javax.annotation.Nonnull;
 import javax.annotation.Nullable;
 
 import org.opensaml.profile.context.ProfileRequestContext;
@@ -42,7 +41,7 @@ public interface OAuth2ClientAuthenticableClientProfileConfiguration
      * @since 2.2.0
      */
     @ConfigurationSetting(name="tokenEndpointAuthMethod")
-    @Nonnull String getTokenEndpointAuthMethod(@Nullable final ProfileRequestContext profileRequestContext);
+    @Nullable String getTokenEndpointAuthMethod(@Nullable final ProfileRequestContext profileRequestContext);
     
     /**
      * Get the client credential for the given context. Typically a client_secret
diff --git a/oidc-common-profile-api/src/main/java/net/shibboleth/oidc/profile/oauth2/config/OAuth2ClientAuthenticableProfileConfiguration.java b/oidc-common-profile-api/src/main/java/net/shibboleth/oidc/profile/oauth2/config/OAuth2ClientAuthenticableProfileConfiguration.java
index 9cfc7c6..48a6038 100644
--- a/oidc-common-profile-api/src/main/java/net/shibboleth/oidc/profile/oauth2/config/OAuth2ClientAuthenticableProfileConfiguration.java
+++ b/oidc-common-profile-api/src/main/java/net/shibboleth/oidc/profile/oauth2/config/OAuth2ClientAuthenticableProfileConfiguration.java
@@ -67,6 +67,6 @@ public interface OAuth2ClientAuthenticableProfileConfiguration
      * @since 3.0.0
      */
     @ConfigurationSetting(name="unregisteredClientPolicy")
-    @Nullable @Unmodifiable Map<String, UnregisteredClientPolicy> getUnregisteredClientPolicy(
+    @Nonnull @Unmodifiable Map<String, UnregisteredClientPolicy> getUnregisteredClientPolicy(
             @Nullable final ProfileRequestContext profileRequestContext);
 }
diff --git a/oidc-common-profile-api/src/main/java/net/shibboleth/oidc/profile/oauth2/config/OAuth2TokenConfiguration.java b/oidc-common-profile-api/src/main/java/net/shibboleth/oidc/profile/oauth2/config/OAuth2TokenConfiguration.java
index e49d9ad..66d48b9 100644
--- a/oidc-common-profile-api/src/main/java/net/shibboleth/oidc/profile/oauth2/config/OAuth2TokenConfiguration.java
+++ b/oidc-common-profile-api/src/main/java/net/shibboleth/oidc/profile/oauth2/config/OAuth2TokenConfiguration.java
@@ -75,7 +75,7 @@ public interface OAuth2TokenConfiguration extends OIDCSSOProviderConfiguration {
      */
     // TODO: move to OAuth2RefreshTokenProducingProfileConfiguration in 3.0.0
     @ConfigurationSetting(name="refreshTokenClaimsSetManipulationStrategy")
-    @Nonnull BiFunction<ProfileRequestContext,Map<String,Object>,Map<String,Object>>
+    @Nullable BiFunction<ProfileRequestContext,Map<String,Object>,Map<String,Object>>
         getRefreshTokenClaimsSetManipulationStrategy(@Nullable final ProfileRequestContext profileRequestContext);
 
 
diff --git a/oidc-common-profile-api/src/main/java/net/shibboleth/oidc/profile/oauth2/config/OAuth2TokenRevocationConfiguration.java b/oidc-common-profile-api/src/main/java/net/shibboleth/oidc/profile/oauth2/config/OAuth2TokenRevocationConfiguration.java
index 124f803..c3c4ef9 100644
--- a/oidc-common-profile-api/src/main/java/net/shibboleth/oidc/profile/oauth2/config/OAuth2TokenRevocationConfiguration.java
+++ b/oidc-common-profile-api/src/main/java/net/shibboleth/oidc/profile/oauth2/config/OAuth2TokenRevocationConfiguration.java
@@ -58,6 +58,7 @@ public interface OAuth2TokenRevocationConfiguration extends OAuth2TokenValidatin
      * @since 2.1.0
      */
     @ConfigurationSetting(name="revocationMethod")
+    @Nullable
     OAuth2TokenRevocationMethod getRevocationMethod(@Nullable final ProfileRequestContext profileRequestContext);
     
     /**
diff --git a/oidc-common-profile-api/src/test/java/net/shibboleth/oidc/profile/config/navigate/ProxyAwareDefaultOIDCAuthenticationContextClassLookupFunctionTest.java b/oidc-common-profile-api/src/test/java/net/shibboleth/oidc/profile/config/navigate/ProxyAwareDefaultOIDCAuthenticationContextClassLookupFunctionTest.java
index f219fb5..5e0f3ce 100644
--- a/oidc-common-profile-api/src/test/java/net/shibboleth/oidc/profile/config/navigate/ProxyAwareDefaultOIDCAuthenticationContextClassLookupFunctionTest.java
+++ b/oidc-common-profile-api/src/test/java/net/shibboleth/oidc/profile/config/navigate/ProxyAwareDefaultOIDCAuthenticationContextClassLookupFunctionTest.java
@@ -30,6 +30,7 @@ import net.shibboleth.idp.authn.context.AuthenticationContext;
 import net.shibboleth.idp.authn.context.RequestedPrincipalContext;
 import net.shibboleth.idp.saml.authn.principal.AuthnContextClassRefPrincipal;
 import net.shibboleth.oidc.authn.principal.AuthenticationContextClassReferencePrincipal;
+import net.shibboleth.shared.collection.CollectionSupport;
 
 /** Tests for ProxyAwareDefaultOIDCAuthenticationContextClassLookupFunction.*/
 @SuppressWarnings("javadoc")
@@ -59,7 +60,7 @@ public class ProxyAwareDefaultOIDCAuthenticationContextClassLookupFunctionTest {
         
         
         final List<Principal> requestedPrincipals = 
-                List.of(new AuthnContextClassRefPrincipal("http://example.org/ac/classes/mfa"));
+                CollectionSupport.listOf(new AuthnContextClassRefPrincipal("http://example.org/ac/classes/mfa"));
         rpc.setRequestedPrincipals(requestedPrincipals);
         rpc.setOperator("exact");
         
@@ -81,7 +82,7 @@ public class ProxyAwareDefaultOIDCAuthenticationContextClassLookupFunctionTest {
         
         // The second principal is passed-through as no mapping exists
         final List<Principal> requestedPrincipals = 
-                List.of(new AuthnContextClassRefPrincipal("http://example.org/ac/classes/mfa"),
+                CollectionSupport.listOf(new AuthnContextClassRefPrincipal("http://example.org/ac/classes/mfa"),
                         new AuthnContextClassRefPrincipal("http://example.org/ac/classes/pass-through"));
         rpc.setRequestedPrincipals(requestedPrincipals);
         rpc.setOperator("exact");
@@ -106,7 +107,7 @@ public class ProxyAwareDefaultOIDCAuthenticationContextClassLookupFunctionTest {
         
         // The second principal is passed-through as no mapping exists
         final List<Principal> requestedPrincipals = 
-                List.of(new AuthnContextClassRefPrincipal("http://example.org/ac/classes/mfa"),
+                CollectionSupport.listOf(new AuthnContextClassRefPrincipal("http://example.org/ac/classes/mfa"),
                         new AuthnContextClassRefPrincipal("http://example.org/ac/classes/pass-through"));
         rpc.setRequestedPrincipals(requestedPrincipals);
         rpc.setOperator("exact");
diff --git a/oidc-common-profile-api/src/test/java/net/shibboleth/oidc/profile/config/navigate/ProxyAwareDefaultOIDCAuthenticationContextClassResponseLookupFunctionTest.java b/oidc-common-profile-api/src/test/java/net/shibboleth/oidc/profile/config/navigate/ProxyAwareDefaultOIDCAuthenticationContextClassResponseLookupFunctionTest.java
index cee567e..48466f6 100644
--- a/oidc-common-profile-api/src/test/java/net/shibboleth/oidc/profile/config/navigate/ProxyAwareDefaultOIDCAuthenticationContextClassResponseLookupFunctionTest.java
+++ b/oidc-common-profile-api/src/test/java/net/shibboleth/oidc/profile/config/navigate/ProxyAwareDefaultOIDCAuthenticationContextClassResponseLookupFunctionTest.java
@@ -61,7 +61,7 @@ public class ProxyAwareDefaultOIDCAuthenticationContextClassResponseLookupFuncti
         final Map<String,Collection<Principal>> mappings = new HashMap<>();
         mappings.put(
                 "pwd", 
-                List.of(new AuthenticationMethodPrincipal
+                CollectionSupport.listOf(new AuthenticationMethodPrincipal
                         ("urn:oasis:names:tc:SAML:2.0:ac:classes:PasswordProtectedTransport")));
 
         function = new ProxyAwareDefaultOIDCAuthenticationContextClassResponseLookupFunction(mappings);
diff --git a/oidc-common-profile-impl/src/main/java/net/shibboleth/oidc/profile/audit/impl/DateBasedJWTClaimAuditExtractor.java b/oidc-common-profile-impl/src/main/java/net/shibboleth/oidc/profile/audit/impl/DateBasedJWTClaimAuditExtractor.java
index 4d61fa6..b11576b 100644
--- a/oidc-common-profile-impl/src/main/java/net/shibboleth/oidc/profile/audit/impl/DateBasedJWTClaimAuditExtractor.java
+++ b/oidc-common-profile-impl/src/main/java/net/shibboleth/oidc/profile/audit/impl/DateBasedJWTClaimAuditExtractor.java
@@ -41,7 +41,9 @@ public class DateBasedJWTClaimAuditExtractor extends AbstractClaimsSetAuditExtra
     
     /** Constructor.*/
     public DateBasedJWTClaimAuditExtractor() {
-        dateTimeFormatter = DateTimeFormatter.ISO_INSTANT;
+        final DateTimeFormatter isoInstant = DateTimeFormatter.ISO_INSTANT;
+        assert isoInstant != null;
+        dateTimeFormatter = isoInstant;
     }
     
     /**
@@ -51,9 +53,15 @@ public class DateBasedJWTClaimAuditExtractor extends AbstractClaimsSetAuditExtra
      */
     public void setDateTimeFormat(@Nullable @NotEmpty final String format) {
         ifInitializedThrowUnmodifiabledComponentException();
-        
-        if (StringSupport.trimOrNull(format) != null) {
-            dateTimeFormatter = DateTimeFormatter.ofPattern(StringSupport.trimOrNull(format));
+
+        final String trimmedFormat = StringSupport.trimOrNull(format);
+        if (trimmedFormat != null) {
+            final DateTimeFormatter timeFormatter = DateTimeFormatter.ofPattern(trimmedFormat);
+            if (timeFormatter != null) {
+                dateTimeFormatter = timeFormatter;
+            } else {
+                log.warn("Could not build a formatter from pattern {}", trimmedFormat);
+            }
         }
     }
 
diff --git a/oidc-common-profile-impl/src/main/java/net/shibboleth/oidc/profile/config/impl/AbstractOIDCSSOConfiguration.java b/oidc-common-profile-impl/src/main/java/net/shibboleth/oidc/profile/config/impl/AbstractOIDCSSOConfiguration.java
index 3e61d08..3d3e9d5 100644
--- a/oidc-common-profile-impl/src/main/java/net/shibboleth/oidc/profile/config/impl/AbstractOIDCSSOConfiguration.java
+++ b/oidc-common-profile-impl/src/main/java/net/shibboleth/oidc/profile/config/impl/AbstractOIDCSSOConfiguration.java
@@ -263,10 +263,11 @@ public abstract class AbstractOIDCSSOConfiguration extends AbstractOAuth2FlowAwa
      * @param lifetime lifetime of an id token in milliseconds
      */
     public void setIDTokenLifetime(@Positive @Nonnull final Duration lifetime) {
-        Constraint.isTrue(lifetime != null && !lifetime.isZero() && !lifetime.isNegative(),
+        final Duration idTokenLifetime = Constraint.isNotNull(lifetime, "ID token lifetime cannot be null");
+        Constraint.isTrue(!idTokenLifetime.isZero() && !idTokenLifetime.isNegative(),
                 "ID token lifetime must be greater than 0");
         
-        idTokenLifetimeLookupStrategy = FunctionSupport.constant(lifetime);
+        idTokenLifetimeLookupStrategy = FunctionSupport.constant(idTokenLifetime);
     }
 
     /**
@@ -324,10 +325,11 @@ public abstract class AbstractOIDCSSOConfiguration extends AbstractOAuth2FlowAwa
      * @param lifetime lifetime of an access token in milliseconds
      */
     public void setAccessTokenLifetime(@Positive @Nonnull final Duration lifetime) {
-        Constraint.isTrue(lifetime != null && !lifetime.isZero() && !lifetime.isNegative(),
+        final Duration tokenLifetime = Constraint.isNotNull(lifetime, "Access token lifetime cannot be null");
+        Constraint.isTrue(!tokenLifetime.isZero() && !tokenLifetime.isNegative(),
                 "Access token lifetime must be greater than 0");
         
-        accessTokenLifetimeLookupStrategy = FunctionSupport.constant(lifetime);
+        accessTokenLifetimeLookupStrategy = FunctionSupport.constant(tokenLifetime);
     }
     
     /**
@@ -360,10 +362,11 @@ public abstract class AbstractOIDCSSOConfiguration extends AbstractOAuth2FlowAwa
      * @since 2.2.0
      */
     public void setRefreshTokenTimeout(@Nonnull @Positive final Duration timeout) {
-        Constraint.isTrue(timeout != null && !timeout.isZero() && !timeout.isNegative(),
+        final Duration tokenTimeout = Constraint.isNotNull(timeout, "Refresh token timeout cannot be null");
+        Constraint.isTrue(!tokenTimeout.isZero() && !timeout.isNegative(),
                 "Refresh token timeout must be greater than 0");
         
-        refreshTokenTimeoutLookupStrategy = FunctionSupport.constant(timeout);
+        refreshTokenTimeoutLookupStrategy = FunctionSupport.constant(tokenTimeout);
     }
 
     /**
@@ -398,10 +401,11 @@ public abstract class AbstractOIDCSSOConfiguration extends AbstractOAuth2FlowAwa
      * @since 2.2.0
      */
     public void setRefreshTokenChainLifetime(@Nonnull @Positive final Duration lifetime) {
-        Constraint.isTrue(lifetime != null && !lifetime.isZero() && !lifetime.isNegative(),
+        final Duration chainLifetime = Constraint.isNotNull(lifetime, "Refresh token chain lifetime cannot be null");
+        Constraint.isTrue(!chainLifetime.isZero() && !chainLifetime.isNegative(),
                 "Refresh token chain lifetime must be greater than 0");
         
-        refreshTokenChainLifetimeLookupStrategy = FunctionSupport.constant(lifetime);
+        refreshTokenChainLifetimeLookupStrategy = FunctionSupport.constant(chainLifetime);
     }
 
     /**
@@ -527,7 +531,7 @@ public abstract class AbstractOIDCSSOConfiguration extends AbstractOAuth2FlowAwa
 
     /** {@inheritDoc} */
     @Override
-    @Nonnull
+    @Nullable
     public BiFunction<ProfileRequestContext,Map<String,Object>,Map<String,Object>> getIDTokenManipulationStrategy(
             @Nullable final ProfileRequestContext profileRequestContext) {
         return idTokenManipulationStrategyLookupStrategy.apply(profileRequestContext);
@@ -560,7 +564,7 @@ public abstract class AbstractOIDCSSOConfiguration extends AbstractOAuth2FlowAwa
 
     /** {@inheritDoc} */
     @Override
-    @Nonnull
+    @Nullable
     public BiFunction<ProfileRequestContext,Map<String,Object>,Map<String,Object>>
         getAccessTokenClaimsSetManipulationStrategy(
             @Nullable final ProfileRequestContext profileRequestContext) {
diff --git a/oidc-common-profile-impl/src/main/java/net/shibboleth/oidc/profile/config/impl/DefaultOIDCAuthorizationConfiguration.java b/oidc-common-profile-impl/src/main/java/net/shibboleth/oidc/profile/config/impl/DefaultOIDCAuthorizationConfiguration.java
index 1d887d4..58abba0 100644
--- a/oidc-common-profile-impl/src/main/java/net/shibboleth/oidc/profile/config/impl/DefaultOIDCAuthorizationConfiguration.java
+++ b/oidc-common-profile-impl/src/main/java/net/shibboleth/oidc/profile/config/impl/DefaultOIDCAuthorizationConfiguration.java
@@ -399,10 +399,11 @@ public class DefaultOIDCAuthorizationConfiguration extends AbstractOIDCSSOConfig
      * @param lifetime lifetime of authz code
      */
     public void setAuthorizeCodeLifetime(@Positive @Nonnull final Duration lifetime) {
-        Constraint.isTrue(lifetime != null && !lifetime.isZero() && !lifetime.isNegative(),
+        final Duration codeLifetime = Constraint.isNotNull(lifetime, "Authorization code lifetime cannot be null");
+        Constraint.isTrue(!codeLifetime.isZero() && !codeLifetime.isNegative(),
                 "Authorization code lifetime must be greater than 0");
 
-        authorizeCodeLifetimeLookupStrategy = FunctionSupport.constant(lifetime);
+        authorizeCodeLifetimeLookupStrategy = FunctionSupport.constant(codeLifetime);
     }
 
     /**
@@ -431,7 +432,7 @@ public class DefaultOIDCAuthorizationConfiguration extends AbstractOIDCSSOConfig
      *
      * @param method the HTTP method to set, either POST or GET.
      */
-    public void setHttpRequestMethod(@Nonnull @NotEmpty final HttpRequestMethod method){
+    public void setHttpRequestMethod(@Nullable final HttpRequestMethod method){
         httpRequestMethodLookupStrategy = FunctionSupport.constant(method != null ? method.toString() : null);
     }
 
@@ -587,7 +588,7 @@ public class DefaultOIDCAuthorizationConfiguration extends AbstractOIDCSSOConfig
     
     /** {@inheritDoc} */
     @Override
-    @Nonnull
+    @Nullable
     public BiFunction<ProfileRequestContext,Map<String,Object>,Map<String,Object>>
         getAuthorizationCodeClaimsSetManipulationStrategy(
             @Nullable final ProfileRequestContext profileRequestContext) {
@@ -729,10 +730,11 @@ public class DefaultOIDCAuthorizationConfiguration extends AbstractOIDCSSOConfig
      * @since 2.2.0
      */
     public void setMaxAuthenticationAge(@Positive @Nonnull final Duration age) {
-        Constraint.isTrue(age != null && !age.isZero() && !age.isNegative(),
+        final Duration maxAge = Constraint.isNotNull(age, "Max authentication age cannot be null");
+        Constraint.isTrue(!maxAge.isZero() && !maxAge.isNegative(),
                 "Max age must be greater than 0");
 
-        maxAuthenticationAgeLookupStrategy = FunctionSupport.constant(age);
+        maxAuthenticationAgeLookupStrategy = FunctionSupport.constant(maxAge);
     }
     
     /**
@@ -796,7 +798,7 @@ public class DefaultOIDCAuthorizationConfiguration extends AbstractOIDCSSOConfig
      * 
      * @since 2.2.0
      */
-    public void setUserInfoHttpRequestMethod(@Nonnull @NotEmpty final HttpRequestMethod method){
+    public void setUserInfoHttpRequestMethod(@Nullable final HttpRequestMethod method){
         userInfoHttpRequestMethodLookupStrategy = FunctionSupport.constant(method != null ? method.toString() : null);
     }
 
diff --git a/oidc-common-profile-impl/src/main/java/net/shibboleth/oidc/profile/config/impl/DefaultOIDCLogoutConfiguration.java b/oidc-common-profile-impl/src/main/java/net/shibboleth/oidc/profile/config/impl/DefaultOIDCLogoutConfiguration.java
index 1356701..6b415cd 100644
--- a/oidc-common-profile-impl/src/main/java/net/shibboleth/oidc/profile/config/impl/DefaultOIDCLogoutConfiguration.java
+++ b/oidc-common-profile-impl/src/main/java/net/shibboleth/oidc/profile/config/impl/DefaultOIDCLogoutConfiguration.java
@@ -23,8 +23,6 @@ import javax.annotation.Nullable;
 
 import org.opensaml.profile.context.ProfileRequestContext;
 
-import com.google.common.base.Predicates;
-
 import net.shibboleth.idp.profile.config.AbstractInterceptorAwareProfileConfiguration;
 import net.shibboleth.idp.session.SPSession;
 import net.shibboleth.oidc.profile.config.OIDCLogoutProfileConfiguration;
@@ -32,6 +30,7 @@ import net.shibboleth.profile.config.OverriddenIssuerProfileConfiguration;
 import net.shibboleth.shared.annotation.constraint.NotEmpty;
 import net.shibboleth.shared.logic.Constraint;
 import net.shibboleth.shared.logic.FunctionSupport;
+import net.shibboleth.shared.logic.PredicateSupport;
 
 /**
  *  Implementation of a profile configuration for the OpenID Connect logout.
@@ -80,11 +79,11 @@ public class DefaultOIDCLogoutConfiguration extends AbstractInterceptorAwareProf
     public DefaultOIDCLogoutConfiguration(@Nonnull @NotEmpty final String profileId) {
         super(profileId);
         issuerLookupStrategy = FunctionSupport.constant(null);
-        encryptionOptionalPredicate = Predicates.alwaysTrue();
-        preferFrontChannelPredicate = Predicates.alwaysTrue();
-        frontChannelSuccessPredicate = Predicates.alwaysFalse();
-        revokeTokensPredicate = Predicates.alwaysTrue();
-        requireIdTokenHintPredicate = Predicates.alwaysTrue();
+        encryptionOptionalPredicate = PredicateSupport.alwaysTrue();
+        preferFrontChannelPredicate = PredicateSupport.alwaysTrue();
+        frontChannelSuccessPredicate = PredicateSupport.alwaysFalse();
+        revokeTokensPredicate = PredicateSupport.alwaysTrue();
+        requireIdTokenHintPredicate = PredicateSupport.alwaysTrue();
         logoutHintMatchingStrategyLookupStrategy = FunctionSupport.constant((str, session) -> false);
     }
 
@@ -122,7 +121,7 @@ public class DefaultOIDCLogoutConfiguration extends AbstractInterceptorAwareProf
      * @param flag flag to set
      */
     public void setEncryptionOptional(final boolean flag) {
-        encryptionOptionalPredicate = flag ? Predicates.alwaysTrue() : Predicates.alwaysFalse();
+        encryptionOptionalPredicate = flag ? PredicateSupport.alwaysTrue() : PredicateSupport.alwaysFalse();
     }
 
     /**
@@ -145,7 +144,7 @@ public class DefaultOIDCLogoutConfiguration extends AbstractInterceptorAwareProf
      * @param flag flag to set
      */
     public void setPreferFrontChannel(final boolean flag) {
-        preferFrontChannelPredicate = flag ? Predicates.alwaysTrue() : Predicates.alwaysFalse();
+        preferFrontChannelPredicate = flag ? PredicateSupport.alwaysTrue() : PredicateSupport.alwaysFalse();
     }
 
     /**
@@ -168,7 +167,7 @@ public class DefaultOIDCLogoutConfiguration extends AbstractInterceptorAwareProf
      * @param flag flag to set
      */
     public void setFrontChannelSuccess(final boolean flag) {
-        frontChannelSuccessPredicate = flag ? Predicates.alwaysTrue() : Predicates.alwaysFalse();
+        frontChannelSuccessPredicate = flag ? PredicateSupport.alwaysTrue() : PredicateSupport.alwaysFalse();
     }
 
     /**
@@ -192,7 +191,7 @@ public class DefaultOIDCLogoutConfiguration extends AbstractInterceptorAwareProf
      * @param flag flag to set
      */
     public void setRevokeTokens(final boolean flag) {
-        revokeTokensPredicate = flag ? Predicates.alwaysTrue() : Predicates.alwaysFalse();
+        revokeTokensPredicate = flag ? PredicateSupport.alwaysTrue() : PredicateSupport.alwaysFalse();
     }
 
     /**
@@ -216,7 +215,7 @@ public class DefaultOIDCLogoutConfiguration extends AbstractInterceptorAwareProf
      * @param flag flag to set
      */
     public void setRequireIdTokenHint(final boolean flag) {
-        requireIdTokenHintPredicate = flag ? Predicates.alwaysTrue() : Predicates.alwaysFalse();
+        requireIdTokenHintPredicate = flag ? PredicateSupport.alwaysTrue() : PredicateSupport.alwaysFalse();
     }
 
     /**
@@ -233,7 +232,8 @@ public class DefaultOIDCLogoutConfiguration extends AbstractInterceptorAwareProf
     @Override
     public BiPredicate<String,SPSession> getLogoutHintMatchingStrategy(
             @Nullable final ProfileRequestContext profileRequestContext) {
-        return logoutHintMatchingStrategyLookupStrategy.apply(profileRequestContext);
+        return Constraint.isNotNull(logoutHintMatchingStrategyLookupStrategy.apply(profileRequestContext),
+                "Logout hint matching strategy cannot be null");
     }
 
     /**
diff --git a/oidc-common-profile-impl/src/main/java/net/shibboleth/oidc/profile/decoding/impl/HTTPPostAuthnResponseDecoder.java b/oidc-common-profile-impl/src/main/java/net/shibboleth/oidc/profile/decoding/impl/HTTPPostAuthnResponseDecoder.java
index 708436f..c129147 100644
--- a/oidc-common-profile-impl/src/main/java/net/shibboleth/oidc/profile/decoding/impl/HTTPPostAuthnResponseDecoder.java
+++ b/oidc-common-profile-impl/src/main/java/net/shibboleth/oidc/profile/decoding/impl/HTTPPostAuthnResponseDecoder.java
@@ -52,7 +52,8 @@ public class HTTPPostAuthnResponseDecoder extends AbstractHttpServletRequestMess
         
         final MessageContext messageContext = new MessageContext();
         final HttpServletRequest request = getHttpServletRequest();
-        
+
+        assert request != null;
         if (!"POST".equalsIgnoreCase(request.getMethod())) {
             throw new MessageDecodingException("This message decoder only supports the HTTP POST method");
         }
diff --git a/oidc-common-profile-impl/src/main/java/net/shibboleth/oidc/profile/decoding/impl/HTTPRedirectAuthnResponseDecoder.java b/oidc-common-profile-impl/src/main/java/net/shibboleth/oidc/profile/decoding/impl/HTTPRedirectAuthnResponseDecoder.java
index c3e0ae6..ec8e016 100644
--- a/oidc-common-profile-impl/src/main/java/net/shibboleth/oidc/profile/decoding/impl/HTTPRedirectAuthnResponseDecoder.java
+++ b/oidc-common-profile-impl/src/main/java/net/shibboleth/oidc/profile/decoding/impl/HTTPRedirectAuthnResponseDecoder.java
@@ -53,7 +53,8 @@ public class HTTPRedirectAuthnResponseDecoder extends AbstractHttpServletRequest
         
         final MessageContext messageContext = new MessageContext();
         final HttpServletRequest request = getHttpServletRequest();
-        
+
+        assert request != null;
         if (!"GET".equalsIgnoreCase(request.getMethod())) {
             throw new MessageDecodingException("This message decoder only supports the HTTP GET method");
         }
diff --git a/oidc-common-profile-impl/src/main/java/net/shibboleth/oidc/profile/encoding/impl/HTTPRedirectAuthnRequestEncoder.java b/oidc-common-profile-impl/src/main/java/net/shibboleth/oidc/profile/encoding/impl/HTTPRedirectAuthnRequestEncoder.java
index 63f146d..3b54a30 100644
--- a/oidc-common-profile-impl/src/main/java/net/shibboleth/oidc/profile/encoding/impl/HTTPRedirectAuthnRequestEncoder.java
+++ b/oidc-common-profile-impl/src/main/java/net/shibboleth/oidc/profile/encoding/impl/HTTPRedirectAuthnRequestEncoder.java
@@ -105,7 +105,9 @@ public class HTTPRedirectAuthnRequestEncoder extends AbstractOIDCMessageEncoder
             if (uri == null) {
                 throw new MessageEncodingException("No Endpoint URI available.");
             }
-            urlBuilder = new URLBuilder(uri.toString());
+            final String uriValue = uri.toString();
+            assert uriValue != null;
+            urlBuilder = new URLBuilder(uriValue);
         } catch (final MalformedURLException e) {
             throw new MessageEncodingException("Endpoint URL " + request.getEndpointURI() + " is not a valid URL", e);
         }
diff --git a/oidc-common-profile-impl/src/main/java/net/shibboleth/oidc/profile/impl/AbstractBuildErrorResponseFromEvent.java b/oidc-common-profile-impl/src/main/java/net/shibboleth/oidc/profile/impl/AbstractBuildErrorResponseFromEvent.java
index 6b915b3..36d3a8b 100644
--- a/oidc-common-profile-impl/src/main/java/net/shibboleth/oidc/profile/impl/AbstractBuildErrorResponseFromEvent.java
+++ b/oidc-common-profile-impl/src/main/java/net/shibboleth/oidc/profile/impl/AbstractBuildErrorResponseFromEvent.java
@@ -159,6 +159,7 @@ public abstract class AbstractBuildErrorResponseFromEvent<T extends ErrorRespons
             log.debug("{} No mapped event found for {}, creating general {}", getLogPrefix(), event, defaultCode);
             error = new ErrorObject(defaultCode, event, defaultStatusCode);
         }
+        assert error != null;
         final ErrorResponse errorResponse = buildErrorResponse(error, profileRequestContext);
         if (errorResponse != null) {
             profileRequestContext.ensureOutboundMessageContext()
diff --git a/oidc-common-profile-impl/src/main/java/net/shibboleth/oidc/profile/impl/PopulateJWTDecryptionParameters.java b/oidc-common-profile-impl/src/main/java/net/shibboleth/oidc/profile/impl/PopulateJWTDecryptionParameters.java
index d46474c..6126344 100644
--- a/oidc-common-profile-impl/src/main/java/net/shibboleth/oidc/profile/impl/PopulateJWTDecryptionParameters.java
+++ b/oidc-common-profile-impl/src/main/java/net/shibboleth/oidc/profile/impl/PopulateJWTDecryptionParameters.java
@@ -91,9 +91,11 @@ public class PopulateJWTDecryptionParameters extends AbstractProfileAction {
      */
     public PopulateJWTDecryptionParameters() {
         // Create context by default.
-        securityParametersContextLookupStrategy =
+        final Function<ProfileRequestContext,SecurityParametersContext> spcls =
                 new ChildContextLookup<>(SecurityParametersContext.class, true).compose(
                         new InboundMessageContextLookup());
+        assert spcls != null;
+        securityParametersContextLookupStrategy = spcls;
         oidcClientMetadataContextLookupStrategy = new ChildContextLookup<>(OIDCMetadataContext.class).compose(
                 new InboundMessageContextLookup());
         relyingPartyContextLookupStrategy = new ChildContextLookup<>(RelyingPartyContext.class);
diff --git a/oidc-common-profile-impl/src/main/java/net/shibboleth/oidc/profile/impl/PopulateJWTEncryptionParameters.java b/oidc-common-profile-impl/src/main/java/net/shibboleth/oidc/profile/impl/PopulateJWTEncryptionParameters.java
index c2c46ca..51c4eeb 100644
--- a/oidc-common-profile-impl/src/main/java/net/shibboleth/oidc/profile/impl/PopulateJWTEncryptionParameters.java
+++ b/oidc-common-profile-impl/src/main/java/net/shibboleth/oidc/profile/impl/PopulateJWTEncryptionParameters.java
@@ -118,9 +118,11 @@ public class PopulateJWTEncryptionParameters extends AbstractProfileAction {
     public PopulateJWTEncryptionParameters() {
         forFriendlyName = "not-specified";
         encryptionOptionalPredicate = new EncryptionOptionalPredicate();
-        securityParametersContextLookupStrategy =
+        final Function<ProfileRequestContext,SecurityParametersContext> spcls =
                 new ChildContextLookup<>(SecurityParametersContext.class, true).compose(
                         new OutboundMessageContextLookup());
+        assert spcls != null;
+        securityParametersContextLookupStrategy = spcls;
         oidcClientMetadataContextLookupStrategy = new ChildContextLookup<>(OIDCMetadataContext.class);
         oidcProviderMetadataContextLookupStrategy = new ChildContextLookup<>(OIDCProviderMetadataContext.class);
         relyingPartyContextLookupStrategy =  new ChildContextLookup<>(RelyingPartyContext.class);
diff --git a/oidc-common-profile-impl/src/main/java/net/shibboleth/oidc/profile/impl/PopulateJWTSignatureSigningParameters.java b/oidc-common-profile-impl/src/main/java/net/shibboleth/oidc/profile/impl/PopulateJWTSignatureSigningParameters.java
index e426a43..cb8981d 100644
--- a/oidc-common-profile-impl/src/main/java/net/shibboleth/oidc/profile/impl/PopulateJWTSignatureSigningParameters.java
+++ b/oidc-common-profile-impl/src/main/java/net/shibboleth/oidc/profile/impl/PopulateJWTSignatureSigningParameters.java
@@ -95,10 +95,12 @@ public class PopulateJWTSignatureSigningParameters
         setErrorEvent(EventIds.INVALID_SEC_CFG);
         
         // Create context by default on the outbound context
-        securityParametersContextLookupStrategy =
+        final Function<ProfileRequestContext,SecurityParametersContext> spcls =
                 new ChildContextLookup<>(SecurityParametersContext.class, true).compose(
                         new OutboundMessageContextLookup());
-        
+        assert spcls != null;
+        securityParametersContextLookupStrategy = spcls;
+
         noResultIsError = false;
     }
     
@@ -210,9 +212,7 @@ public class PopulateJWTSignatureSigningParameters
         assert configurationLookupStrategy != null;
         delegate.setConfigurationLookupStrategy(adaptRequired(configurationLookupStrategy));
         
-        if (securityParametersContextLookupStrategy != null) {
-            delegate.setSecurityParametersContextLookupStrategy(adaptRequired(securityParametersContextLookupStrategy));
-        }
+        delegate.setSecurityParametersContextLookupStrategy(adaptRequired(securityParametersContextLookupStrategy));
         delegate.setExistingParametersContextLookupStrategy(adapt(existingParametersContextLookupStrategy));
         if (oidcClientMetadataContextLookupStrategy != null) {
             delegate.setClientMetadataContextLookupStrategy(adaptRequired(oidcClientMetadataContextLookupStrategy));
diff --git a/oidc-common-profile-impl/src/main/java/net/shibboleth/oidc/profile/impl/PopulateJWTSignatureSigningParametersHandler.java b/oidc-common-profile-impl/src/main/java/net/shibboleth/oidc/profile/impl/PopulateJWTSignatureSigningParametersHandler.java
index f37e37e..e1f0390 100644
--- a/oidc-common-profile-impl/src/main/java/net/shibboleth/oidc/profile/impl/PopulateJWTSignatureSigningParametersHandler.java
+++ b/oidc-common-profile-impl/src/main/java/net/shibboleth/oidc/profile/impl/PopulateJWTSignatureSigningParametersHandler.java
@@ -110,11 +110,16 @@ public class PopulateJWTSignatureSigningParametersHandler extends AbstractMessag
         oidcClientMetadataContextLookupStrategy = new ChildContextLookup<>(OIDCMetadataContext.class);
         // Locate directly under input context.
         oidcProviderMetadataContextLookupStrategy = new ChildContextLookup<>(OIDCProviderMetadataContext.class);
-        relyingPartyContextLookupStrategy =  new ChildContextLookup<>(RelyingPartyContext.class)
+        final Function<MessageContext, RelyingPartyContext> rpcls = new ChildContextLookup<>(RelyingPartyContext.class)
                 .compose(new RecursiveTypedParentContextLookup<>(ProfileRequestContext.class));
+        assert rpcls != null;
+        relyingPartyContextLookupStrategy = rpcls;
         // Default: msg context -> SAMLPeerEntityContext -> SAMLMetadataContext
-        metadataContextLookupStrategy = new ChildContextLookup<>(SAMLMetadataContext.class).compose(
-                new ChildContextLookup<>(SAMLPeerEntityContext.class));
+        final Function<MessageContext, SAMLMetadataContext> mcls =
+                new ChildContextLookup<>(SAMLMetadataContext.class).compose(
+                        new ChildContextLookup<>(SAMLPeerEntityContext.class));
+        assert mcls != null;
+        metadataContextLookupStrategy = mcls;
     }
     
     /**
diff --git a/oidc-common-profile-impl/src/main/java/net/shibboleth/oidc/profile/impl/PopulateJWTSignatureValidationParameters.java b/oidc-common-profile-impl/src/main/java/net/shibboleth/oidc/profile/impl/PopulateJWTSignatureValidationParameters.java
index 31c6412..000448a 100644
--- a/oidc-common-profile-impl/src/main/java/net/shibboleth/oidc/profile/impl/PopulateJWTSignatureValidationParameters.java
+++ b/oidc-common-profile-impl/src/main/java/net/shibboleth/oidc/profile/impl/PopulateJWTSignatureValidationParameters.java
@@ -70,9 +70,11 @@ public class PopulateJWTSignatureValidationParameters
         super(PopulateJWTSignatureValidationParametersHandler.class, strategy);
         
         // Create context by default.
-        securityParametersContextLookupStrategy =
+        final Function<ProfileRequestContext,SecurityParametersContext> spcls =
                 new ChildContextLookup<>(SecurityParametersContext.class, true).compose(
                         new InboundMessageContextLookup());
+        assert spcls != null;
+        securityParametersContextLookupStrategy = spcls;
     }
 
     /**
diff --git a/oidc-common-profile-impl/src/main/java/net/shibboleth/oidc/profile/logic/ClientIDFromOIDCMetadataContextLookupFunction.java b/oidc-common-profile-impl/src/main/java/net/shibboleth/oidc/profile/logic/ClientIDFromOIDCMetadataContextLookupFunction.java
index 103c952..ed3a2b5 100644
--- a/oidc-common-profile-impl/src/main/java/net/shibboleth/oidc/profile/logic/ClientIDFromOIDCMetadataContextLookupFunction.java
+++ b/oidc-common-profile-impl/src/main/java/net/shibboleth/oidc/profile/logic/ClientIDFromOIDCMetadataContextLookupFunction.java
@@ -43,8 +43,11 @@ public class ClientIDFromOIDCMetadataContextLookupFunction
      * Constructor.
      */
     public ClientIDFromOIDCMetadataContextLookupFunction() {
-        oidcMetadataContextLookupStrategy = new ChildContextLookup<>(OIDCMetadataContext.class).compose(
-                new InboundMessageContextLookup());
+        final Function<ProfileRequestContext, OIDCMetadataContext> omcls =
+                new ChildContextLookup<>(OIDCMetadataContext.class).compose(
+                        new InboundMessageContextLookup());
+        assert omcls != null;
+        oidcMetadataContextLookupStrategy = omcls;
     }
 
     /**
diff --git a/oidc-common-profile-impl/src/main/java/net/shibboleth/oidc/profile/logic/IssuerIDFromOIDCProviderMetadataContextLookupFunction.java b/oidc-common-profile-impl/src/main/java/net/shibboleth/oidc/profile/logic/IssuerIDFromOIDCProviderMetadataContextLookupFunction.java
index 7dc1be5..768cab4 100644
--- a/oidc-common-profile-impl/src/main/java/net/shibboleth/oidc/profile/logic/IssuerIDFromOIDCProviderMetadataContextLookupFunction.java
+++ b/oidc-common-profile-impl/src/main/java/net/shibboleth/oidc/profile/logic/IssuerIDFromOIDCProviderMetadataContextLookupFunction.java
@@ -43,8 +43,11 @@ public class IssuerIDFromOIDCProviderMetadataContextLookupFunction
      * Constructor.
      */
     public IssuerIDFromOIDCProviderMetadataContextLookupFunction() {
-        oidcMetadataContextLookupStrategy = new ChildContextLookup<>(OIDCProviderMetadataContext.class).compose(
-                new InboundMessageContextLookup());
+        final Function<ProfileRequestContext, OIDCProviderMetadataContext> omcls =
+                new ChildContextLookup<>(OIDCProviderMetadataContext.class).compose(
+                        new InboundMessageContextLookup());
+        assert omcls != null;
+        oidcMetadataContextLookupStrategy = omcls;
     }
 
     /**
diff --git a/oidc-common-profile-impl/src/main/java/net/shibboleth/oidc/profile/oauth2/config/impl/AbstractOAuth2ClientAuthenticableProfileConfiguration.java b/oidc-common-profile-impl/src/main/java/net/shibboleth/oidc/profile/oauth2/config/impl/AbstractOAuth2ClientAuthenticableProfileConfiguration.java
index 79a0e9c..e9761db 100644
--- a/oidc-common-profile-impl/src/main/java/net/shibboleth/oidc/profile/oauth2/config/impl/AbstractOAuth2ClientAuthenticableProfileConfiguration.java
+++ b/oidc-common-profile-impl/src/main/java/net/shibboleth/oidc/profile/oauth2/config/impl/AbstractOAuth2ClientAuthenticableProfileConfiguration.java
@@ -152,7 +152,8 @@ public abstract class AbstractOAuth2ClientAuthenticableProfileConfiguration
     /** {@inheritDoc} */
     @Override
     @Nonnull public String getTokenEndpointAuthMethod(@Nullable final ProfileRequestContext profileRequestContext) {
-        return tokenEndpointAuthMethodLookupStrategy.apply(profileRequestContext);
+        return Constraint.isNotNull(tokenEndpointAuthMethodLookupStrategy.apply(profileRequestContext),
+                "Token endpoint auth method cannot be null");
     }
     
     /**
@@ -445,10 +446,15 @@ public abstract class AbstractOAuth2ClientAuthenticableProfileConfiguration
 
     /** {@inheritDoc} */
     @Override
-    @Nullable @Unmodifiable 
+    @Nonnull @Unmodifiable 
     public Map<String,UnregisteredClientPolicy> getUnregisteredClientPolicy(
             @Nullable final ProfileRequestContext profileRequestContext) {
-        return unregisteredClientPolicyLookupStrategy.apply(profileRequestContext);
+        final Map<String,UnregisteredClientPolicy> result = 
+                unregisteredClientPolicyLookupStrategy.apply(profileRequestContext);
+        if (result == null) {
+            return CollectionSupport.emptyMap();
+        }
+        return CollectionSupport.copyToMap(result);
     }
 
     /**
diff --git a/oidc-common-profile-impl/src/main/java/net/shibboleth/oidc/profile/oauth2/config/impl/DefaultOAuth2TokenAudienceConfiguration.java b/oidc-common-profile-impl/src/main/java/net/shibboleth/oidc/profile/oauth2/config/impl/DefaultOAuth2TokenAudienceConfiguration.java
index 72d9cff..aa95120 100644
--- a/oidc-common-profile-impl/src/main/java/net/shibboleth/oidc/profile/oauth2/config/impl/DefaultOAuth2TokenAudienceConfiguration.java
+++ b/oidc-common-profile-impl/src/main/java/net/shibboleth/oidc/profile/oauth2/config/impl/DefaultOAuth2TokenAudienceConfiguration.java
@@ -217,10 +217,11 @@ public class DefaultOAuth2TokenAudienceConfiguration extends AbstractInterceptor
       * @param lifetime lifetime of an access token in milliseconds
       */
      public void setAccessTokenLifetime(@Positive @Nonnull final Duration lifetime) {
-         Constraint.isTrue(lifetime != null && !lifetime.isZero() && !lifetime.isNegative(),
+         final Duration tokenLifetime = Constraint.isNotNull(lifetime, "Access token lifetime cannot be null");
+         Constraint.isTrue(!tokenLifetime.isZero() && !tokenLifetime.isNegative(),
                  "Access token lifetime must be greater than 0");
          
-         accessTokenLifetimeLookupStrategy = FunctionSupport.constant(lifetime);
+         accessTokenLifetimeLookupStrategy = FunctionSupport.constant(tokenLifetime);
      }
      
      /**
@@ -236,7 +237,7 @@ public class DefaultOAuth2TokenAudienceConfiguration extends AbstractInterceptor
      /** {@inheritDoc} */
      // TODO: This was added in 2.2.0 to be compatible with the access token interface 
      @Override
-     @Nonnull public BiFunction<ProfileRequestContext,Map<String,Object>,Map<String,Object>>
+     @Nullable public BiFunction<ProfileRequestContext,Map<String,Object>,Map<String,Object>>
          getAccessTokenClaimsSetManipulationStrategy(@Nullable final ProfileRequestContext profileRequestContext) {
          return accessTokenClaimsSetManipulationStrategyLookupStrategy.apply(profileRequestContext);
      }
diff --git a/oidc-common-profile-impl/src/main/java/net/shibboleth/oidc/profile/oauth2/config/impl/DefaultOAuth2TokenConfiguration.java b/oidc-common-profile-impl/src/main/java/net/shibboleth/oidc/profile/oauth2/config/impl/DefaultOAuth2TokenConfiguration.java
index 21ece91..a235592 100644
--- a/oidc-common-profile-impl/src/main/java/net/shibboleth/oidc/profile/oauth2/config/impl/DefaultOAuth2TokenConfiguration.java
+++ b/oidc-common-profile-impl/src/main/java/net/shibboleth/oidc/profile/oauth2/config/impl/DefaultOAuth2TokenConfiguration.java
@@ -117,7 +117,7 @@ public class DefaultOAuth2TokenConfiguration extends AbstractOIDCSSOConfiguratio
 
     /** {@inheritDoc} */
     @Override
-    @Nonnull
+    @Nullable
     public BiFunction<ProfileRequestContext,Map<String,Object>,Map<String,Object>>
         getRefreshTokenClaimsSetManipulationStrategy(
             @Nullable final ProfileRequestContext profileRequestContext) {
diff --git a/oidc-common-profile-impl/src/main/java/net/shibboleth/oidc/profile/oauth2/config/impl/DefaultOAuth2TokenRevocationConfiguration.java b/oidc-common-profile-impl/src/main/java/net/shibboleth/oidc/profile/oauth2/config/impl/DefaultOAuth2TokenRevocationConfiguration.java
index 755ae0d..9c85082 100644
--- a/oidc-common-profile-impl/src/main/java/net/shibboleth/oidc/profile/oauth2/config/impl/DefaultOAuth2TokenRevocationConfiguration.java
+++ b/oidc-common-profile-impl/src/main/java/net/shibboleth/oidc/profile/oauth2/config/impl/DefaultOAuth2TokenRevocationConfiguration.java
@@ -84,7 +84,7 @@ public class DefaultOAuth2TokenRevocationConfiguration extends AbstractOAuth2Tok
      * 
      * @since 2.1.0
      */
-    public void setRevocationMethod(@Nonnull @NotEmpty final OAuth2TokenRevocationMethod method) {
+    public void setRevocationMethod(@Nullable final OAuth2TokenRevocationMethod method) {
         revocationMethodLookupStrategy = FunctionSupport.constant(method != null ? method.toString() : null);
     }
 
@@ -136,10 +136,11 @@ public class DefaultOAuth2TokenRevocationConfiguration extends AbstractOAuth2Tok
      * @since 2.1.0
      */
     public void setRevocationLifetime(@Positive @Nonnull final Duration lifetime) {
-        Constraint.isTrue(lifetime != null && !lifetime.isZero() && !lifetime.isNegative(),
+        final Duration revocationLifetime = Constraint.isNotNull(lifetime, "Revocation lifetime cannot be null");
+        Constraint.isTrue(!revocationLifetime.isZero() && !revocationLifetime.isNegative(),
                 "Revocation lifetime must be greater than 0");
         
-        revocationLifetimeLookupStrategy = FunctionSupport.constant(lifetime);
+        revocationLifetimeLookupStrategy = FunctionSupport.constant(revocationLifetime);
     }
 
 }
\ No newline at end of file
diff --git a/oidc-common-profile-impl/src/test/java/net/shibboleth/oidc/profile/config/impl/OIDCCoreProtocolConfigurationTest.java b/oidc-common-profile-impl/src/test/java/net/shibboleth/oidc/profile/config/impl/OIDCCoreProtocolConfigurationTest.java
index 1f121a4..d1795e9 100644
--- a/oidc-common-profile-impl/src/test/java/net/shibboleth/oidc/profile/config/impl/OIDCCoreProtocolConfigurationTest.java
+++ b/oidc-common-profile-impl/src/test/java/net/shibboleth/oidc/profile/config/impl/OIDCCoreProtocolConfigurationTest.java
@@ -75,6 +75,7 @@ public class OIDCCoreProtocolConfigurationTest {
                         new AuthenticationContextClassReferencePrincipal("value")));
     }
 
+    @SuppressWarnings("null")
     @Test
     void testsetRefreshTokenTimeout() {
         Assert.assertEquals(config.getRefreshTokenTimeout(null), Duration.ofHours(2));
@@ -89,24 +90,28 @@ public class OIDCCoreProtocolConfigurationTest {
         Assert.assertEquals(config.getRefreshTokenTimeout(null), Duration.ofMillis(100));
     }
 
+    @SuppressWarnings("null")
     @Test
     void testsetRefreshTokenChainLifetime() {
         config.setRefreshTokenChainLifetime(Duration.ofMillis(100));
         Assert.assertEquals(config.getRefreshTokenChainLifetime(null), Duration.ofMillis(100));
     }
 
+    @SuppressWarnings("null")
     @Test
     void testsetAccessTokenLifetime() {
         config.setAccessTokenLifetime(Duration.ofMillis(100));
         Assert.assertEquals(config.getAccessTokenLifetime(null), Duration.ofMillis(100));
     }
 
+    @SuppressWarnings("null")
     @Test
     void testsetAuthorizeCodeLifetime() {
         config.setAuthorizeCodeLifetime(Duration.ofMillis(100));
         Assert.assertEquals(config.getAuthorizeCodeLifetime(null), Duration.ofMillis(100));
     }
 
+    @SuppressWarnings("null")
     @Test
     void testsetIDTokenLifetime() {
         config.setIDTokenLifetime(Duration.ofMillis(100));
diff --git a/oidc-common-profile-impl/src/test/java/net/shibboleth/oidc/profile/encoding/impl/HTTPPostAuthnRequestEncoderTest.java b/oidc-common-profile-impl/src/test/java/net/shibboleth/oidc/profile/encoding/impl/HTTPPostAuthnRequestEncoderTest.java
index fe936df..90388da 100644
--- a/oidc-common-profile-impl/src/test/java/net/shibboleth/oidc/profile/encoding/impl/HTTPPostAuthnRequestEncoderTest.java
+++ b/oidc-common-profile-impl/src/test/java/net/shibboleth/oidc/profile/encoding/impl/HTTPPostAuthnRequestEncoderTest.java
@@ -59,6 +59,7 @@ public class HTTPPostAuthnRequestEncoderTest {
     private MessageContext context;
     
     
+    @SuppressWarnings("null")
     @BeforeMethod public void setUp() throws Exception {    
         encoder = new HTTPPostAuthnRequestEncoder();      
         context = new MessageContext();
@@ -73,6 +74,7 @@ public class HTTPPostAuthnRequestEncoderTest {
         mockResponse = new MockHttpServletResponse();
         encoder.setHttpServletResponseSupplier(new ThreadLocalHttpServletResponseSupplier());
 
+        assert mockResponse != null;
     	HttpServletRequestResponseContext.loadCurrent(new MockHttpServletRequest(), mockResponse);
     }
     
diff --git a/oidc-common-profile-impl/src/test/java/net/shibboleth/oidc/profile/encoding/impl/HTTPRedirectAuthnRequestEncoderTest.java b/oidc-common-profile-impl/src/test/java/net/shibboleth/oidc/profile/encoding/impl/HTTPRedirectAuthnRequestEncoderTest.java
index 5c1739b..24aa94b 100644
--- a/oidc-common-profile-impl/src/test/java/net/shibboleth/oidc/profile/encoding/impl/HTTPRedirectAuthnRequestEncoderTest.java
+++ b/oidc-common-profile-impl/src/test/java/net/shibboleth/oidc/profile/encoding/impl/HTTPRedirectAuthnRequestEncoderTest.java
@@ -14,7 +14,6 @@
 
 package net.shibboleth.oidc.profile.encoding.impl;
 
-import static org.testng.Assert.assertNotNull;
 import static org.testng.Assert.assertTrue;
 
 import java.net.URI;
@@ -55,6 +54,7 @@ public class HTTPRedirectAuthnRequestEncoderTest {
     private MessageContext context;
     
     
+    @SuppressWarnings("null")
     @BeforeMethod public void setUp() throws Exception {    
         encoder = new HTTPRedirectAuthnRequestEncoder();      
         context = new MessageContext();
@@ -68,6 +68,7 @@ public class HTTPRedirectAuthnRequestEncoderTest {
         mockResponse = new MockHttpServletResponse();
         encoder.setHttpServletResponseSupplier(new ThreadLocalHttpServletResponseSupplier());
 
+        assert mockResponse != null;
     	HttpServletRequestResponseContext.loadCurrent(new MockHttpServletRequest(), mockResponse);
     }
     
diff --git a/oidc-common-profile-impl/src/test/java/net/shibboleth/oidc/profile/encoding/impl/SimpleNimbusResponseEncoderTest.java b/oidc-common-profile-impl/src/test/java/net/shibboleth/oidc/profile/encoding/impl/SimpleNimbusResponseEncoderTest.java
index 35a4f1f..8110200 100644
--- a/oidc-common-profile-impl/src/test/java/net/shibboleth/oidc/profile/encoding/impl/SimpleNimbusResponseEncoderTest.java
+++ b/oidc-common-profile-impl/src/test/java/net/shibboleth/oidc/profile/encoding/impl/SimpleNimbusResponseEncoderTest.java
@@ -71,6 +71,7 @@ public class SimpleNimbusResponseEncoderTest {
         mockResponse = new MockHttpServletResponse();
         encoder.setHttpServletResponseSupplier(new ThreadLocalHttpServletResponseSupplier());
 
+        assert mockResponse != null;
     	HttpServletRequestResponseContext.loadCurrent(new MockHttpServletRequest(), mockResponse);
     }
     
diff --git a/oidc-common-profile-impl/src/test/java/net/shibboleth/oidc/profile/impl/FormOutboundKeySetResponseMessageTest.java b/oidc-common-profile-impl/src/test/java/net/shibboleth/oidc/profile/impl/FormOutboundKeySetResponseMessageTest.java
index d1343b6..ccf63a9 100644
--- a/oidc-common-profile-impl/src/test/java/net/shibboleth/oidc/profile/impl/FormOutboundKeySetResponseMessageTest.java
+++ b/oidc-common-profile-impl/src/test/java/net/shibboleth/oidc/profile/impl/FormOutboundKeySetResponseMessageTest.java
@@ -189,7 +189,7 @@ public class FormOutboundKeySetResponseMessageTest {
     private static class MockReturnAllCollectionJOSEObjectCredentialResolver implements JOSEObjectCredentialResolver {
         
         /** List of credentials held by this resolver. */
-        private final List<Credential> collection;
+        @Nonnull private final List<Credential> collection;
         
         /**
          * Constructor.

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


More information about the commits mailing list