[java-metadata-aggregator] 02/02: Nullability

Ian Young ian at iay.org.uk
Tue Apr 4 07:01:49 UTC 2023


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

iay pushed a commit to branch main
in repository java-metadata-aggregator.

View the commit online:
http://git.shibboleth.net/view/?p=java-metadata-aggregator.git;a=commit;h=aff16d3d22acbe86c7e3dfbc9c4f25681b6c8fe9

commit aff16d3d22acbe86c7e3dfbc9c4f25681b6c8fe9
Author: Ian Young <ian at iay.org.uk>
AuthorDate: Tue Apr 4 08:01:34 2023 +0100

    Nullability
---
 .../shibboleth/metadata/dom/ElementsStrippingStage.java  |  6 ++++--
 .../shibboleth/metadata/dom/SimpleNamespaceContext.java  |  4 ++--
 .../shibboleth/metadata/dom/saml/EntityFilterStage.java  |  4 +++-
 .../shibboleth/metadata/dom/saml/GenerateIdStage.java    |  2 +-
 .../metadata/pipeline/ItemIdTransformStage.java          |  3 ++-
 .../metadata/pipeline/PipelineDemultiplexerStage.java    |  3 ++-
 .../net/shibboleth/metadata/util/RegexFileFilter.java    |  2 +-
 .../net/shibboleth/metadata/dom/ElementMatcherTest.java  | 16 ++++++++++++----
 .../net/shibboleth/metadata/pipeline/MarkerStage.java    |  5 +++--
 .../pipeline/MultiOutputSerializationStageTest.java      | 10 ++++++----
 .../metadata/pipeline/PipelineMergeStageTest.java        | 14 ++++++++++----
 11 files changed, 46 insertions(+), 23 deletions(-)

diff --git a/mda-framework/src/main/java/net/shibboleth/metadata/dom/ElementsStrippingStage.java b/mda-framework/src/main/java/net/shibboleth/metadata/dom/ElementsStrippingStage.java
index d8a7824..434b529 100644
--- a/mda-framework/src/main/java/net/shibboleth/metadata/dom/ElementsStrippingStage.java
+++ b/mda-framework/src/main/java/net/shibboleth/metadata/dom/ElementsStrippingStage.java
@@ -109,7 +109,7 @@ public class ElementsStrippingStage extends AbstractDOMTraversalStage<ElementsSt
             whitelisting = wl;
         }
 
-        protected final String getElementNamespace() {
+        protected final @Nonnull String getElementNamespace() {
             return elementNamespace;
         }
 
@@ -237,7 +237,9 @@ public class ElementsStrippingStage extends AbstractDOMTraversalStage<ElementsSt
 
     @Override
     protected synchronized @Nonnull Context buildContext(@Nonnull final Item<Element> item) {
-        return new Context(item, getElementNamespace(), getElementNames(), isWhitelisting());
+        final var ns = getElementNamespace();
+        assert ns != null;
+        return new Context(item, ns, getElementNames(), isWhitelisting());
     }
 
 }
diff --git a/mda-framework/src/main/java/net/shibboleth/metadata/dom/SimpleNamespaceContext.java b/mda-framework/src/main/java/net/shibboleth/metadata/dom/SimpleNamespaceContext.java
index da5fa06..308e12e 100644
--- a/mda-framework/src/main/java/net/shibboleth/metadata/dom/SimpleNamespaceContext.java
+++ b/mda-framework/src/main/java/net/shibboleth/metadata/dom/SimpleNamespaceContext.java
@@ -103,8 +103,8 @@ public class SimpleNamespaceContext implements NamespaceContext {
         return mappings.inverse().get(namespaceURI);
     }
 
-    /** {@inheritDoc} */
-    @Nonnull public Iterator<String> getPrefixes(final String namespaceURI) {
+    @Override
+    public Iterator<String> getPrefixes(final String namespaceURI) {
         if (namespaceURI == null) {
             throw new IllegalArgumentException("Namespace URI can not be null");
         }
diff --git a/mda-framework/src/main/java/net/shibboleth/metadata/dom/saml/EntityFilterStage.java b/mda-framework/src/main/java/net/shibboleth/metadata/dom/saml/EntityFilterStage.java
index bd54d70..c36bb9b 100644
--- a/mda-framework/src/main/java/net/shibboleth/metadata/dom/saml/EntityFilterStage.java
+++ b/mda-framework/src/main/java/net/shibboleth/metadata/dom/saml/EntityFilterStage.java
@@ -71,7 +71,7 @@ public class EntityFilterStage extends AbstractFilteringStage<Element> {
     public synchronized void setDesignatedEntities(
             @Nonnull @NonnullElements @Unmodifiable final Collection<String> ids) {
         checkSetterPreconditions();
-        designatedEntities = Set.copyOf(ids);
+        designatedEntities = CollectionSupport.copyToSet(ids);
     }
 
     /**
@@ -144,6 +144,7 @@ public class EntityFilterStage extends AbstractFilteringStage<Element> {
         final List<Element> childEntitiesDescriptors =
                 ElementSupport.getChildElements(entitiesDescriptor, SAMLMetadataSupport.ENTITIES_DESCRIPTOR_NAME);
         for (final var descriptor : childEntitiesDescriptors) {
+            assert descriptor != null;
             if (processEntitiesDescriptor(descriptor)) {
                 entitiesDescriptor.removeChild(descriptor);
             } else {
@@ -154,6 +155,7 @@ public class EntityFilterStage extends AbstractFilteringStage<Element> {
         final List<Element> childEntityDescriptors =
                 ElementSupport.getChildElements(entitiesDescriptor, SAMLMetadataSupport.ENTITY_DESCRIPTOR_NAME);
         for (final var descriptor : childEntityDescriptors) {
+            assert descriptor != null;
             if (processEntityDescriptor(descriptor)) {
                 entitiesDescriptor.removeChild(descriptor);
             } else {
diff --git a/mda-framework/src/main/java/net/shibboleth/metadata/dom/saml/GenerateIdStage.java b/mda-framework/src/main/java/net/shibboleth/metadata/dom/saml/GenerateIdStage.java
index 5399c4a..7b2334d 100644
--- a/mda-framework/src/main/java/net/shibboleth/metadata/dom/saml/GenerateIdStage.java
+++ b/mda-framework/src/main/java/net/shibboleth/metadata/dom/saml/GenerateIdStage.java
@@ -37,7 +37,7 @@ import net.shibboleth.shared.xml.AttributeSupport;
 public class GenerateIdStage extends AbstractIteratingStage<Element> {
 
     /** QName of the ID attribute added to the descriptor. */
-    public static final QName ID_ATTRIB = new QName("ID");
+    public static final @Nonnull QName ID_ATTRIB = new QName("ID");
 
     /** Strategy used to generate identifiers. */
     @Nonnull
diff --git a/mda-framework/src/main/java/net/shibboleth/metadata/pipeline/ItemIdTransformStage.java b/mda-framework/src/main/java/net/shibboleth/metadata/pipeline/ItemIdTransformStage.java
index 035593c..be4fdfd 100644
--- a/mda-framework/src/main/java/net/shibboleth/metadata/pipeline/ItemIdTransformStage.java
+++ b/mda-framework/src/main/java/net/shibboleth/metadata/pipeline/ItemIdTransformStage.java
@@ -66,7 +66,7 @@ public class ItemIdTransformStage<T> extends AbstractIteratingStage<T> {
     public synchronized void setIdTransformers(
             @Nonnull @NonnullElements @Unmodifiable final Collection<Function<String, String>> transformers) {
         checkSetterPreconditions();
-        idTransformers = List.copyOf(transformers);
+        idTransformers = CollectionSupport.copyToList(transformers);
     }
 
     @Override
@@ -77,6 +77,7 @@ public class ItemIdTransformStage<T> extends AbstractIteratingStage<T> {
         for (final ItemId id : ids) {
             for (final Function<String, String> idTransform : getIdTransformers()) {
                 final String transformedId = idTransform.apply(id.getId());
+                assert transformedId != null;
                 transformedIds.add(new ItemId(transformedId));
             }
         }
diff --git a/mda-framework/src/main/java/net/shibboleth/metadata/pipeline/PipelineDemultiplexerStage.java b/mda-framework/src/main/java/net/shibboleth/metadata/pipeline/PipelineDemultiplexerStage.java
index 4685eee..033a994 100644
--- a/mda-framework/src/main/java/net/shibboleth/metadata/pipeline/PipelineDemultiplexerStage.java
+++ b/mda-framework/src/main/java/net/shibboleth/metadata/pipeline/PipelineDemultiplexerStage.java
@@ -239,7 +239,8 @@ public class PipelineDemultiplexerStage<T> extends AbstractStage<T> {
         }
 
         if (isWaitingForPipelines()) {
-            for (final @Nonnull Future<List<Item<T>>> pipelineFuture : pipelineFutures) {
+            for (final Future<List<Item<T>>> pipelineFuture : pipelineFutures) {
+                assert pipelineFuture != null;
                 FutureSupport.futureItems(pipelineFuture);
             }
         }
diff --git a/mda-framework/src/main/java/net/shibboleth/metadata/util/RegexFileFilter.java b/mda-framework/src/main/java/net/shibboleth/metadata/util/RegexFileFilter.java
index a8547f2..84ae899 100644
--- a/mda-framework/src/main/java/net/shibboleth/metadata/util/RegexFileFilter.java
+++ b/mda-framework/src/main/java/net/shibboleth/metadata/util/RegexFileFilter.java
@@ -62,7 +62,7 @@ public class RegexFileFilter implements FileFilter {
      * @return <code>true</code> iff <code>pathname</code> matches the regular expression.
      */
     @Override
-    public boolean accept(@Nonnull final File pathname) {
+    public boolean accept(final File pathname) {
         return pattern.matcher(pathname.getName()).matches();
     }
 
diff --git a/mda-framework/src/test/java/net/shibboleth/metadata/dom/ElementMatcherTest.java b/mda-framework/src/test/java/net/shibboleth/metadata/dom/ElementMatcherTest.java
index 06c6587..3f85a02 100644
--- a/mda-framework/src/test/java/net/shibboleth/metadata/dom/ElementMatcherTest.java
+++ b/mda-framework/src/test/java/net/shibboleth/metadata/dom/ElementMatcherTest.java
@@ -1,11 +1,13 @@
 
 package net.shibboleth.metadata.dom;
 
+import javax.annotation.Nonnull;
 import javax.xml.namespace.QName;
 
 import org.testng.Assert;
 import org.testng.annotations.Test;
 import org.w3c.dom.Document;
+import org.w3c.dom.Element;
 
 public class ElementMatcherTest extends BaseDOMTest {
 
@@ -17,13 +19,19 @@ public class ElementMatcherTest extends BaseDOMTest {
         doc = getParserPool().newDocument();
     }
 
+    private @Nonnull Element createElementNS(final @Nonnull String ns, final @Nonnull String name) {
+        final Element e = doc.createElementNS(ns, name);
+        assert e != null;
+        return e;
+    }
+
     @Test
     public void matcher() throws Exception {
         final ElementMatcher matcher = new SimpleElementMatcher(new QName("ns", "xxx"));
-        Assert.assertTrue(matcher.match(doc.createElementNS("ns", "xxx")));
-        Assert.assertFalse(matcher.match(doc.createElementNS("ns", "yyy")));
-        Assert.assertFalse(matcher.match(doc.createElementNS("ns2", "xxx")));
-        Assert.assertFalse(matcher.match(doc.createElementNS("ns2", "yyy")));
+        Assert.assertTrue(matcher.match(createElementNS("ns", "xxx")));
+        Assert.assertFalse(matcher.match(createElementNS("ns", "yyy")));
+        Assert.assertFalse(matcher.match(createElementNS("ns2", "xxx")));
+        Assert.assertFalse(matcher.match(createElementNS("ns2", "yyy")));
     }
 
 }
diff --git a/mda-framework/src/test/java/net/shibboleth/metadata/pipeline/MarkerStage.java b/mda-framework/src/test/java/net/shibboleth/metadata/pipeline/MarkerStage.java
index 06cae12..8610f93 100644
--- a/mda-framework/src/test/java/net/shibboleth/metadata/pipeline/MarkerStage.java
+++ b/mda-framework/src/test/java/net/shibboleth/metadata/pipeline/MarkerStage.java
@@ -1,5 +1,6 @@
 package net.shibboleth.metadata.pipeline;
 
+import javax.annotation.Nonnull;
 import javax.annotation.concurrent.GuardedBy;
 import javax.annotation.concurrent.ThreadSafe;
 
@@ -21,12 +22,12 @@ public class MarkerStage<T> extends AbstractIteratingStage<T> {
 
     @GuardedBy("this") private int sequence = 1;
     
-    private final synchronized String nextMessage() {
+    private final synchronized @Nonnull String nextMessage() {
         return "marker #" + sequence++;
     }
 
     @Override
-    protected void doExecute(Item<T> item) throws StageProcessingException {
+    protected void doExecute(@Nonnull Item<T> item) throws StageProcessingException {
         item.getItemMetadata().put(new TestMarker(nextMessage()));
     }
 
diff --git a/mda-framework/src/test/java/net/shibboleth/metadata/pipeline/MultiOutputSerializationStageTest.java b/mda-framework/src/test/java/net/shibboleth/metadata/pipeline/MultiOutputSerializationStageTest.java
index 8eeec27..0c2cdba 100644
--- a/mda-framework/src/test/java/net/shibboleth/metadata/pipeline/MultiOutputSerializationStageTest.java
+++ b/mda-framework/src/test/java/net/shibboleth/metadata/pipeline/MultiOutputSerializationStageTest.java
@@ -26,6 +26,8 @@ import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 
+import javax.annotation.Nonnull;
+
 import org.testng.Assert;
 import org.testng.annotations.Test;
 
@@ -44,7 +46,7 @@ public class MultiOutputSerializationStageTest {
         private class StringDestination implements MultiOutputSerializationStage.Destination {
 
             private final String id;
-            private final ByteArrayOutputStream baos = new ByteArrayOutputStream();
+            private final @Nonnull ByteArrayOutputStream baos = new ByteArrayOutputStream();
 
             public StringDestination(String i) {
                 id = i;
@@ -56,14 +58,14 @@ public class MultiOutputSerializationStageTest {
             }
 
             @Override
-            public OutputStream getOutputStream() throws IOException {
+            public @Nonnull OutputStream getOutputStream() throws IOException {
                 return baos;
             }
             
         }
 
         @Override
-        public Destination getDestination(Item<String> item) throws StageProcessingException {
+        public @Nonnull Destination getDestination(@Nonnull Item<String> item) throws StageProcessingException {
             // Locate the item's identifier.
             final List<ItemId> ids = item.getItemMetadata().get(ItemId.class);
             if (ids.isEmpty()) {
@@ -95,7 +97,7 @@ public class MultiOutputSerializationStageTest {
         stage.setSerializer(new ItemSerializer<String> () {
 
             @Override
-            public void serialize(Item<String> item, OutputStream output) {
+            public void serialize(@Nonnull Item<String> item, @Nonnull OutputStream output) {
                 try {
                     output.write(item.unwrap().getBytes("UTF-8"));
                 } catch (IOException e) {
diff --git a/mda-framework/src/test/java/net/shibboleth/metadata/pipeline/PipelineMergeStageTest.java b/mda-framework/src/test/java/net/shibboleth/metadata/pipeline/PipelineMergeStageTest.java
index 8b82a80..cc40121 100644
--- a/mda-framework/src/test/java/net/shibboleth/metadata/pipeline/PipelineMergeStageTest.java
+++ b/mda-framework/src/test/java/net/shibboleth/metadata/pipeline/PipelineMergeStageTest.java
@@ -23,10 +23,13 @@ import java.util.List;
 import java.util.concurrent.ExecutorService;
 import java.util.concurrent.Executors;
 
+import javax.annotation.Nonnull;
+
 import net.shibboleth.metadata.DeduplicatingItemIdMergeStrategy;
 import net.shibboleth.metadata.Item;
 import net.shibboleth.metadata.ItemId;
 import net.shibboleth.metadata.MockItem;
+import net.shibboleth.shared.collection.CollectionSupport;
 
 import org.testng.Assert;
 import org.testng.annotations.Test;
@@ -34,23 +37,25 @@ import org.testng.annotations.Test;
 /** {@link PipelineMergeStage} unit test. */
 public class PipelineMergeStageTest {
 
-    private <T> List<T> newSingletonList(T element) {
+    private @Nonnull <T> List<T> newSingletonList(T element) {
         final List<T> list = new ArrayList<>();
         list.add(element);
         return list;
     }
     
-    private <T> List<T> newTwoElementList(T element1, T element2) {
+    private @Nonnull <T> List<T> newTwoElementList(T element1, T element2) {
         final List<T> list = new ArrayList<>();
         list.add(element1);
         list.add(element2);
         return list;
     }
     
+    @SuppressWarnings("removal")
     @Test public void testExecutorService() {
         PipelineMergeStage<Object> stage = new PipelineMergeStage<>();
 
         ExecutorService executor = Executors.newSingleThreadExecutor();
+        assert executor != null;
         stage.setExecutorService(executor);
         Assert.assertEquals(stage.getExecutorService(), executor);
     }
@@ -59,6 +64,7 @@ public class PipelineMergeStageTest {
         PipelineMergeStage<Object> stage = new PipelineMergeStage<>();
 
         ExecutorService executor = Executors.newSingleThreadExecutor();
+        assert executor != null;
         stage.setExecutor(executor);
         Assert.assertEquals(stage.getExecutor(), executor);
     }
@@ -144,7 +150,7 @@ public class PipelineMergeStageTest {
         MockItem item6 = new MockItem("item6");
         source1.add(item6);
 
-        strategy.merge(target, List.of(source1));
+        strategy.merge(target, CollectionSupport.listOf(source1));
         Assert.assertTrue(target.contains(item1));
         Assert.assertTrue(target.contains(item2));
         Assert.assertTrue(target.contains(item3));
@@ -188,7 +194,7 @@ public class PipelineMergeStageTest {
         item9.getItemMetadata().put(new ItemId("itemA"));
         source2.add(item9);
 
-        strategy.merge(target, List.of(source1, source2));
+        strategy.merge(target, CollectionSupport.listOf(source1, source2));
         Assert.assertTrue(target.contains(item1));
         Assert.assertTrue(target.contains(item2));
         Assert.assertTrue(target.contains(item3));

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


More information about the commits mailing list