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

Ian Young ian at iay.org.uk
Wed Apr 5 12:38:17 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=77e65b3fe72c63eeb7581ea7f7cd830883b72b29

commit 77e65b3fe72c63eeb7581ea7f7cd830883b72b29
Author: Ian Young <ian at iay.org.uk>
AuthorDate: Wed Apr 5 10:44:37 2023 +0100

    Nullability
---
 .../metadata/AbstractCompositeItemIdentificationStrategy.java    | 6 ++++--
 .../main/java/net/shibboleth/metadata/dom/ds/XMLDSIGSupport.java | 3 ++-
 .../net/shibboleth/metadata/dom/impl/XMLSignatureSigner.java     | 9 +++++++--
 .../shibboleth/metadata/dom/saml/RemoveOrganizationStage.java    | 1 +
 .../net/shibboleth/metadata/validate/x509/X509DSADetector.java   | 8 ++++----
 .../shibboleth/metadata/dom/XMLSchemaValidationStageTest.java    | 4 +++-
 .../net/shibboleth/metadata/pipeline/ItemOrderingStageTest.java  | 7 +++++--
 7 files changed, 26 insertions(+), 12 deletions(-)

diff --git a/mda-framework/src/main/java/net/shibboleth/metadata/AbstractCompositeItemIdentificationStrategy.java b/mda-framework/src/main/java/net/shibboleth/metadata/AbstractCompositeItemIdentificationStrategy.java
index 6bc1c54..7bd5795 100644
--- a/mda-framework/src/main/java/net/shibboleth/metadata/AbstractCompositeItemIdentificationStrategy.java
+++ b/mda-framework/src/main/java/net/shibboleth/metadata/AbstractCompositeItemIdentificationStrategy.java
@@ -101,8 +101,10 @@ public abstract class AbstractCompositeItemIdentificationStrategy<T> implements
             res.append(extra);
             res.append(")");
         }
-        
-        return res.toString();
+
+        final var result = res.toString();
+        assert result != null;
+        return result;
     }
 
 }
diff --git a/mda-framework/src/main/java/net/shibboleth/metadata/dom/ds/XMLDSIGSupport.java b/mda-framework/src/main/java/net/shibboleth/metadata/dom/ds/XMLDSIGSupport.java
index 250bfee..b73ed1d 100644
--- a/mda-framework/src/main/java/net/shibboleth/metadata/dom/ds/XMLDSIGSupport.java
+++ b/mda-framework/src/main/java/net/shibboleth/metadata/dom/ds/XMLDSIGSupport.java
@@ -17,6 +17,7 @@
 
 package net.shibboleth.metadata.dom.ds;
 
+import javax.annotation.Nonnull;
 import javax.annotation.concurrent.ThreadSafe;
 import javax.xml.crypto.dsig.XMLSignature;
 import javax.xml.namespace.QName;
@@ -30,7 +31,7 @@ import javax.xml.namespace.QName;
 public final class XMLDSIGSupport {
 
     /** Signature element name. */
-    public static final QName SIGNATURE_NAME = new QName(XMLSignature.XMLNS, "Signature");
+    public static final @Nonnull QName SIGNATURE_NAME = new QName(XMLSignature.XMLNS, "Signature");
 
     /** Constructor. */
     private XMLDSIGSupport() {
diff --git a/mda-framework/src/main/java/net/shibboleth/metadata/dom/impl/XMLSignatureSigner.java b/mda-framework/src/main/java/net/shibboleth/metadata/dom/impl/XMLSignatureSigner.java
index f6d564b..4d20722 100644
--- a/mda-framework/src/main/java/net/shibboleth/metadata/dom/impl/XMLSignatureSigner.java
+++ b/mda-framework/src/main/java/net/shibboleth/metadata/dom/impl/XMLSignatureSigner.java
@@ -161,10 +161,12 @@ public class XMLSignatureSigner {
     /* Fields created during construction. */
 
     /** Factory used to create XML signature objects. */
-    @Nonnull private final XMLSignatureFactory xmlSigFactory = XMLSignatureFactory.getInstance();
+    @SuppressWarnings("null")
+    private final @Nonnull XMLSignatureFactory xmlSigFactory = XMLSignatureFactory.getInstance();
 
     /** Factory used to create KeyInfo objects. */
-    @Nonnull private KeyInfoFactory keyInfoFactory = xmlSigFactory.getKeyInfoFactory();
+    @SuppressWarnings("null")
+    private final @Nonnull KeyInfoFactory keyInfoFactory = xmlSigFactory.getKeyInfoFactory();
 
     /**
      * Constructor.
@@ -281,6 +283,8 @@ public class XMLSignatureSigner {
         if (removingCRsFromSignature) {
             final Element signatureElement = ElementSupport.getFirstChildElement(element,
                     XMLDSIGSupport.SIGNATURE_NAME);
+            // Must be present, by construction
+            assert signatureElement != null;
             removeCRsFromNamedChildren(signatureElement, "SignatureValue");
             removeCRsFromNamedChildren(signatureElement, "X509Certificate");
         }
@@ -396,6 +400,7 @@ public class XMLSignatureSigner {
         if (idAttributeNames != null && !idAttributeNames.isEmpty()) {
             for (int i = 0; i < attributes.getLength(); i++) {
                 final Attr attribute = (Attr) attributes.item(i);
+                assert attribute != null;
                 if (idAttributeNames.contains(QNameSupport.getNodeQName(attribute))) {
                     // mark the attribute as an ID attribute so that it can be referenced by the signature
                     target.setIdAttributeNode(attribute, true);
diff --git a/mda-framework/src/main/java/net/shibboleth/metadata/dom/saml/RemoveOrganizationStage.java b/mda-framework/src/main/java/net/shibboleth/metadata/dom/saml/RemoveOrganizationStage.java
index 0dcb9e0..c4addf0 100644
--- a/mda-framework/src/main/java/net/shibboleth/metadata/dom/saml/RemoveOrganizationStage.java
+++ b/mda-framework/src/main/java/net/shibboleth/metadata/dom/saml/RemoveOrganizationStage.java
@@ -57,6 +57,7 @@ public class RemoveOrganizationStage extends AbstractIteratingStage<Element> {
     protected void processEntitiesDescriptor(@Nonnull final Element entitiesDescriptor) {
         final List<Element> children = ElementSupport.getChildElements(entitiesDescriptor);
         for (final Element child : children) {
+            assert child != null;
             if (SAMLMetadataSupport.isEntitiesDescriptor(child)) {
                 processEntitiesDescriptor(child);
             } else if (SAMLMetadataSupport.isEntityDescriptor(child)) {
diff --git a/mda-framework/src/main/java/net/shibboleth/metadata/validate/x509/X509DSADetector.java b/mda-framework/src/main/java/net/shibboleth/metadata/validate/x509/X509DSADetector.java
index 6f66a98..da2a58b 100644
--- a/mda-framework/src/main/java/net/shibboleth/metadata/validate/x509/X509DSADetector.java
+++ b/mda-framework/src/main/java/net/shibboleth/metadata/validate/x509/X509DSADetector.java
@@ -55,8 +55,8 @@ public class X509DSADetector extends BaseValidator implements Validator<X509Cert
      * {@link net.shibboleth.metadata.validate.Validator.Action} to return when a DSA key is detected. Default:
      * {@link net.shibboleth.metadata.validate.Validator.Action#DONE}.
      */
-    @Nonnull @GuardedBy("this")
-    private Action action = Action.DONE;
+    @GuardedBy("this")
+    private @Nonnull Action action = Action.DONE;
 
     /**
      * Whether an {@link net.shibboleth.metadata.ErrorStatus} should be added on failure.
@@ -70,7 +70,7 @@ public class X509DSADetector extends BaseValidator implements Validator<X509Cert
      *
      * @return the {@link net.shibboleth.metadata.validate.Validator.Action} to be returned
      */
-    public final synchronized Action getAction() {
+    public final synchronized @Nonnull Action getAction() {
         return action;
     }
 
@@ -104,7 +104,7 @@ public class X509DSADetector extends BaseValidator implements Validator<X509Cert
     }
 
     @Override
-    public Action validate(@Nonnull final X509Certificate cert, @Nonnull final Item<?> item,
+    public @Nonnull Action validate(@Nonnull final X509Certificate cert, @Nonnull final Item<?> item,
             @Nonnull final String stageId) {
         final PublicKey key = cert.getPublicKey();
         if ("DSA".equals(key.getAlgorithm())) {
diff --git a/mda-framework/src/test/java/net/shibboleth/metadata/dom/XMLSchemaValidationStageTest.java b/mda-framework/src/test/java/net/shibboleth/metadata/dom/XMLSchemaValidationStageTest.java
index b84d649..e08958d 100644
--- a/mda-framework/src/test/java/net/shibboleth/metadata/dom/XMLSchemaValidationStageTest.java
+++ b/mda-framework/src/test/java/net/shibboleth/metadata/dom/XMLSchemaValidationStageTest.java
@@ -20,6 +20,8 @@ package net.shibboleth.metadata.dom;
 import java.util.ArrayList;
 import java.util.List;
 
+import javax.annotation.Nonnull;
+
 import org.springframework.core.io.Resource;
 import org.testng.Assert;
 import org.testng.annotations.Test;
@@ -68,7 +70,7 @@ public class XMLSchemaValidationStageTest extends BaseDOMTest {
         return stage;
     }
 
-    protected List<Item<Element>> buildMetdataCollection(String xmlPath) throws Exception {
+    protected @Nonnull List<Item<Element>> buildMetdataCollection(@Nonnull String xmlPath) throws Exception {
         final Element element = readXMLData(xmlPath);
         final List<Item<Element>> mdCol = new ArrayList<>();
         mdCol.add(new DOMElementItem(element));
diff --git a/mda-framework/src/test/java/net/shibboleth/metadata/pipeline/ItemOrderingStageTest.java b/mda-framework/src/test/java/net/shibboleth/metadata/pipeline/ItemOrderingStageTest.java
index d8a8457..110ba94 100644
--- a/mda-framework/src/test/java/net/shibboleth/metadata/pipeline/ItemOrderingStageTest.java
+++ b/mda-framework/src/test/java/net/shibboleth/metadata/pipeline/ItemOrderingStageTest.java
@@ -5,22 +5,25 @@ import java.util.ArrayList;
 import java.util.Collections;
 import java.util.List;
 
+import javax.annotation.Nonnull;
+
 import org.testng.Assert;
 import org.testng.annotations.Test;
 
 import net.shibboleth.metadata.Item;
 import net.shibboleth.metadata.MockItem;
+import net.shibboleth.shared.collection.CollectionSupport;
 
 public class ItemOrderingStageTest {
 
     private class ReversalOrderingStrategy<T> implements ItemOrderingStrategy<T> {
 
         @Override
-        public List<Item<T>> order(List<Item<T>> items) throws StageProcessingException {
+        public @Nonnull List<Item<T>> order(@Nonnull List<Item<T>> items) throws StageProcessingException {
             final var collection = new ArrayList<Item<T>>();
             collection.addAll(items);
             Collections.reverse(collection);
-            return List.copyOf(collection);
+            return CollectionSupport.copyToList(collection);
         }
         
     }

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


More information about the commits mailing list