diff --git a/api/src/main/java/jakarta/xml/bind/DatatypeConverterImpl.java b/api/src/main/java/jakarta/xml/bind/DatatypeConverterImpl.java
index 7329565..c394800 100644
--- a/api/src/main/java/jakarta/xml/bind/DatatypeConverterImpl.java
+++ b/api/src/main/java/jakarta/xml/bind/DatatypeConverterImpl.java
@@ -253,13 +253,12 @@
 
     @Override
     public boolean parseBoolean(String lexicalXSDBoolean) {
-        Boolean b = _parseBoolean(lexicalXSDBoolean);
-        return (b == null) ? false : b;
+        return _parseBoolean(lexicalXSDBoolean);
     }
 
     public static Boolean _parseBoolean(CharSequence literal) {
         if (literal == null) {
-            return null;
+            throw new IllegalArgumentException("String \"null\" is not valid boolean value.");
         }
 
         int i = 0;
@@ -268,7 +267,7 @@
         boolean value = false;
 
         if (literal.length() <= 0) {
-            return null;
+            throw new IllegalArgumentException("String \"\" is not valid boolean value.");
         }
 
         do {
@@ -293,9 +292,8 @@
                 if (strIndex == 3) {
                     value = true;
                 } else {
-                    return false;
+                    throw new IllegalArgumentException("String \"" + literal + "\" is not valid boolean value.");
                 }
-//                    throw new IllegalArgumentException("String \"" + literal + "\" is not valid boolean value.");
 
                 break;
             case 'f':
@@ -308,9 +306,8 @@
                 if (strIndex == 4) {
                     value = false;
                 } else {
-                    return false;
+                    throw new IllegalArgumentException("String \"" + literal + "\" is not valid boolean value.");
                 }
-//                    throw new IllegalArgumentException("String \"" + literal + "\" is not valid boolean value.");
 
                 break;
         }
@@ -323,10 +320,8 @@
 
         if (i == len) {
             return value;
-        } else {
-            return null;
         }
-//            throw new IllegalArgumentException("String \"" + literal + "\" is not valid boolean value.");
+        throw new IllegalArgumentException("String \"" + literal + "\" is not valid boolean value.");
     }
 
     @Override
diff --git a/etc/spotbugs-exclude.xml b/etc/spotbugs-exclude.xml
index ceb087f..5ce58f2 100644
--- a/etc/spotbugs-exclude.xml
+++ b/etc/spotbugs-exclude.xml
@@ -22,15 +22,6 @@
 
     <!--
     TODO: reevaluate for MR
-    As designed, impossible to change, maybe with MR.
-    -->
-    <Match>
-        <Class name="jakarta.xml.bind.DatatypeConverterImpl"/>
-        <Bug pattern="NP_BOOLEAN_RETURN_NULL"/>
-    </Match>
-
-    <!--
-    TODO: reevaluate for MR
     As designed, impossible to change, maybe with MR?
     -->
     <Match>
