[java-shib-attribute] 04/05: IDP-2069 Null handling task

Rod Widdowson rdw at steadingsoftware.com
Wed May 3 13:53:31 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=1e61a4aa13ab26e7dcf3cd01ab0636003020a3ea

commit 1e61a4aa13ab26e7dcf3cd01ab0636003020a3ea
Author: Rod Widdowson <rdw at steadingsoftware.com>
AuthorDate: Mon May 1 14:40:06 2023 +0100

    IDP-2069 Null handling task
    
    https://shibboleth.atlassian.net/browse/IDP-2069
    
    Fix the easier-to-fix warnings in shib-attribute-api
    
    Add appropriatre @nonNullBeforeTest annotations as well
---
 .../java/net/shibboleth/idp/attribute/ByteAttributeValue.java |  4 +++-
 .../net/shibboleth/idp/attribute/DateTimeAttributeValue.java  |  8 ++++++--
 .../net/shibboleth/idp/attribute/EmptyAttributeValue.java     |  4 +++-
 .../main/java/net/shibboleth/idp/attribute/IdPAttribute.java  |  4 +++-
 .../idp/attribute/config/BeanConfigurationLookupStrategy.java |  4 +++-
 .../attribute/config/BooleanConfigurationLookupStrategy.java  |  4 +++-
 .../attribute/config/DoubleConfigurationLookupStrategy.java   |  4 +++-
 .../attribute/config/DurationConfigurationLookupStrategy.java |  4 +++-
 .../attribute/config/IntegerConfigurationLookupStrategy.java  |  5 ++++-
 .../idp/attribute/config/LongConfigurationLookupStrategy.java |  4 +++-
 .../attribute/config/StringConfigurationLookupStrategy.java   |  4 +++-
 .../shibboleth/idp/attribute/context/AttributeContext.java    |  1 -
 .../shibboleth/idp/attribute/transcoding/TranscodingRule.java | 10 ++++++----
 .../shibboleth/idp/attribute/XMLObjectAttributeValueTest.java | 11 +++++++----
 14 files changed, 50 insertions(+), 21 deletions(-)

diff --git a/shib-attribute-api/src/main/java/net/shibboleth/idp/attribute/ByteAttributeValue.java b/shib-attribute-api/src/main/java/net/shibboleth/idp/attribute/ByteAttributeValue.java
index 54f8e4534..b189af9ee 100644
--- a/shib-attribute-api/src/main/java/net/shibboleth/idp/attribute/ByteAttributeValue.java
+++ b/shib-attribute-api/src/main/java/net/shibboleth/idp/attribute/ByteAttributeValue.java
@@ -70,7 +70,9 @@ public final class ByteAttributeValue implements IdPAttributeValue {
      * @return a hex-encoded string
      */
     @Nonnull public String toHex() {
-        return Hex.encodeHexString(value);
+        final String result = Hex.encodeHexString(value);
+        assert result != null;
+        return result;
     }
 
     /**
diff --git a/shib-attribute-api/src/main/java/net/shibboleth/idp/attribute/DateTimeAttributeValue.java b/shib-attribute-api/src/main/java/net/shibboleth/idp/attribute/DateTimeAttributeValue.java
index e40ae9194..56864ae90 100644
--- a/shib-attribute-api/src/main/java/net/shibboleth/idp/attribute/DateTimeAttributeValue.java
+++ b/shib-attribute-api/src/main/java/net/shibboleth/idp/attribute/DateTimeAttributeValue.java
@@ -56,7 +56,9 @@ public class DateTimeAttributeValue implements IdPAttributeValue {
      */
     public DateTimeAttributeValue(
             @Nonnull @ParameterName(name="attributeValue") final ZonedDateTime attributeValue) {
-        value = Constraint.isNotNull(attributeValue, "Attribute value cannot be null or empty").toInstant();
+        final Instant val = Constraint.isNotNull(attributeValue, "Attribute value cannot be null or empty").toInstant();
+        assert val!=null;
+        value = val;
     }
 
     /** {@inheritDoc} */
@@ -73,7 +75,9 @@ public class DateTimeAttributeValue implements IdPAttributeValue {
 
     /** {@inheritDoc} */
     @Nonnull @NotEmpty public String getDisplayValue() {
-        return value.toString();
+        final String result = value.toString();
+        assert result != null;
+        return result;
     }
 
     /** {@inheritDoc} */
diff --git a/shib-attribute-api/src/main/java/net/shibboleth/idp/attribute/EmptyAttributeValue.java b/shib-attribute-api/src/main/java/net/shibboleth/idp/attribute/EmptyAttributeValue.java
index 9533ee34b..9d22f51d5 100644
--- a/shib-attribute-api/src/main/java/net/shibboleth/idp/attribute/EmptyAttributeValue.java
+++ b/shib-attribute-api/src/main/java/net/shibboleth/idp/attribute/EmptyAttributeValue.java
@@ -75,7 +75,9 @@ public final class EmptyAttributeValue implements IdPAttributeValue {
 
     /** {@inheritDoc} */
     @Nonnull @NotEmpty public String getDisplayValue() {
-        return value.toString();
+        final String result = value.toString();
+        assert result != null;
+        return result;
     }
 
     /** {@inheritDoc} */
diff --git a/shib-attribute-api/src/main/java/net/shibboleth/idp/attribute/IdPAttribute.java b/shib-attribute-api/src/main/java/net/shibboleth/idp/attribute/IdPAttribute.java
index 80a44a7e6..334d6e4dd 100644
--- a/shib-attribute-api/src/main/java/net/shibboleth/idp/attribute/IdPAttribute.java
+++ b/shib-attribute-api/src/main/java/net/shibboleth/idp/attribute/IdPAttribute.java
@@ -206,7 +206,9 @@ public class IdPAttribute implements Comparable<IdPAttribute>, Cloneable {
     /** {@inheritDoc} */
     @Override
     @Nonnull public String toString() {
-        return MoreObjects.toStringHelper(this).add("id", getId()).add("values", values).toString();
+        final String result = MoreObjects.toStringHelper(this).add("id", getId()).add("values", values).toString();
+        assert result != null;
+        return result;
     }
     
 }
diff --git a/shib-attribute-api/src/main/java/net/shibboleth/idp/attribute/config/BeanConfigurationLookupStrategy.java b/shib-attribute-api/src/main/java/net/shibboleth/idp/attribute/config/BeanConfigurationLookupStrategy.java
index 7f4df6613..8c3eab15c 100644
--- a/shib-attribute-api/src/main/java/net/shibboleth/idp/attribute/config/BeanConfigurationLookupStrategy.java
+++ b/shib-attribute-api/src/main/java/net/shibboleth/idp/attribute/config/BeanConfigurationLookupStrategy.java
@@ -131,7 +131,9 @@ public class BeanConfigurationLookupStrategy<T> extends AbstractMetadataDrivenCo
         }
         
         log.debug("Converting tag '{}' to Bean property of tyoe '{}'", tag.getName(), propertyType.getSimpleName());
-        return xmlObjectToBean(values.get(0));
+        final XMLObject value = values.get(0);
+        assert value != null;
+        return xmlObjectToBean(value);
     }
     
     /**
diff --git a/shib-attribute-api/src/main/java/net/shibboleth/idp/attribute/config/BooleanConfigurationLookupStrategy.java b/shib-attribute-api/src/main/java/net/shibboleth/idp/attribute/config/BooleanConfigurationLookupStrategy.java
index 5a2fcb8cb..b7052e45f 100644
--- a/shib-attribute-api/src/main/java/net/shibboleth/idp/attribute/config/BooleanConfigurationLookupStrategy.java
+++ b/shib-attribute-api/src/main/java/net/shibboleth/idp/attribute/config/BooleanConfigurationLookupStrategy.java
@@ -78,7 +78,9 @@ public class BooleanConfigurationLookupStrategy extends AbstractMetadataDrivenCo
         }
         
         log.debug("Converting tag '{}' to Boolean property", tag.getName());
-        return xmlObjectToBoolean(values.get(0));
+        final XMLObject value = values.get(0);
+        assert value != null;
+        return xmlObjectToBoolean(value);
     }
     
 // Checkstyle: CyclomaticComplexity OFF
diff --git a/shib-attribute-api/src/main/java/net/shibboleth/idp/attribute/config/DoubleConfigurationLookupStrategy.java b/shib-attribute-api/src/main/java/net/shibboleth/idp/attribute/config/DoubleConfigurationLookupStrategy.java
index 490a039cf..2f924d0b9 100644
--- a/shib-attribute-api/src/main/java/net/shibboleth/idp/attribute/config/DoubleConfigurationLookupStrategy.java
+++ b/shib-attribute-api/src/main/java/net/shibboleth/idp/attribute/config/DoubleConfigurationLookupStrategy.java
@@ -78,7 +78,9 @@ public class DoubleConfigurationLookupStrategy extends AbstractMetadataDrivenCon
         }
         
         log.debug("Converting tag '{}' to Double property", tag.getName());
-        return xmlObjectToDouble(values.get(0));
+        final XMLObject value = values.get(0);
+        assert value != null;
+        return xmlObjectToDouble(value);
     }
     
 // Checkstyle: CyclomaticComplexity OFF
diff --git a/shib-attribute-api/src/main/java/net/shibboleth/idp/attribute/config/DurationConfigurationLookupStrategy.java b/shib-attribute-api/src/main/java/net/shibboleth/idp/attribute/config/DurationConfigurationLookupStrategy.java
index f07b2e1b2..eee2769b2 100644
--- a/shib-attribute-api/src/main/java/net/shibboleth/idp/attribute/config/DurationConfigurationLookupStrategy.java
+++ b/shib-attribute-api/src/main/java/net/shibboleth/idp/attribute/config/DurationConfigurationLookupStrategy.java
@@ -93,7 +93,9 @@ public class DurationConfigurationLookupStrategy extends AbstractMetadataDrivenC
         }
         
         log.debug("Converting tag '{}' to Duration property", tag.getName());
-        return xmlObjectToDuration(values.get(0));
+        final XMLObject value = values.get(0);
+        assert value != null;
+        return xmlObjectToDuration(value);
     }
     
 // Checkstyle: CyclomaticComplexity OFF
diff --git a/shib-attribute-api/src/main/java/net/shibboleth/idp/attribute/config/IntegerConfigurationLookupStrategy.java b/shib-attribute-api/src/main/java/net/shibboleth/idp/attribute/config/IntegerConfigurationLookupStrategy.java
index 11700a8f8..7297f8c7c 100644
--- a/shib-attribute-api/src/main/java/net/shibboleth/idp/attribute/config/IntegerConfigurationLookupStrategy.java
+++ b/shib-attribute-api/src/main/java/net/shibboleth/idp/attribute/config/IntegerConfigurationLookupStrategy.java
@@ -78,7 +78,10 @@ public class IntegerConfigurationLookupStrategy extends AbstractMetadataDrivenCo
         }
         
         log.debug("Converting tag '{}' to Integer property", tag.getName());
-        return xmlObjectToInteger(values.get(0));
+        final XMLObject value = values.get(0);
+        assert value != null;
+
+        return xmlObjectToInteger(value);
     }
     
 // Checkstyle: CyclomaticComplexity OFF
diff --git a/shib-attribute-api/src/main/java/net/shibboleth/idp/attribute/config/LongConfigurationLookupStrategy.java b/shib-attribute-api/src/main/java/net/shibboleth/idp/attribute/config/LongConfigurationLookupStrategy.java
index d93ea7bd5..b8613dc71 100644
--- a/shib-attribute-api/src/main/java/net/shibboleth/idp/attribute/config/LongConfigurationLookupStrategy.java
+++ b/shib-attribute-api/src/main/java/net/shibboleth/idp/attribute/config/LongConfigurationLookupStrategy.java
@@ -80,7 +80,9 @@ public class LongConfigurationLookupStrategy extends AbstractMetadataDrivenConfi
         }
         
         log.debug("Converting tag '{}' to Long property", tag.getName());
-        return xmlObjectToLong(values.get(0));
+        final XMLObject value = values.get(0);
+        assert value != null;
+        return xmlObjectToLong(value);
     }
     
 // Checkstyle: CyclomaticComplexity OFF
diff --git a/shib-attribute-api/src/main/java/net/shibboleth/idp/attribute/config/StringConfigurationLookupStrategy.java b/shib-attribute-api/src/main/java/net/shibboleth/idp/attribute/config/StringConfigurationLookupStrategy.java
index 2a5b76e1f..688fafe65 100644
--- a/shib-attribute-api/src/main/java/net/shibboleth/idp/attribute/config/StringConfigurationLookupStrategy.java
+++ b/shib-attribute-api/src/main/java/net/shibboleth/idp/attribute/config/StringConfigurationLookupStrategy.java
@@ -82,7 +82,9 @@ public class StringConfigurationLookupStrategy extends AbstractMetadataDrivenCon
         }
         
         log.debug("Converting tag '{}' to String property", tag.getName());
-        return xmlObjectToString(values.get(0));
+        final XMLObject value = values.get(0);
+        assert value != null;
+        return xmlObjectToString(value);
     }
     
 // Checkstyle: CyclomaticComplexity OFF
diff --git a/shib-attribute-api/src/main/java/net/shibboleth/idp/attribute/context/AttributeContext.java b/shib-attribute-api/src/main/java/net/shibboleth/idp/attribute/context/AttributeContext.java
index 74471e234..15e832d53 100644
--- a/shib-attribute-api/src/main/java/net/shibboleth/idp/attribute/context/AttributeContext.java
+++ b/shib-attribute-api/src/main/java/net/shibboleth/idp/attribute/context/AttributeContext.java
@@ -19,7 +19,6 @@ package net.shibboleth.idp.attribute.context;
 
 import java.util.Collection;
 import java.util.Map;
-import java.util.stream.Collector;
 import java.util.stream.Collectors;
 
 import javax.annotation.Nonnull;
diff --git a/shib-attribute-api/src/main/java/net/shibboleth/idp/attribute/transcoding/TranscodingRule.java b/shib-attribute-api/src/main/java/net/shibboleth/idp/attribute/transcoding/TranscodingRule.java
index 97911e845..c37bd1493 100644
--- a/shib-attribute-api/src/main/java/net/shibboleth/idp/attribute/transcoding/TranscodingRule.java
+++ b/shib-attribute-api/src/main/java/net/shibboleth/idp/attribute/transcoding/TranscodingRule.java
@@ -199,8 +199,9 @@ public final class TranscodingRule {
                 }
             }
         }
-        
-        return builder.build();
+        final Map<Locale,String> result = builder.build();
+        assert result != null;
+        return result;
     }
 
     /**
@@ -231,8 +232,9 @@ public final class TranscodingRule {
                 }
             }
         }
-        
-        return builder.build();
+        final Map<Locale,String> result = builder.build();
+        assert result != null;
+        return result;
     }
     
     /**
diff --git a/shib-attribute-api/src/test/java/net/shibboleth/idp/attribute/XMLObjectAttributeValueTest.java b/shib-attribute-api/src/test/java/net/shibboleth/idp/attribute/XMLObjectAttributeValueTest.java
index ba4b0eb51..84e00fc35 100644
--- a/shib-attribute-api/src/test/java/net/shibboleth/idp/attribute/XMLObjectAttributeValueTest.java
+++ b/shib-attribute-api/src/test/java/net/shibboleth/idp/attribute/XMLObjectAttributeValueTest.java
@@ -27,12 +27,14 @@ import org.testng.Assert;
 import org.testng.annotations.BeforeClass;
 import org.testng.annotations.Test;
 
+import net.shibboleth.shared.annotation.constraint.NonnullBeforeTest;
+
 /** Unit test for {@link XMLObjectAttributeValue}. */
 public class XMLObjectAttributeValueTest extends XMLObjectBaseTestCase {
     
-    private XSString xsId1;
-    private XSString xsId2;
-    private XSString xsId3;
+    @NonnullBeforeTest private XSString xsId1;
+    @NonnullBeforeTest private XSString xsId2;
+    @NonnullBeforeTest private XSString xsId3;
     
     /** setup. */
     @BeforeClass
@@ -51,12 +53,13 @@ public class XMLObjectAttributeValueTest extends XMLObjectBaseTestCase {
 
     /** Test proper instantiation of the object. */
     @Test public void instantiation() {
+        @SuppressWarnings("null")
         final XMLObjectAttributeValue value = new XMLObjectAttributeValue(xsId1);
         Assert.assertEquals(value.getValue(), xsId1);
     }
 
     /** Test equality of two objects. */
-    @SuppressWarnings("unlikely-arg-type")
+    @SuppressWarnings({"unlikely-arg-type", "null"})
     @Test public void equality() {
         final XMLObjectAttributeValue value1 = new XMLObjectAttributeValue(xsId1);
         final XMLObjectAttributeValue value2 = new XMLObjectAttributeValue(xsId2);

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


More information about the commits mailing list