You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@commons.apache.org by se...@apache.org on 2015/11/10 02:00:59 UTC

svn commit: r1713572 - in /commons/proper/validator/trunk/src: changes/changes.xml main/java/org/apache/commons/validator/routines/checkdigit/IBANCheckDigit.java test/java/org/apache/commons/validator/routines/checkdigit/IBANCheckDigitTest.java

Author: sebb
Date: Tue Nov 10 01:00:59 2015
New Revision: 1713572

URL: http://svn.apache.org/viewvc?rev=1713572&view=rev
Log:
VALIDATOR-330 IBANCheckDigit.isValid() returns True for some invalid IBANs

Modified:
    commons/proper/validator/trunk/src/changes/changes.xml
    commons/proper/validator/trunk/src/main/java/org/apache/commons/validator/routines/checkdigit/IBANCheckDigit.java
    commons/proper/validator/trunk/src/test/java/org/apache/commons/validator/routines/checkdigit/IBANCheckDigitTest.java

Modified: commons/proper/validator/trunk/src/changes/changes.xml
URL: http://svn.apache.org/viewvc/commons/proper/validator/trunk/src/changes/changes.xml?rev=1713572&r1=1713571&r2=1713572&view=diff
==============================================================================
--- commons/proper/validator/trunk/src/changes/changes.xml (original)
+++ commons/proper/validator/trunk/src/changes/changes.xml Tue Nov 10 01:00:59 2015
@@ -90,6 +90,9 @@ The dependencies for Validator have not
 For the current list of dependencies, please see
 http://commons.apache.org/validator/dependencies.html
   ">
+    <action issue="VALIDATOR-330" type="fix" dev="sebb">
+    IBANCheckDigit.isValid() returns True for some invalid IBANs
+    </action>
     <action issue="VALIDATOR-380" type="fix" dev="sebb">
     UrlValidator does not allow for optional port digits
     </action>

Modified: commons/proper/validator/trunk/src/main/java/org/apache/commons/validator/routines/checkdigit/IBANCheckDigit.java
URL: http://svn.apache.org/viewvc/commons/proper/validator/trunk/src/main/java/org/apache/commons/validator/routines/checkdigit/IBANCheckDigit.java?rev=1713572&r1=1713571&r2=1713572&view=diff
==============================================================================
--- commons/proper/validator/trunk/src/main/java/org/apache/commons/validator/routines/checkdigit/IBANCheckDigit.java (original)
+++ commons/proper/validator/trunk/src/main/java/org/apache/commons/validator/routines/checkdigit/IBANCheckDigit.java Tue Nov 10 01:00:59 2015
@@ -68,6 +68,10 @@ public final class IBANCheckDigit implem
         if (code == null || code.length() < 5) {
             return false;
         }
+        String check = code.substring(2,4);
+        if ("00".equals(check) || "01".equals(check) || "99".equals(check)) {
+            return false;
+        }
         try {
             int modulusResult = calculateModulus(code);
             return (modulusResult == 1);

Modified: commons/proper/validator/trunk/src/test/java/org/apache/commons/validator/routines/checkdigit/IBANCheckDigitTest.java
URL: http://svn.apache.org/viewvc/commons/proper/validator/trunk/src/test/java/org/apache/commons/validator/routines/checkdigit/IBANCheckDigitTest.java?rev=1713572&r1=1713571&r2=1713572&view=diff
==============================================================================
--- commons/proper/validator/trunk/src/test/java/org/apache/commons/validator/routines/checkdigit/IBANCheckDigitTest.java (original)
+++ commons/proper/validator/trunk/src/test/java/org/apache/commons/validator/routines/checkdigit/IBANCheckDigitTest.java Tue Nov 10 01:00:59 2015
@@ -101,7 +101,12 @@ public class IBANCheckDigitTest extends
          *  https://intranet.birmingham.ac.uk/finance/documents/public/IBAN.pdf
          *  http://www.paymentscouncil.org.uk/resources_and_publications/ibans_in_europe/
          */
-        invalid = new String[] {"510007+47061BE63"};
+        invalid = new String[] {
+                "510007+47061BE63",
+                "IE01AIBK93118702569045",
+                "AA0000000000089",
+                "AA9900000000053",
+        };
         zeroSum = null;
         missingMessage = "Invalid Code length=0";