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

coheigea pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/ws-xmlschema.git


The following commit(s) were added to refs/heads/master by this push:
     new d91d470a Fix test on JDK8 (#186)
d91d470a is described below

commit d91d470a238df33ffdc094da9b7a50d5dfd33518
Author: Colm O hEigeartaigh <[email protected]>
AuthorDate: Fri Sep 25 16:12:16 2026 +0100

    Fix test on JDK8 (#186)
---
 .../test/java/tests/DefaultURIResolverTest.java    | 22 +++++++++++++++++++++-
 1 file changed, 21 insertions(+), 1 deletion(-)

diff --git a/xmlschema-core/src/test/java/tests/DefaultURIResolverTest.java 
b/xmlschema-core/src/test/java/tests/DefaultURIResolverTest.java
index e3a2cd7b..f1339e3d 100644
--- a/xmlschema-core/src/test/java/tests/DefaultURIResolverTest.java
+++ b/xmlschema-core/src/test/java/tests/DefaultURIResolverTest.java
@@ -144,11 +144,31 @@ public class DefaultURIResolverTest extends Assert {
         }
     }
 
+    /**
+     * Refused, without requiring a particular reason. Which layer refuses a 
location depends on the
+     * running JDK: composing a base URI with a scheme the JDK has no handler 
for fails in
+     * {@link java.net.URL} before this resolver's own checks see it. Both 
outcomes are a refusal,
+     * which is what matters here.
+     */
+    private static void assertRefused(String schemaLocation, String baseUri) {
+        DefaultURIResolver resolver = new DefaultURIResolver();
+        try {
+            resolver.resolveEntity("urn:x", schemaLocation, baseUri);
+            fail("The location \"" + schemaLocation + "\" must be refused.");
+        } catch (XmlSchemaException expected) {
+            // expected, whichever layer refused it
+        }
+    }
+
     @Test
     public void testDisallowedSchemesAreRefusedFromALocalBase() {
         assertSchemeRefused("mailto:[email protected]";, localBase());
-        assertSchemeRefused("jrt:/java.base/java/lang/Object.class", 
localBase());
         assertSchemeRefused("ftp://attacker.example/x.xsd";, localBase());
+        // jrt: has no URL handler before Java 9, where composing it with the 
base fails in
+        // java.net.URL rather than reaching the scheme check, so only require 
the refusal.
+        assertRefused("jrt:/java.base/java/lang/Object.class", localBase());
+        // A scheme no JDK has a handler for, to cover that path on every JDK.
+        assertRefused("nosuchscheme:/x.xsd", localBase());
     }
 
     @Test

Reply via email to