[java-shib-attribute] 01/02: IDP-2069 Null handling task

Rod Widdowson rdw at steadingsoftware.com
Wed May 3 15:29:15 UTC 2023


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

rdw pushed a commit to branch main
in repository java-shib-attribute.

View the commit online:
http://git.shibboleth.net/view/?p=java-shib-attribute.git;a=commit;h=27dfcd5e663cbbdfcb066ac64a951e46920e10b4

commit 27dfcd5e663cbbdfcb066ac64a951e46920e10b4
Author: Rod Widdowson <rdw at steadingsoftware.com>
AuthorDate: Wed May 3 16:11:46 2023 +0100

    IDP-2069 Null handling task
    
    https://shibboleth.atlassian.net/browse/IDP-2069
    
    Remove all warning from attribute-filter-api and -impl
    (including tests)
---
 .../attribute/filter/MatcherFromPolicyTest.java    |  2 +-
 .../context/AttributeFilterWorkContextTest.java    |  8 ++--
 .../saml/impl/AbstractEntityGroupPolicyRule.java   |  6 ++-
 .../impl/AbstractMatcherPolicyRuleTest.java        | 24 ++++++++++++
 .../impl/AbstractRegexpStringMatcherTest.java      | 22 +++++++----
 .../matcher/impl/AbstractStringMatcherTest.java    |  6 ++-
 .../impl/AttributeScopeRegexpMatcherTest.java      |  4 +-
 .../impl/AttributeValueRegexpMatcherTest.java      |  8 +++-
 .../attribute/filter/matcher/impl/DataSources.java |  2 +-
 .../matcher/impl/MockValuePredicateMatcher.java    |  8 ++--
 .../filter/matcher/impl/ScriptedMatcherTest.java   | 13 ++++---
 .../filter/matcher/logic/impl/AndMatcherTest.java  | 10 ++---
 .../filter/matcher/logic/impl/NotMatcherTest.java  | 13 ++++---
 .../filter/matcher/logic/impl/OrMatcherTest.java   | 12 ++++--
 .../impl/MappedAttributeInMetadataMatcherTest.java |  1 +
 .../saml/impl/ScopeMatchesShibMDScopeTests.java    |  1 +
 .../impl/AttributeIssuerRegexpPolicyRuleTest.java  |  4 +-
 .../AttributeRequesterRegexpPolicyRuleTest.java    |  4 +-
 .../impl/NumOfAttributeValuesPolicyRuleTest.java   | 10 +++--
 .../impl/PrincipalNameRegexpPolicyRuleTest.java    |  4 +-
 .../impl/ProxiedRequesterRegexpPolicyRuleTest.java |  4 +-
 .../policyrule/impl/ScriptedPolicyRuleTest.java    | 27 +++++++------
 .../policyrule/saml/impl/BaseMetadataTests.java    | 14 ++++---
 .../saml/impl/IssuerRegistrationAuthorityTest.java | 13 +++----
 ...equesterEntityAttributeExactPolicyRuleTest.java |  4 +-
 .../impl/RequesterRegistrationAuthorityTest.java   | 13 +++----
 .../filter/tests/AttributeFilterPolicyTest.java    | 45 +++++++++++++++-------
 27 files changed, 188 insertions(+), 94 deletions(-)

diff --git a/shib-attribute-filter-api/src/test/java/net/shibboleth/idp/attribute/filter/MatcherFromPolicyTest.java b/shib-attribute-filter-api/src/test/java/net/shibboleth/idp/attribute/filter/MatcherFromPolicyTest.java
index d1606306f..4bf489791 100644
--- a/shib-attribute-filter-api/src/test/java/net/shibboleth/idp/attribute/filter/MatcherFromPolicyTest.java
+++ b/shib-attribute-filter-api/src/test/java/net/shibboleth/idp/attribute/filter/MatcherFromPolicyTest.java
@@ -28,7 +28,7 @@ import org.testng.annotations.Test;
 /**
  * test for {@link MatcherFromPolicy}.
  */
- at SuppressWarnings("javadoc")
+ at SuppressWarnings({"javadoc", "null"})
 public class MatcherFromPolicyTest extends BaseBridgingClassTester {
     
 
diff --git a/shib-attribute-filter-api/src/test/java/net/shibboleth/idp/attribute/filter/context/AttributeFilterWorkContextTest.java b/shib-attribute-filter-api/src/test/java/net/shibboleth/idp/attribute/filter/context/AttributeFilterWorkContextTest.java
index 0178a69c6..7c77216ea 100644
--- a/shib-attribute-filter-api/src/test/java/net/shibboleth/idp/attribute/filter/context/AttributeFilterWorkContextTest.java
+++ b/shib-attribute-filter-api/src/test/java/net/shibboleth/idp/attribute/filter/context/AttributeFilterWorkContextTest.java
@@ -20,6 +20,8 @@ package net.shibboleth.idp.attribute.filter.context;
 import java.util.ArrayList;
 import java.util.Arrays;
 
+import javax.annotation.Nonnull;
+
 import net.shibboleth.idp.attribute.IdPAttribute;
 import net.shibboleth.idp.attribute.IdPAttributeValue;
 import net.shibboleth.idp.attribute.StringAttributeValue;
@@ -33,11 +35,11 @@ import org.testng.annotations.Test;
 /** Unit test for {@link AttributeFilterContext}. */
 public class AttributeFilterWorkContextTest {
 
-    private final StringAttributeValue aStringAttributeValue = new StringAttributeValue("a");
+    @Nonnull private final StringAttributeValue aStringAttributeValue = new StringAttributeValue("a");
 
-    private final StringAttributeValue bStringAttributeValue = new StringAttributeValue("b");
+    @Nonnull private final StringAttributeValue bStringAttributeValue = new StringAttributeValue("b");
 
-    private final StringAttributeValue cStringAttributeValue = new StringAttributeValue("c");
+    @Nonnull private final StringAttributeValue cStringAttributeValue = new StringAttributeValue("c");
 
 
 
diff --git a/shib-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filter/policyrule/saml/impl/AbstractEntityGroupPolicyRule.java b/shib-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filter/policyrule/saml/impl/AbstractEntityGroupPolicyRule.java
index c6887fbae..7943e58fe 100644
--- a/shib-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filter/policyrule/saml/impl/AbstractEntityGroupPolicyRule.java
+++ b/shib-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filter/policyrule/saml/impl/AbstractEntityGroupPolicyRule.java
@@ -17,6 +17,7 @@
 
 package net.shibboleth.idp.attribute.filter.policyrule.saml.impl;
 
+import java.util.Set;
 import java.util.function.Predicate;
 
 import javax.annotation.Nonnull;
@@ -125,9 +126,10 @@ public abstract class AbstractEntityGroupPolicyRule extends AbstractPolicyRule {
         if (entity == null) {
             return Tristate.FALSE;
         }
-
+        assert entityGroup!=null;
+        final Set<String> entityGroupAsSet = CollectionSupport.singleton(entityGroup);
         final Predicate<EntityDescriptor> predicate =
-                new EntityGroupNamePredicate(CollectionSupport.singleton(entityGroup),
+                new EntityGroupNamePredicate(entityGroupAsSet,
                         checkAffiliations ? input.getMetadataResolver() : null);
         
         return predicate.test(entity) ? Tristate.TRUE : Tristate.FALSE;
diff --git a/shib-attribute-filter-impl/src/test/java/net/shibboleth/idp/attribute/filter/matcher/impl/AbstractMatcherPolicyRuleTest.java b/shib-attribute-filter-impl/src/test/java/net/shibboleth/idp/attribute/filter/matcher/impl/AbstractMatcherPolicyRuleTest.java
index 62c17a21b..244407b72 100644
--- a/shib-attribute-filter-impl/src/test/java/net/shibboleth/idp/attribute/filter/matcher/impl/AbstractMatcherPolicyRuleTest.java
+++ b/shib-attribute-filter-impl/src/test/java/net/shibboleth/idp/attribute/filter/matcher/impl/AbstractMatcherPolicyRuleTest.java
@@ -17,11 +17,16 @@
 
 package net.shibboleth.idp.attribute.filter.matcher.impl;
 
+import static com.google.common.base.Predicates.equalTo;
+
 import java.util.Arrays;
 
 import javax.annotation.Nonnull;
 
+import com.google.common.base.Predicate;
+
 import net.shibboleth.idp.attribute.IdPAttribute;
+import net.shibboleth.idp.attribute.IdPAttributeValue;
 import net.shibboleth.idp.attribute.StringAttributeValue;
 import net.shibboleth.idp.attribute.filter.Matcher;
 import net.shibboleth.idp.attribute.filter.PolicyRequirementRule;
@@ -45,6 +50,25 @@ public abstract class AbstractMatcherPolicyRuleTest {
     /** Current filter context. */
     @Nonnull protected AttributeFilterContext filterContext = new AttributeFilterContext();
 
+    
+    @Nonnull protected Predicate<? super IdPAttributeValue> equalValue1() {
+        final Predicate<? super IdPAttributeValue> veq = equalTo(value1);
+        assert veq != null;
+        return veq;
+    }
+    
+    @Nonnull protected Predicate<? super IdPAttributeValue> equalValue2() {
+        final Predicate<? super IdPAttributeValue> veq = equalTo(value2);
+        assert veq != null;
+        return veq;
+    }
+
+    @Nonnull protected Predicate<? super IdPAttributeValue> equalValue3() {
+        final Predicate<? super IdPAttributeValue> veq = equalTo(value3);
+        assert veq != null;
+        return veq;
+    }
+
     /**
      * Initializes classes protected fields.
      */
diff --git a/shib-attribute-filter-impl/src/test/java/net/shibboleth/idp/attribute/filter/matcher/impl/AbstractRegexpStringMatcherTest.java b/shib-attribute-filter-impl/src/test/java/net/shibboleth/idp/attribute/filter/matcher/impl/AbstractRegexpStringMatcherTest.java
index 7f452ab92..9d5413aec 100644
--- a/shib-attribute-filter-impl/src/test/java/net/shibboleth/idp/attribute/filter/matcher/impl/AbstractRegexpStringMatcherTest.java
+++ b/shib-attribute-filter-impl/src/test/java/net/shibboleth/idp/attribute/filter/matcher/impl/AbstractRegexpStringMatcherTest.java
@@ -23,6 +23,8 @@ import static org.testng.Assert.assertTrue;
 
 import java.util.regex.Pattern;
 
+import javax.annotation.Nonnull;
+
 import org.testng.annotations.Test;
 
 import net.shibboleth.idp.attribute.IdPAttributeValue;
@@ -31,16 +33,19 @@ import net.shibboleth.shared.component.ComponentInitializationException;
 /**
  * Tests for {@link AbstractRegexpStringMatcher}
  */
- at SuppressWarnings("javadoc")
+ at SuppressWarnings({"javadoc"})
 public class AbstractRegexpStringMatcherTest {
 
     @Test public void testApply() throws ComponentInitializationException {
         AbstractRegexpStringMatcher predicate = new AbstractRegexpStringMatcher() {
 
-            protected boolean compareAttributeValue(IdPAttributeValue value) {
+            protected boolean compareAttributeValue(@Nonnull IdPAttributeValue value) {
                 return false;
-            }};
-        predicate.setPattern(Pattern.compile(DataSources.TEST_REGEX));
+            }
+        };
+        Pattern pat = Pattern.compile(DataSources.TEST_REGEX);
+        assert pat != null;
+        predicate.setPattern(pat);
         predicate.setId("od");
         predicate.initialize();
 
@@ -51,10 +56,13 @@ public class AbstractRegexpStringMatcherTest {
 
         predicate = new AbstractRegexpStringMatcher() {
 
-            protected boolean compareAttributeValue(IdPAttributeValue value) {
+            protected boolean compareAttributeValue(@Nonnull IdPAttributeValue value) {
                 return false;
-            }};
-        predicate.setPattern(Pattern.compile("^p.*"));
+            }
+        };
+        pat = Pattern.compile("^p.*");
+        assert pat != null;
+        predicate.setPattern(pat);
         predicate.setId("od");
         predicate.initialize();
         assertFalse(predicate.regexpCompare(DataSources.TEST_STRING));
diff --git a/shib-attribute-filter-impl/src/test/java/net/shibboleth/idp/attribute/filter/matcher/impl/AbstractStringMatcherTest.java b/shib-attribute-filter-impl/src/test/java/net/shibboleth/idp/attribute/filter/matcher/impl/AbstractStringMatcherTest.java
index 88fb6398f..b8a9a310b 100644
--- a/shib-attribute-filter-impl/src/test/java/net/shibboleth/idp/attribute/filter/matcher/impl/AbstractStringMatcherTest.java
+++ b/shib-attribute-filter-impl/src/test/java/net/shibboleth/idp/attribute/filter/matcher/impl/AbstractStringMatcherTest.java
@@ -22,6 +22,8 @@ import static org.testng.Assert.assertFalse;
 import static org.testng.Assert.assertNull;
 import static org.testng.Assert.assertTrue;
 
+import javax.annotation.Nonnull;
+
 import org.testng.annotations.Test;
 
 import net.shibboleth.idp.attribute.IdPAttributeValue;
@@ -36,7 +38,7 @@ public class AbstractStringMatcherTest {
         AbstractStringMatcher matcher = new AbstractStringMatcher(){
 
             @Override
-            protected boolean compareAttributeValue(IdPAttributeValue value) {
+            protected boolean compareAttributeValue(@Nonnull IdPAttributeValue value) {
                 return false;
             }};
 
@@ -56,7 +58,7 @@ public class AbstractStringMatcherTest {
         AbstractStringMatcher matcher = new AbstractStringMatcher() {
 
             @Override
-            protected boolean compareAttributeValue(IdPAttributeValue value) {
+            protected boolean compareAttributeValue(@Nonnull IdPAttributeValue value) {
                 return false;
             }};
         matcher.setCaseSensitive(true);
diff --git a/shib-attribute-filter-impl/src/test/java/net/shibboleth/idp/attribute/filter/matcher/impl/AttributeScopeRegexpMatcherTest.java b/shib-attribute-filter-impl/src/test/java/net/shibboleth/idp/attribute/filter/matcher/impl/AttributeScopeRegexpMatcherTest.java
index e388b2967..439c813dd 100644
--- a/shib-attribute-filter-impl/src/test/java/net/shibboleth/idp/attribute/filter/matcher/impl/AttributeScopeRegexpMatcherTest.java
+++ b/shib-attribute-filter-impl/src/test/java/net/shibboleth/idp/attribute/filter/matcher/impl/AttributeScopeRegexpMatcherTest.java
@@ -34,7 +34,9 @@ public class AttributeScopeRegexpMatcherTest {
     
     @Test public void testApply() throws ComponentInitializationException {
         AttributeScopeRegexpMatcher matcher = new AttributeScopeRegexpMatcher();
-        matcher.setPattern(Pattern.compile(DataSources.TEST_REGEX));
+        final Pattern pat = Pattern.compile(DataSources.TEST_REGEX);
+        assert pat!=null;
+        matcher.setPattern(pat);
         matcher.setId("TestId");
         matcher.initialize();
         
diff --git a/shib-attribute-filter-impl/src/test/java/net/shibboleth/idp/attribute/filter/matcher/impl/AttributeValueRegexpMatcherTest.java b/shib-attribute-filter-impl/src/test/java/net/shibboleth/idp/attribute/filter/matcher/impl/AttributeValueRegexpMatcherTest.java
index 5cfc7e153..a80926e90 100644
--- a/shib-attribute-filter-impl/src/test/java/net/shibboleth/idp/attribute/filter/matcher/impl/AttributeValueRegexpMatcherTest.java
+++ b/shib-attribute-filter-impl/src/test/java/net/shibboleth/idp/attribute/filter/matcher/impl/AttributeValueRegexpMatcherTest.java
@@ -35,7 +35,9 @@ public class AttributeValueRegexpMatcherTest {
     
     @Test public void testApply() throws ComponentInitializationException {
         AttributeValueRegexpMatcher matcher = new AttributeValueRegexpMatcher();
-        matcher.setPattern(Pattern.compile(DataSources.TEST_REGEX));
+        Pattern pat = Pattern.compile(DataSources.TEST_REGEX);
+        assert pat != null;
+        matcher.setPattern(pat);
         matcher.setId("Test");
         matcher.initialize();
         
@@ -50,7 +52,9 @@ public class AttributeValueRegexpMatcherTest {
         assertTrue(matcher.compareAttributeValue(DataSources.OTHER_VALUE));
         
         matcher = new AttributeValueRegexpMatcher();
-        matcher.setPattern(Pattern.compile(DataSources.TEST_REGEX, Pattern.CASE_INSENSITIVE));
+        pat = Pattern.compile(DataSources.TEST_REGEX, Pattern.CASE_INSENSITIVE);
+        assert pat != null;
+        matcher.setPattern(pat);
         matcher.setId("Test");
         matcher.initialize();
         assertTrue(matcher.compareAttributeValue(DataSources.STRING_VALUE));
diff --git a/shib-attribute-filter-impl/src/test/java/net/shibboleth/idp/attribute/filter/matcher/impl/DataSources.java b/shib-attribute-filter-impl/src/test/java/net/shibboleth/idp/attribute/filter/matcher/impl/DataSources.java
index a606be947..b90459838 100644
--- a/shib-attribute-filter-impl/src/test/java/net/shibboleth/idp/attribute/filter/matcher/impl/DataSources.java
+++ b/shib-attribute-filter-impl/src/test/java/net/shibboleth/idp/attribute/filter/matcher/impl/DataSources.java
@@ -33,7 +33,7 @@ import org.opensaml.profile.context.ProfileRequestContext;
 /**
  * Strings and such used for testing.
  */
- at SuppressWarnings("javadoc")
+ at SuppressWarnings({"javadoc", "null"})
 public abstract class DataSources {
 
     @Nonnull @NotEmpty public final static String TEST_STRING = "nibbleahappywarthog";
diff --git a/shib-attribute-filter-impl/src/test/java/net/shibboleth/idp/attribute/filter/matcher/impl/MockValuePredicateMatcher.java b/shib-attribute-filter-impl/src/test/java/net/shibboleth/idp/attribute/filter/matcher/impl/MockValuePredicateMatcher.java
index 921a08776..8078ef30f 100644
--- a/shib-attribute-filter-impl/src/test/java/net/shibboleth/idp/attribute/filter/matcher/impl/MockValuePredicateMatcher.java
+++ b/shib-attribute-filter-impl/src/test/java/net/shibboleth/idp/attribute/filter/matcher/impl/MockValuePredicateMatcher.java
@@ -19,13 +19,15 @@ package net.shibboleth.idp.attribute.filter.matcher.impl;
 
 import java.util.function.Predicate;
 
+import javax.annotation.Nonnull;
+
 import net.shibboleth.idp.attribute.IdPAttributeValue;
 import net.shibboleth.shared.component.ComponentInitializationException;
 
 @SuppressWarnings("javadoc")
 public class MockValuePredicateMatcher extends AbstractMatcher {
 
-    Predicate<IdPAttributeValue> valuePredicate;
+    Predicate<? super IdPAttributeValue> valuePredicate;
 
     /**
      * Constructor.
@@ -34,14 +36,14 @@ public class MockValuePredicateMatcher extends AbstractMatcher {
      * 
      * @throws ComponentInitializationException ...
      */
-    public MockValuePredicateMatcher(Predicate<IdPAttributeValue> valueMatchingPredicate) throws ComponentInitializationException {
+    public MockValuePredicateMatcher(Predicate<? super IdPAttributeValue> valueMatchingPredicate) throws ComponentInitializationException {
         valuePredicate  = valueMatchingPredicate;
         setId("mock1");
         initialize();
     }
 
     /** {@inheritDoc} */
-    protected boolean compareAttributeValue(IdPAttributeValue value) {
+    protected boolean compareAttributeValue(@Nonnull IdPAttributeValue value) {
         
         return valuePredicate.test(value);
     }
diff --git a/shib-attribute-filter-impl/src/test/java/net/shibboleth/idp/attribute/filter/matcher/impl/ScriptedMatcherTest.java b/shib-attribute-filter-impl/src/test/java/net/shibboleth/idp/attribute/filter/matcher/impl/ScriptedMatcherTest.java
index 1c735e361..945f75799 100644
--- a/shib-attribute-filter-impl/src/test/java/net/shibboleth/idp/attribute/filter/matcher/impl/ScriptedMatcherTest.java
+++ b/shib-attribute-filter-impl/src/test/java/net/shibboleth/idp/attribute/filter/matcher/impl/ScriptedMatcherTest.java
@@ -28,6 +28,7 @@ import org.testng.annotations.Test;
 
 import net.shibboleth.idp.attribute.IdPAttributeValue;
 import net.shibboleth.idp.attribute.filter.context.AttributeFilterContext;
+import net.shibboleth.shared.annotation.constraint.NonnullBeforeTest;
 import net.shibboleth.shared.collection.CollectionSupport;
 import net.shibboleth.shared.component.ComponentInitializationException;
 import net.shibboleth.shared.component.DestroyedComponentException;
@@ -36,23 +37,23 @@ import net.shibboleth.shared.component.UnmodifiableComponentException;
 import net.shibboleth.shared.scripting.EvaluableScript;
 
 /** {@link ScriptedMatcher} unit test. */
- at SuppressWarnings("javadoc")
+ at SuppressWarnings({"javadoc", "null"})
 public class ScriptedMatcherTest extends AbstractMatcherPolicyRuleTest {
 
     /** A script that returns a set that contains the one of values the attribute. */
-    private EvaluableScript returnOneValueScript;
+    @NonnullBeforeTest  private EvaluableScript returnOneValueScript;
 
     /** A script that returns null. */
-    private EvaluableScript nullReturnScript;
+    @NonnullBeforeTest private EvaluableScript nullReturnScript;
 
     /** A script that returns an object other than a set. */
-    private EvaluableScript invalidReturnObjectScript;
+    @NonnullBeforeTest private EvaluableScript invalidReturnObjectScript;
 
     /** A script that returns a set contain values that were not attribute values. */
-    private EvaluableScript addedValuesScript;
+    @NonnullBeforeTest private EvaluableScript addedValuesScript;
 
     /** A script that returns a set containing the prc name. */
-    private EvaluableScript prcscScript;
+    @NonnullBeforeTest private EvaluableScript prcscScript;
 
     @BeforeClass public void setup() throws Exception {
         super.setUp();
diff --git a/shib-attribute-filter-impl/src/test/java/net/shibboleth/idp/attribute/filter/matcher/logic/impl/AndMatcherTest.java b/shib-attribute-filter-impl/src/test/java/net/shibboleth/idp/attribute/filter/matcher/logic/impl/AndMatcherTest.java
index 12b456eb0..05be38da3 100644
--- a/shib-attribute-filter-impl/src/test/java/net/shibboleth/idp/attribute/filter/matcher/logic/impl/AndMatcherTest.java
+++ b/shib-attribute-filter-impl/src/test/java/net/shibboleth/idp/attribute/filter/matcher/logic/impl/AndMatcherTest.java
@@ -52,8 +52,8 @@ public class AndMatcherTest extends AbstractMatcherPolicyRuleTest {
 
     @Test public void testSingleton() throws Exception {
         final AndMatcher matcher =
-                newAndMatcher(CollectionSupport.singletonList((Matcher) new MockValuePredicateMatcher(PredicateSupport.or(equalTo(value1),
-                        equalTo(value2)))));
+                newAndMatcher(CollectionSupport.singletonList((Matcher) new MockValuePredicateMatcher(PredicateSupport.or(equalValue1(),
+                        equalValue2()))));
 
         matcher.setId("test");
         matcher.initialize();
@@ -69,8 +69,8 @@ public class AndMatcherTest extends AbstractMatcherPolicyRuleTest {
     @Test public void testGetMatchingValues() throws Exception {
         final AndMatcher matcher =
                 newAndMatcher(CollectionSupport.arrayAsList(
-                        new MockValuePredicateMatcher(PredicateSupport.or(equalTo(value1), equalTo(value2))),
-                        new MockValuePredicateMatcher(PredicateSupport.or(equalTo(value2), equalTo(value3)))));
+                        new MockValuePredicateMatcher(PredicateSupport.or(equalValue1(), equalValue2())),
+                        new MockValuePredicateMatcher(PredicateSupport.or(equalValue2(), equalValue3()))));
 
         try {
             matcher.getMatchingValues(attribute, filterContext);
@@ -122,7 +122,7 @@ public class AndMatcherTest extends AbstractMatcherPolicyRuleTest {
     @Test public void emptyResults() throws ComponentInitializationException {
         final AndMatcher matcher =
                 newAndMatcher(CollectionSupport.arrayAsList(
-                        new MockValuePredicateMatcher(PredicateSupport.or(equalTo(value1), equalTo(value2))),
+                        new MockValuePredicateMatcher(PredicateSupport.or(equalValue1(), equalValue2())),
                         new MockValuePredicateMatcher(equalTo(value3))));
 
         matcher.setId("Test");
diff --git a/shib-attribute-filter-impl/src/test/java/net/shibboleth/idp/attribute/filter/matcher/logic/impl/NotMatcherTest.java b/shib-attribute-filter-impl/src/test/java/net/shibboleth/idp/attribute/filter/matcher/logic/impl/NotMatcherTest.java
index 24c85f6fa..f9a74380f 100644
--- a/shib-attribute-filter-impl/src/test/java/net/shibboleth/idp/attribute/filter/matcher/logic/impl/NotMatcherTest.java
+++ b/shib-attribute-filter-impl/src/test/java/net/shibboleth/idp/attribute/filter/matcher/logic/impl/NotMatcherTest.java
@@ -17,8 +17,11 @@
 
 package net.shibboleth.idp.attribute.filter.matcher.logic.impl;
 
-import static com.google.common.base.Predicates.equalTo;
-import static org.testng.Assert.*;
+import static org.testng.Assert.assertEquals;
+import static org.testng.Assert.assertFalse;
+import static org.testng.Assert.assertNull;
+import static org.testng.Assert.assertTrue;
+import static org.testng.Assert.fail;
 
 import java.util.Set;
 
@@ -72,7 +75,7 @@ public class NotMatcherTest extends AbstractMatcherPolicyRuleTest {
     }
 
     @Test public void testGetMatchingValues() throws Exception {
-        NotMatcher matcher = newNotMatcher(new MockValuePredicateMatcher(PredicateSupport.or(equalTo(value1), equalTo(value2))));
+        NotMatcher matcher = newNotMatcher(new MockValuePredicateMatcher(PredicateSupport.or(equalValue1(), equalValue2())));
         matcher.setId("test");
         matcher.initialize();
 
@@ -89,8 +92,8 @@ public class NotMatcherTest extends AbstractMatcherPolicyRuleTest {
         }
 
         final OrMatcher orMatcher =
-               OrMatcherTest.newOrMatcher(CollectionSupport.listOf(new MockValuePredicateMatcher(equalTo(value1)),
-                        new MockValuePredicateMatcher(equalTo(value2)), new MockValuePredicateMatcher(equalTo(value3))));
+               OrMatcherTest.newOrMatcher(CollectionSupport.listOf(new MockValuePredicateMatcher(equalValue1()),
+                        new MockValuePredicateMatcher(equalValue2()), new MockValuePredicateMatcher(equalValue3())));
 
         orMatcher.setId("or");
         matcher = newNotMatcher(orMatcher);
diff --git a/shib-attribute-filter-impl/src/test/java/net/shibboleth/idp/attribute/filter/matcher/logic/impl/OrMatcherTest.java b/shib-attribute-filter-impl/src/test/java/net/shibboleth/idp/attribute/filter/matcher/logic/impl/OrMatcherTest.java
index 47e7f7dc5..26b8d0f75 100644
--- a/shib-attribute-filter-impl/src/test/java/net/shibboleth/idp/attribute/filter/matcher/logic/impl/OrMatcherTest.java
+++ b/shib-attribute-filter-impl/src/test/java/net/shibboleth/idp/attribute/filter/matcher/logic/impl/OrMatcherTest.java
@@ -18,7 +18,10 @@
 package net.shibboleth.idp.attribute.filter.matcher.logic.impl;
 
 import static com.google.common.base.Predicates.equalTo;
-import static org.testng.Assert.*;
+import static org.testng.Assert.assertEquals;
+import static org.testng.Assert.assertNull;
+import static org.testng.Assert.assertTrue;
+import static org.testng.Assert.fail;
 
 import java.util.List;
 import java.util.Set;
@@ -49,9 +52,10 @@ public class OrMatcherTest extends AbstractMatcherPolicyRuleTest {
     }
     
     @Test public void testSingleton() throws Exception {
+        
         final OrMatcher matcher =
-                newOrMatcher(CollectionSupport.singletonList((Matcher) new MockValuePredicateMatcher(PredicateSupport.or(equalTo(value1),
-                        equalTo(value2)))));
+                newOrMatcher(CollectionSupport.singletonList((Matcher) new MockValuePredicateMatcher(PredicateSupport.or(equalValue1(),
+                        equalValue2()))));
 
         matcher.setId("test");
         matcher.initialize();
@@ -68,7 +72,7 @@ public class OrMatcherTest extends AbstractMatcherPolicyRuleTest {
     @Test public void testGetMatchingValues() throws Exception {
         OrMatcher matcher =
                 newOrMatcher(CollectionSupport.listOf(
-                        new MockValuePredicateMatcher(PredicateSupport.or(equalTo(value1), equalTo(value2))),
+                        new MockValuePredicateMatcher(PredicateSupport.or(equalValue1(), equalValue2())),
                         new MockValuePredicateMatcher(equalTo(value2))));
 
         try {
diff --git a/shib-attribute-filter-impl/src/test/java/net/shibboleth/idp/attribute/filter/matcher/saml/impl/MappedAttributeInMetadataMatcherTest.java b/shib-attribute-filter-impl/src/test/java/net/shibboleth/idp/attribute/filter/matcher/saml/impl/MappedAttributeInMetadataMatcherTest.java
index 122158d90..d4f70e615 100644
--- a/shib-attribute-filter-impl/src/test/java/net/shibboleth/idp/attribute/filter/matcher/saml/impl/MappedAttributeInMetadataMatcherTest.java
+++ b/shib-attribute-filter-impl/src/test/java/net/shibboleth/idp/attribute/filter/matcher/saml/impl/MappedAttributeInMetadataMatcherTest.java
@@ -101,6 +101,7 @@ public class MappedAttributeInMetadataMatcherTest extends OpenSAMLInitBaseTestCa
 
         if (null != attributeId) {
             final Multimap<String, IdPAttribute> multimap = ArrayListMultimap.create();
+            assert multimap != null;
             if (attribute != null) {
                 multimap.put(attributeId, attribute);
             }
diff --git a/shib-attribute-filter-impl/src/test/java/net/shibboleth/idp/attribute/filter/matcher/saml/impl/ScopeMatchesShibMDScopeTests.java b/shib-attribute-filter-impl/src/test/java/net/shibboleth/idp/attribute/filter/matcher/saml/impl/ScopeMatchesShibMDScopeTests.java
index 42b25ac02..5836ffc54 100644
--- a/shib-attribute-filter-impl/src/test/java/net/shibboleth/idp/attribute/filter/matcher/saml/impl/ScopeMatchesShibMDScopeTests.java
+++ b/shib-attribute-filter-impl/src/test/java/net/shibboleth/idp/attribute/filter/matcher/saml/impl/ScopeMatchesShibMDScopeTests.java
@@ -80,6 +80,7 @@ public class ScopeMatchesShibMDScopeTests extends XMLObjectBaseTestCase {
                         new ClassPathResource("/net/shibboleth/idp/filter/impl/saml/shibmd-metadata.xml")));
         resolver.setMetadataFilter(filter);
         resolver.setId("resolver");
+        assert parserPool!=null;
         resolver.setParserPool(parserPool);
         resolver.initialize();
     }
diff --git a/shib-attribute-filter-impl/src/test/java/net/shibboleth/idp/attribute/filter/policyrule/filtercontext/impl/AttributeIssuerRegexpPolicyRuleTest.java b/shib-attribute-filter-impl/src/test/java/net/shibboleth/idp/attribute/filter/policyrule/filtercontext/impl/AttributeIssuerRegexpPolicyRuleTest.java
index aa7ac16f7..b0116ae84 100644
--- a/shib-attribute-filter-impl/src/test/java/net/shibboleth/idp/attribute/filter/policyrule/filtercontext/impl/AttributeIssuerRegexpPolicyRuleTest.java
+++ b/shib-attribute-filter-impl/src/test/java/net/shibboleth/idp/attribute/filter/policyrule/filtercontext/impl/AttributeIssuerRegexpPolicyRuleTest.java
@@ -41,7 +41,9 @@ public class AttributeIssuerRegexpPolicyRuleTest {
         } else {
             flags = Pattern.CASE_INSENSITIVE;
         }
-        matcher.setPattern(Pattern.compile("^issu.*", flags));
+        final Pattern pat = Pattern.compile("^issu.*", flags);
+        assert pat != null;
+        matcher.setPattern(pat);
         matcher.setId("Test");
         matcher.initialize();
         return matcher;
diff --git a/shib-attribute-filter-impl/src/test/java/net/shibboleth/idp/attribute/filter/policyrule/filtercontext/impl/AttributeRequesterRegexpPolicyRuleTest.java b/shib-attribute-filter-impl/src/test/java/net/shibboleth/idp/attribute/filter/policyrule/filtercontext/impl/AttributeRequesterRegexpPolicyRuleTest.java
index 7046afc75..cbbfa59b9 100644
--- a/shib-attribute-filter-impl/src/test/java/net/shibboleth/idp/attribute/filter/policyrule/filtercontext/impl/AttributeRequesterRegexpPolicyRuleTest.java
+++ b/shib-attribute-filter-impl/src/test/java/net/shibboleth/idp/attribute/filter/policyrule/filtercontext/impl/AttributeRequesterRegexpPolicyRuleTest.java
@@ -35,7 +35,9 @@ public class AttributeRequesterRegexpPolicyRuleTest {
     
     private AttributeRequesterRegexpPolicyRule getMatcher() throws ComponentInitializationException {
         AttributeRequesterRegexpPolicyRule matcher = new AttributeRequesterRegexpPolicyRule();
-        matcher.setPattern(Pattern.compile("^requ.*"));
+        final Pattern pat = Pattern.compile("^requ.*");
+        assert pat != null;
+        matcher.setPattern(pat);
         matcher.setId("Test");
         matcher.initialize();
         return matcher;
diff --git a/shib-attribute-filter-impl/src/test/java/net/shibboleth/idp/attribute/filter/policyrule/filtercontext/impl/NumOfAttributeValuesPolicyRuleTest.java b/shib-attribute-filter-impl/src/test/java/net/shibboleth/idp/attribute/filter/policyrule/filtercontext/impl/NumOfAttributeValuesPolicyRuleTest.java
index f8e76c948..03a8e00c5 100644
--- a/shib-attribute-filter-impl/src/test/java/net/shibboleth/idp/attribute/filter/policyrule/filtercontext/impl/NumOfAttributeValuesPolicyRuleTest.java
+++ b/shib-attribute-filter-impl/src/test/java/net/shibboleth/idp/attribute/filter/policyrule/filtercontext/impl/NumOfAttributeValuesPolicyRuleTest.java
@@ -22,6 +22,8 @@ import static org.testng.Assert.assertNull;
 
 import java.util.ArrayList;
 
+import javax.annotation.Nonnull;
+
 import org.testng.annotations.Test;
 
 import net.shibboleth.idp.attribute.IdPAttribute;
@@ -105,16 +107,18 @@ public class NumOfAttributeValuesPolicyRuleTest {
         rule.setMaximum(0);
     }
     
-    private AttributeFilterContext manufactureWith(int howMany) {
+    @Nonnull private AttributeFilterContext manufactureWith(int howMany) {
         return manufactureWith(attrId, howMany);
     }
 
-    private AttributeFilterContext manufactureWith(String name, int howMany) {
+    @Nonnull private AttributeFilterContext manufactureWith(@Nonnull String name, int howMany) {
         final IdPAttribute attr = new IdPAttribute(name);
         final ArrayList<IdPAttributeValue> hs = new ArrayList<>(howMany);
         
         for (int i = 0; i < howMany; i++) {
-            hs.add(new StringAttributeValue(Integer.toString(i)));
+            final String is = Integer.toString(i);
+            assert is != null;
+            hs.add(new StringAttributeValue(is));
         }
         attr.setValues(hs);
         final AttributeFilterContext context = new AttributeFilterContext();
diff --git a/shib-attribute-filter-impl/src/test/java/net/shibboleth/idp/attribute/filter/policyrule/filtercontext/impl/PrincipalNameRegexpPolicyRuleTest.java b/shib-attribute-filter-impl/src/test/java/net/shibboleth/idp/attribute/filter/policyrule/filtercontext/impl/PrincipalNameRegexpPolicyRuleTest.java
index 4cb7f7aae..7330c6ae2 100644
--- a/shib-attribute-filter-impl/src/test/java/net/shibboleth/idp/attribute/filter/policyrule/filtercontext/impl/PrincipalNameRegexpPolicyRuleTest.java
+++ b/shib-attribute-filter-impl/src/test/java/net/shibboleth/idp/attribute/filter/policyrule/filtercontext/impl/PrincipalNameRegexpPolicyRuleTest.java
@@ -35,7 +35,9 @@ public class PrincipalNameRegexpPolicyRuleTest {
     
     private PrincipalNameRegexpPolicyRule getMatcher() throws ComponentInitializationException {
         final PrincipalNameRegexpPolicyRule matcher = new PrincipalNameRegexpPolicyRule();
-        matcher.setPattern(Pattern.compile("^p.*"));
+        final Pattern pat = Pattern.compile("^p.*");
+        assert pat != null;
+        matcher.setPattern(pat);
         matcher.setId("Test");
         matcher.initialize();
         return matcher;
diff --git a/shib-attribute-filter-impl/src/test/java/net/shibboleth/idp/attribute/filter/policyrule/filtercontext/impl/ProxiedRequesterRegexpPolicyRuleTest.java b/shib-attribute-filter-impl/src/test/java/net/shibboleth/idp/attribute/filter/policyrule/filtercontext/impl/ProxiedRequesterRegexpPolicyRuleTest.java
index 764bccf05..f5a1ef421 100644
--- a/shib-attribute-filter-impl/src/test/java/net/shibboleth/idp/attribute/filter/policyrule/filtercontext/impl/ProxiedRequesterRegexpPolicyRuleTest.java
+++ b/shib-attribute-filter-impl/src/test/java/net/shibboleth/idp/attribute/filter/policyrule/filtercontext/impl/ProxiedRequesterRegexpPolicyRuleTest.java
@@ -39,7 +39,9 @@ public class ProxiedRequesterRegexpPolicyRuleTest {
     
     private ProxiedRequesterRegexpPolicyRule getMatcher() throws ComponentInitializationException {
         final ProxiedRequesterRegexpPolicyRule matcher = new ProxiedRequesterRegexpPolicyRule();
-        matcher.setPattern(Pattern.compile("^requ.*"));
+        final Pattern pat = Pattern.compile("^requ.*");
+        assert pat != null;
+        matcher.setPattern(pat);
         matcher.setId("Test");
         matcher.initialize();
         return matcher;
diff --git a/shib-attribute-filter-impl/src/test/java/net/shibboleth/idp/attribute/filter/policyrule/impl/ScriptedPolicyRuleTest.java b/shib-attribute-filter-impl/src/test/java/net/shibboleth/idp/attribute/filter/policyrule/impl/ScriptedPolicyRuleTest.java
index 56e825eb7..7bbb5dd0b 100644
--- a/shib-attribute-filter-impl/src/test/java/net/shibboleth/idp/attribute/filter/policyrule/impl/ScriptedPolicyRuleTest.java
+++ b/shib-attribute-filter-impl/src/test/java/net/shibboleth/idp/attribute/filter/policyrule/impl/ScriptedPolicyRuleTest.java
@@ -17,9 +17,11 @@
 
 package net.shibboleth.idp.attribute.filter.policyrule.impl;
 
-import static org.testng.Assert.*;
+import static org.testng.Assert.assertEquals;
+import static org.testng.Assert.assertFalse;
+import static org.testng.Assert.assertNotSame;
+import static org.testng.Assert.assertTrue;
 
-import javax.annotation.Nonnull;
 import javax.annotation.concurrent.ThreadSafe;
 
 import org.testng.annotations.BeforeClass;
@@ -28,6 +30,7 @@ import org.testng.annotations.Test;
 import net.shibboleth.idp.attribute.filter.PolicyRequirementRule.Tristate;
 import net.shibboleth.idp.attribute.filter.context.AttributeFilterContext;
 import net.shibboleth.idp.attribute.filter.matcher.impl.AbstractMatcherPolicyRuleTest;
+import net.shibboleth.shared.annotation.constraint.NonnullBeforeTest;
 import net.shibboleth.shared.component.ComponentInitializationException;
 import net.shibboleth.shared.component.DestroyedComponentException;
 import net.shibboleth.shared.component.UninitializedComponentException;
@@ -40,25 +43,25 @@ import net.shibboleth.shared.scripting.EvaluableScript;
 public class ScriptedPolicyRuleTest extends AbstractMatcherPolicyRuleTest {
 
     /** A script that returns null. */
-    private EvaluableScript nullReturnScript;
+    @NonnullBeforeTest private EvaluableScript nullReturnScript;
 
     /** A script that returns Boolean.True. */
-    private EvaluableScript trueReturnScript;
+    @NonnullBeforeTest private EvaluableScript trueReturnScript;
 
     /** A script that returns Boolean.false . */
-    private EvaluableScript falseReturnScript;
+    @NonnullBeforeTest private EvaluableScript falseReturnScript;
 
     /** Another script that returns Boolean.true . */
-    private EvaluableScript prcReturnScript;
+    @NonnullBeforeTest private EvaluableScript prcReturnScript;
 
     /** Another script that returns Boolean.true . */
-    private EvaluableScript scReturnScript;
+    @NonnullBeforeTest private EvaluableScript scReturnScript;
 
     /** A script that returns an object other than a set. */
-    private EvaluableScript invalidReturnObjectScript;
+    @NonnullBeforeTest private EvaluableScript invalidReturnObjectScript;
 
     /** A script that returns the custom object. */
-    private EvaluableScript customReturnScript;
+    @NonnullBeforeTest private EvaluableScript customReturnScript;
 
     @BeforeClass public void setup() throws Exception {
         super.setUp();
@@ -117,6 +120,7 @@ public class ScriptedPolicyRuleTest extends AbstractMatcherPolicyRuleTest {
         assertEquals(rule.matches(filterContext), Tristate.FAIL);
     }
 
+    @SuppressWarnings("null")
     @Test public void testInitTeardown() throws ComponentInitializationException {
         final ScriptedPolicyRule rule = newScriptedPolicyRule(trueReturnScript);
 
@@ -159,7 +163,7 @@ public class ScriptedPolicyRuleTest extends AbstractMatcherPolicyRuleTest {
 
     }
 
-    @SuppressWarnings("unlikely-arg-type")
+    @SuppressWarnings({ "unlikely-arg-type", "null" })
     @Test public void testEqualsHashToString() throws ComponentInitializationException {
         final ScriptedPolicyRule rule = newScriptedPolicyRule(trueReturnScript);
 
@@ -181,7 +185,8 @@ public class ScriptedPolicyRuleTest extends AbstractMatcherPolicyRuleTest {
 
     }
     
-    static private  ScriptedPolicyRule newScriptedPolicyRule(@Nonnull final EvaluableScript script) {
+    static private  ScriptedPolicyRule newScriptedPolicyRule(final EvaluableScript script) {
+        assert script!=null;
         final ScriptedPolicyRule what = new ScriptedPolicyRule();
         what.setScript(script);
         return what;
diff --git a/shib-attribute-filter-impl/src/test/java/net/shibboleth/idp/attribute/filter/policyrule/saml/impl/BaseMetadataTests.java b/shib-attribute-filter-impl/src/test/java/net/shibboleth/idp/attribute/filter/policyrule/saml/impl/BaseMetadataTests.java
index 7d6da76f2..644cc3ee1 100644
--- a/shib-attribute-filter-impl/src/test/java/net/shibboleth/idp/attribute/filter/policyrule/saml/impl/BaseMetadataTests.java
+++ b/shib-attribute-filter-impl/src/test/java/net/shibboleth/idp/attribute/filter/policyrule/saml/impl/BaseMetadataTests.java
@@ -25,6 +25,7 @@ import net.shibboleth.idp.attribute.transcoding.BasicNamingFunction;
 import net.shibboleth.idp.attribute.transcoding.impl.AttributeTranscoderRegistryImpl;
 import net.shibboleth.idp.saml.attribute.impl.AttributeMappingNodeProcessor;
 import net.shibboleth.idp.saml.attribute.transcoding.AbstractSAML2AttributeTranscoder;
+import net.shibboleth.shared.annotation.constraint.NonnullBeforeTest;
 import net.shibboleth.shared.collection.CollectionSupport;
 import net.shibboleth.shared.component.ComponentInitializationException;
 import net.shibboleth.shared.testing.MockApplicationContext;
@@ -45,7 +46,7 @@ import org.testng.annotations.BeforeClass;
 @SuppressWarnings("javadoc")
 public class BaseMetadataTests extends XMLObjectBaseTestCase {
 
-    private EntitiesDescriptor metadata;
+    @NonnullBeforeTest private EntitiesDescriptor metadata;
 
     static private final String IDP_ENTITY_ID = "https://idp.shibboleth.net/idp/shibboleth";
 
@@ -55,13 +56,13 @@ public class BaseMetadataTests extends XMLObjectBaseTestCase {
 
     static private final String NONE_ENTITY_ID = "https://none.shibboleth.net/shibboleth";
 
-    protected EntityDescriptor idpEntity;
+    @NonnullBeforeTest protected EntityDescriptor idpEntity;
 
-    protected EntityDescriptor jiraEntity;
+    @NonnullBeforeTest protected EntityDescriptor jiraEntity;
 
-    protected EntityDescriptor wikiEntity;
+    @NonnullBeforeTest protected EntityDescriptor wikiEntity;
 
-    protected EntityDescriptor noneEntity;
+    @NonnullBeforeTest protected EntityDescriptor noneEntity;
 
     @BeforeClass(dependsOnMethods = "initXMLObjectSupport") public void setUp()
             throws FilterException, ComponentInitializationException {
@@ -91,9 +92,10 @@ public class BaseMetadataTests extends XMLObjectBaseTestCase {
                 noneEntity = entity;
             }
         }
+        assert noneEntity!=null && idpEntity!=null && jiraEntity!=null && wikiEntity!=null;
     }
 
-    static protected AttributeFilterContext reqMetadataContext(EntityDescriptor sp, String principal) {
+    @Nonnull static protected AttributeFilterContext reqMetadataContext(EntityDescriptor sp, String principal) {
 
         final AttributeFilterContext filterContext = new AttributeFilterContext();
         final SAMLMetadataContext metadataContext = filterContext.ensureSubcontext(SAMLMetadataContext.class);
diff --git a/shib-attribute-filter-impl/src/test/java/net/shibboleth/idp/attribute/filter/policyrule/saml/impl/IssuerRegistrationAuthorityTest.java b/shib-attribute-filter-impl/src/test/java/net/shibboleth/idp/attribute/filter/policyrule/saml/impl/IssuerRegistrationAuthorityTest.java
index 380cecbf8..88ed33d6a 100644
--- a/shib-attribute-filter-impl/src/test/java/net/shibboleth/idp/attribute/filter/policyrule/saml/impl/IssuerRegistrationAuthorityTest.java
+++ b/shib-attribute-filter-impl/src/test/java/net/shibboleth/idp/attribute/filter/policyrule/saml/impl/IssuerRegistrationAuthorityTest.java
@@ -20,8 +20,6 @@ package net.shibboleth.idp.attribute.filter.policyrule.saml.impl;
 import static org.testng.Assert.assertEquals;
 import static org.testng.Assert.fail;
 
-import java.util.Arrays;
-
 import javax.annotation.Nullable;
 
 import org.opensaml.saml.saml2.metadata.EntitiesDescriptor;
@@ -31,6 +29,7 @@ import org.testng.annotations.Test;
 
 import net.shibboleth.idp.attribute.filter.PolicyRequirementRule.Tristate;
 import net.shibboleth.idp.attribute.filter.context.AttributeFilterContext;
+import net.shibboleth.shared.collection.CollectionSupport;
 
 /** {@link IssuerRegistrationAuthorityPolicyRule} unit test. */
 @SuppressWarnings("javadoc")
@@ -67,11 +66,11 @@ public class IssuerRegistrationAuthorityTest extends BaseMetadataTests {
         AttributeFilterContext context = issMetadataContext(getEntity(SWAMID), "principal");
         final IssuerRegistrationAuthorityPolicyRule filter = new IssuerRegistrationAuthorityPolicyRule();
         String[] array = {REQUESTED_REG_INFO, "foo",};
-        filter.setRegistrars(Arrays.asList(array));
+        filter.setRegistrars(CollectionSupport.arrayAsList(array));
 
         assertEquals(filter.matches(context), Tristate.TRUE);
         array[0] = INCOMMON_REG_INFO;
-        filter.setRegistrars(Arrays.asList(array));
+        filter.setRegistrars(CollectionSupport.arrayAsList(array));
         assertEquals(filter.matches(context), Tristate.FALSE);
     }
 
@@ -79,11 +78,11 @@ public class IssuerRegistrationAuthorityTest extends BaseMetadataTests {
         AttributeFilterContext context = issMetadataContext(getEntity(INCOMMON_SP), "principal");
         final IssuerRegistrationAuthorityPolicyRule filter = new IssuerRegistrationAuthorityPolicyRule();
         String[] array = {REQUESTED_REG_INFO, "foo",};
-        filter.setRegistrars(Arrays.asList(array));
+        filter.setRegistrars(CollectionSupport.arrayAsList(array));
 
         assertEquals(filter.matches(context), Tristate.FALSE);
         array[0] = INCOMMON_REG_INFO;
-        filter.setRegistrars(Arrays.asList(array));
+        filter.setRegistrars(CollectionSupport.arrayAsList(array));
         assertEquals(filter.matches(context), Tristate.TRUE);
     }
 
@@ -91,7 +90,7 @@ public class IssuerRegistrationAuthorityTest extends BaseMetadataTests {
         AttributeFilterContext context = issMetadataContext(getEntity(NO_REGINFO_SP), "principal");
         final IssuerRegistrationAuthorityPolicyRule filter = new IssuerRegistrationAuthorityPolicyRule();
         String[] array = {REQUESTED_REG_INFO, INCOMMON_REG_INFO, "foo",};
-        filter.setRegistrars(Arrays.asList(array));
+        filter.setRegistrars(CollectionSupport.arrayAsList(array));
 
         filter.setMatchIfMetadataSilent(true);
         assertEquals(filter.matches(context), Tristate.TRUE);
diff --git a/shib-attribute-filter-impl/src/test/java/net/shibboleth/idp/attribute/filter/policyrule/saml/impl/RequesterEntityAttributeExactPolicyRuleTest.java b/shib-attribute-filter-impl/src/test/java/net/shibboleth/idp/attribute/filter/policyrule/saml/impl/RequesterEntityAttributeExactPolicyRuleTest.java
index e1e6889ed..a6884239b 100644
--- a/shib-attribute-filter-impl/src/test/java/net/shibboleth/idp/attribute/filter/policyrule/saml/impl/RequesterEntityAttributeExactPolicyRuleTest.java
+++ b/shib-attribute-filter-impl/src/test/java/net/shibboleth/idp/attribute/filter/policyrule/saml/impl/RequesterEntityAttributeExactPolicyRuleTest.java
@@ -19,6 +19,8 @@ package net.shibboleth.idp.attribute.filter.policyrule.saml.impl;
 
 import static org.testng.Assert.assertEquals;
 
+import javax.annotation.Nonnull;
+
 import org.testng.annotations.Test;
 
 import net.shibboleth.idp.attribute.filter.PolicyRequirementRule.Tristate;
@@ -35,7 +37,7 @@ public class RequesterEntityAttributeExactPolicyRuleTest extends BaseMetadataTes
         return getMatcher("urn:example.org:policies", "urn:example.org:policy:1234", null, false);
     }
 
-    private RequesterEntityAttributeExactPolicyRule getMatcher(String attributeName, String attributeValue,
+    private RequesterEntityAttributeExactPolicyRule getMatcher(@Nonnull String attributeName, @Nonnull String attributeValue,
             String attributeNameFormat, boolean ignoreUnmapped) throws ComponentInitializationException {
         RequesterEntityAttributeExactPolicyRule matcher = new RequesterEntityAttributeExactPolicyRule();
         matcher.setId("matcher");
diff --git a/shib-attribute-filter-impl/src/test/java/net/shibboleth/idp/attribute/filter/policyrule/saml/impl/RequesterRegistrationAuthorityTest.java b/shib-attribute-filter-impl/src/test/java/net/shibboleth/idp/attribute/filter/policyrule/saml/impl/RequesterRegistrationAuthorityTest.java
index 28fd3ed37..1308f532f 100644
--- a/shib-attribute-filter-impl/src/test/java/net/shibboleth/idp/attribute/filter/policyrule/saml/impl/RequesterRegistrationAuthorityTest.java
+++ b/shib-attribute-filter-impl/src/test/java/net/shibboleth/idp/attribute/filter/policyrule/saml/impl/RequesterRegistrationAuthorityTest.java
@@ -20,8 +20,6 @@ package net.shibboleth.idp.attribute.filter.policyrule.saml.impl;
 import static org.testng.Assert.assertEquals;
 import static org.testng.Assert.fail;
 
-import java.util.Arrays;
-
 import javax.annotation.Nullable;
 
 import org.opensaml.saml.saml2.metadata.EntitiesDescriptor;
@@ -31,6 +29,7 @@ import org.testng.annotations.Test;
 
 import net.shibboleth.idp.attribute.filter.PolicyRequirementRule.Tristate;
 import net.shibboleth.idp.attribute.filter.context.AttributeFilterContext;
+import net.shibboleth.shared.collection.CollectionSupport;
 
 /** {@link RequesterRegistrationAuthorityPolicyRule} unit test. */
 @SuppressWarnings("javadoc")
@@ -67,11 +66,11 @@ public class RequesterRegistrationAuthorityTest extends BaseMetadataTests {
         AttributeFilterContext context = reqMetadataContext(getEntity(SWAMID), "principal");
         final RequesterRegistrationAuthorityPolicyRule filter = new RequesterRegistrationAuthorityPolicyRule();
         String[] array = {REQUESTED_REG_INFO, "foo",};
-        filter.setRegistrars(Arrays.asList(array));
+        filter.setRegistrars(CollectionSupport.arrayAsList(array));
 
         assertEquals(filter.matches(context), Tristate.TRUE);
         array[0] = INCOMMON_REG_INFO;
-        filter.setRegistrars(Arrays.asList(array));
+        filter.setRegistrars(CollectionSupport.arrayAsList(array));
         assertEquals(filter.matches(context), Tristate.FALSE);
     }
 
@@ -79,11 +78,11 @@ public class RequesterRegistrationAuthorityTest extends BaseMetadataTests {
         AttributeFilterContext context = reqMetadataContext(getEntity(INCOMMON_SP), "principal");
         final RequesterRegistrationAuthorityPolicyRule filter = new RequesterRegistrationAuthorityPolicyRule();
         String[] array = {REQUESTED_REG_INFO, "foo",};
-        filter.setRegistrars(Arrays.asList(array));
+        filter.setRegistrars(CollectionSupport.arrayAsList(array));
 
         assertEquals(filter.matches(context), Tristate.FALSE);
         array[0] = INCOMMON_REG_INFO;
-        filter.setRegistrars(Arrays.asList(array));
+        filter.setRegistrars(CollectionSupport.arrayAsList(array));
         assertEquals(filter.matches(context), Tristate.TRUE);
     }
 
@@ -91,7 +90,7 @@ public class RequesterRegistrationAuthorityTest extends BaseMetadataTests {
         AttributeFilterContext context = reqMetadataContext(getEntity(NO_REGINFO_SP), "principal");
         final RequesterRegistrationAuthorityPolicyRule filter = new RequesterRegistrationAuthorityPolicyRule();
         String[] array = {REQUESTED_REG_INFO, INCOMMON_REG_INFO, "foo",};
-        filter.setRegistrars(Arrays.asList(array));
+        filter.setRegistrars(CollectionSupport.arrayAsList(array));
 
         filter.setMatchIfMetadataSilent(true);
         assertEquals(filter.matches(context), Tristate.TRUE);
diff --git a/shib-attribute-filter-impl/src/test/java/net/shibboleth/idp/attribute/filter/tests/AttributeFilterPolicyTest.java b/shib-attribute-filter-impl/src/test/java/net/shibboleth/idp/attribute/filter/tests/AttributeFilterPolicyTest.java
index fe4b76654..25c068126 100644
--- a/shib-attribute-filter-impl/src/test/java/net/shibboleth/idp/attribute/filter/tests/AttributeFilterPolicyTest.java
+++ b/shib-attribute-filter-impl/src/test/java/net/shibboleth/idp/attribute/filter/tests/AttributeFilterPolicyTest.java
@@ -18,6 +18,7 @@
 package net.shibboleth.idp.attribute.filter.tests;
 
 import java.util.Collection;
+import java.util.List;
 
 import javax.annotation.Nonnull;
 
@@ -61,11 +62,11 @@ public class AttributeFilterPolicyTest {
 
     @BeforeMethod public void setUp() throws ComponentInitializationException {
         policyMatcher = new MockPolicyRequirementRule();
-        valueMatcher = new MockMatcher();
+        MockMatcher mm = valueMatcher = new MockMatcher();
         valuePolicy = new AttributeRule();
         valuePolicy.setId("valuePolicy");
         valuePolicy.setAttributeId(ATTR_NAME);
-        valuePolicy.setMatcher(valueMatcher);
+        valuePolicy.setMatcher(mm);
         valuePolicy.setIsDenyRule(false);
         policyMatcher.initialize();
         valuePolicy.initialize();
@@ -73,25 +74,28 @@ public class AttributeFilterPolicyTest {
     }
 
     @Test public void testPostConstructionState() {
-        AttributeFilterPolicy policy = new AttributeFilterPolicy(ID, policyMatcher, CollectionSupport.listOf(valuePolicy));
+        final MockPolicyRequirementRule localPolicyMatcher = policyMatcher;
+        assert localPolicyMatcher!=null && valuePolicy!=null;
+        final List<AttributeRule> valuePolicyList =  CollectionSupport.listOf(valuePolicy);
+        AttributeFilterPolicy policy = new AttributeFilterPolicy(ID, localPolicyMatcher, valuePolicyList);
         Assert.assertEquals(policy.getId(), ID);
         Assert.assertEquals(policy.getPolicyRequirementRule(), policyMatcher);
         Assert.assertTrue(policy.getAttributeRules().contains(valuePolicy));
 
-        policy = new AttributeFilterPolicy(ID, policyMatcher, null);
+        policy = new AttributeFilterPolicy(ID, localPolicyMatcher, null);
         Assert.assertEquals(policy.ensureId(), ID);
         Assert.assertEquals(policy.getPolicyRequirementRule(), policyMatcher);
         Assert.assertTrue(policy.getAttributeRules().isEmpty());
 
         try {
-            new AttributeFilterPolicy("", policyMatcher, CollectionSupport.listOf(valuePolicy));
+            new AttributeFilterPolicy("", localPolicyMatcher, valuePolicyList);
             Assert.fail();
         } catch (final ConstraintViolationException e) {
             // expected
         }
 
         try {
-            new AttributeFilterPolicy("  ", policyMatcher, CollectionSupport.listOf(valuePolicy));
+            new AttributeFilterPolicy("  ", localPolicyMatcher, valuePolicyList);
             Assert.fail();
         } catch (final ConstraintViolationException e) {
             // expected
@@ -99,14 +103,18 @@ public class AttributeFilterPolicyTest {
     }
 
     @Test public void testInitDestroy() throws ComponentInitializationException {
-        AttributeFilterPolicy policy = new AttributeFilterPolicy(ID, policyMatcher, CollectionSupport.listOf(valuePolicy));
+        final MockPolicyRequirementRule localPolicyMatcher = policyMatcher;
+        assert localPolicyMatcher!=null && valuePolicy!=null;
+        final List<AttributeRule> valuePolicyList =  CollectionSupport.listOf(valuePolicy);
+
+        AttributeFilterPolicy policy = new AttributeFilterPolicy(ID, localPolicyMatcher, valuePolicyList);
         Assert.assertFalse(policy.isInitialized(), "Created");
 
         Assert.assertFalse(policy.isDestroyed(), "Created");
         Assert.assertFalse(policyMatcher.isDestroyed(), "Created");
         Assert.assertFalse(valueMatcher.isDestroyed(), "Created");
 
-        policy = new AttributeFilterPolicy(ID, policyMatcher, CollectionSupport.listOf(valuePolicy));
+        policy = new AttributeFilterPolicy(ID, localPolicyMatcher, valuePolicyList);
         policy.initialize();
         Assert.assertTrue(policy.isInitialized(), "Initialized");
         Assert.assertTrue(policyMatcher.isInitialized(), "Initialized");
@@ -133,7 +141,11 @@ public class AttributeFilterPolicyTest {
     }
 
     @Test public void testAttributeValuePolicies() throws ComponentInitializationException {
-        AttributeFilterPolicy policy = new AttributeFilterPolicy(ID, policyMatcher, null);
+        final MockPolicyRequirementRule localPolicyMatcher = policyMatcher;
+        assert localPolicyMatcher!=null && valuePolicy!=null;
+        final List<AttributeRule> valuePolicyList =  CollectionSupport.listOf(valuePolicy);
+
+        AttributeFilterPolicy policy = new AttributeFilterPolicy(ID, localPolicyMatcher, null);
         Assert.assertTrue(policy.getAttributeRules().isEmpty());
 
         try {
@@ -143,7 +155,7 @@ public class AttributeFilterPolicyTest {
             // expected
         }
 
-        policy = new AttributeFilterPolicy(ID, policyMatcher, CollectionSupport.listOf(valuePolicy));
+        policy = new AttributeFilterPolicy(ID, localPolicyMatcher, valuePolicyList);
         Assert.assertEquals(policy.getAttributeRules().size(), 1);
 
         policy.initialize();
@@ -152,8 +164,11 @@ public class AttributeFilterPolicyTest {
     }
 
     private AttributeFilterContext apply(Tristate state) throws AttributeFilterException, ComponentInitializationException {
+        final MockPolicyRequirementRule localPolicyMatcher = policyMatcher;
+        assert localPolicyMatcher!=null && valuePolicy!=null;
+        final List<AttributeRule> valuePolicyList =  CollectionSupport.listOf(valuePolicy);
 
-        AttributeFilterPolicy policy = new AttributeFilterPolicy(ID, policyMatcher, CollectionSupport.listOf(valuePolicy));
+        AttributeFilterPolicy policy = new AttributeFilterPolicy(ID, localPolicyMatcher, valuePolicyList);
 
         try {
             policy.apply(new AttributeFilterContext());
@@ -176,7 +191,7 @@ public class AttributeFilterPolicyTest {
         attribute2.setValues(CollectionSupport.singletonList(new StringAttributeValue("45")));
         context.setPrefilteredIdPAttributes(CollectionSupport.listOf(attribute, attribute2));
 
-        policyMatcher.setRetVal(state);
+        localPolicyMatcher.setRetVal(state);
         valueMatcher.setMatchingAttribute(ATTR_NAME);
         valueMatcher.setMatchingValues(CollectionSupport.listOf(new StringAttributeValue("one"), new StringAttributeValue("three")));
 
@@ -210,7 +225,11 @@ public class AttributeFilterPolicyTest {
 }
 
     @Test public void testApplyToEmpty() throws ComponentInitializationException, AttributeFilterException {
-        final AttributeFilterPolicy policy = new AttributeFilterPolicy(ID, policyMatcher, CollectionSupport.listOf(valuePolicy));
+        final MockPolicyRequirementRule localPolicyMatcher = policyMatcher;
+        assert localPolicyMatcher!=null && valuePolicy!=null;
+        final List<AttributeRule> valuePolicyList =  CollectionSupport.listOf(valuePolicy);
+
+        final AttributeFilterPolicy policy = new AttributeFilterPolicy(ID, localPolicyMatcher, valuePolicyList);
         //
         // Empty attribute
         //

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


More information about the commits mailing list