This is an automated email from the ASF dual-hosted git repository.

garydgregory pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/commons-validator.git


The following commit(s) were added to refs/heads/master by this push:
     new 6e155cd1 Accept IPv4-embedded IPv6 addresses in UrlValidator (#405).
6e155cd1 is described below

commit 6e155cd1f0ab02c0db567907f46cceecdf91aef4
Author: Gary Gregory <[email protected]>
AuthorDate: Sat Jun 20 16:15:38 2026 +0000

    Accept IPv4-embedded IPv6 addresses in UrlValidator (#405).
    
    Sort members.
---
 src/changes/changes.xml                            |  1 +
 .../validator/routines/UrlValidatorTest.java       | 24 +++++++++++-----------
 2 files changed, 13 insertions(+), 12 deletions(-)

diff --git a/src/changes/changes.xml b/src/changes/changes.xml
index 5d50df7f..1262c5ba 100644
--- a/src/changes/changes.xml
+++ b/src/changes/changes.xml
@@ -87,6 +87,7 @@ The <action> type attribute can be add,update,fix,remove.
     <action type="fix" dev="ggregory" due-to="sahvx655-wq, Gary 
Gregory">Compare Exact value in BigDecimalValidator min/max range checks 
(#401).</action>
     <action type="fix" dev="ggregory" due-to="Gary Gregory, 
sahvx655-wq">Compare exact values in BigInteger and BigDecimal Number range 
checks (#404).</action>
     <action type="fix" dev="ggregory" due-to="sahvx655-wq, Gary 
Gregory">Reject non-ASCII hex digits in isValidInet6Address (#403).</action>
+    <action type="fix" dev="ggregory" due-to="sahvx655-wq, Gary 
Gregory">Accept IPv4-embedded IPv6 addresses in UrlValidator (#405).</action>
     <!-- ADD -->
     <action type="add" dev="ggregory" due-to="Gary Gregory">Add and use 
CheckDigitException.CheckDigitException(String, Object...) (#389).</action>
     <action type="add" dev="ggregory" due-to="Gary Gregory">Add and use 
ValidatorException.ValidatorException(Throwable). Call sites that previously 
called new ValidatorException(Throwable#getMessage()) now preserve that 
exception (#390).</action>
diff --git 
a/src/test/java/org/apache/commons/validator/routines/UrlValidatorTest.java 
b/src/test/java/org/apache/commons/validator/routines/UrlValidatorTest.java
index b229e51f..63d5f169 100644
--- a/src/test/java/org/apache/commons/validator/routines/UrlValidatorTest.java
+++ b/src/test/java/org/apache/commons/validator/routines/UrlValidatorTest.java
@@ -161,6 +161,18 @@ public class UrlValidatorTest {
         assertTrue(urlValidator.isValid("http://apache.org/a/b/c#frag";));
     }
 
+    @Test
+    void testIpv6EmbeddedIpv4() {
+        final UrlValidator urlValidator = new UrlValidator();
+        // ::FFFF: in upper case already worked (testValidator452); the 
lower-case mapped form
+        // and the other IPv4-embedded notations must validate the same way.
+        
assertTrue(urlValidator.isValid("http://[::ffff:129.144.52.38]:80/index.html";));
+        assertTrue(urlValidator.isValid("http://[::1.2.3.4]/";));
+        assertTrue(urlValidator.isValid("http://[2001:db8::1.2.3.4]/";));
+        // an embedded IPv4 part with an out-of-range octet is still rejected
+        assertFalse(urlValidator.isValid("http://[::ffff:129.144.52.999]/";));
+    }
+
     @ParameterizedTest
     // @formatter:off
     @ValueSource(strings = {
@@ -668,18 +680,6 @@ public class UrlValidatorTest {
         
assertTrue(urlValidator.isValid("http://[::FFFF:129.144.52.38]:80/index.html";));
     }
 
-    @Test
-    void testIpv6EmbeddedIpv4() {
-        final UrlValidator urlValidator = new UrlValidator();
-        // ::FFFF: in upper case already worked (testValidator452); the 
lower-case mapped form
-        // and the other IPv4-embedded notations must validate the same way.
-        
assertTrue(urlValidator.isValid("http://[::ffff:129.144.52.38]:80/index.html";));
-        assertTrue(urlValidator.isValid("http://[::1.2.3.4]/";));
-        assertTrue(urlValidator.isValid("http://[2001:db8::1.2.3.4]/";));
-        // an embedded IPv4 part with an out-of-range octet is still rejected
-        assertFalse(urlValidator.isValid("http://[::ffff:129.144.52.999]/";));
-    }
-
     @Test
     void testValidator464() {
         final String[] schemes = { "file" };

Reply via email to