< prev index next >

test/jdk/sun/net/www/protocol/jar/MultiReleaseJarURLConnection.java

Print this page

        

@@ -1,7 +1,7 @@
 /*
- * Copyright (c) 2015, 2016, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2015, 2018, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
  * under the terms of the GNU General Public License version 2 only, as
  * published by the Free Software Foundation.

@@ -21,11 +21,11 @@
  * questions.
  */
 
 /*
  * @test
- * @bug 8132734 8144062 8159785
+ * @bug 8132734 8144062 8159785 8194070
  * @summary Test that URL connections to multi-release jars can be runtime versioned
  * @library /lib/testlibrary/java/util/jar
  * @modules jdk.compiler
  *          jdk.httpserver
  *          jdk.jartool

@@ -94,11 +94,11 @@
 
     @Test(dataProvider = "data")
     public void testRuntimeVersioning(String style, String file) throws Exception {
         String urlFile = "jar:file:" + file + "!/";
         String baseUrlEntry = urlFile + "version/Version.java";
-        String rtreturn = "return " + Runtime.version().major();
+        String rtreturn = "return " + Math.min(Runtime.version().major(), 10);
 
         Assert.assertTrue(readAndCompare(new URL(baseUrlEntry), "return 8"));
         // #runtime is "magic" for a multi-release jar, but not for unversioned jar
         Assert.assertTrue(readAndCompare(new URL(baseUrlEntry + "#runtime"),
                 style.equals("unversioned") ? "return 8" : rtreturn));

@@ -106,25 +106,27 @@
         Assert.assertTrue(readAndCompare(new URL(baseUrlEntry + "#fragment"), "return 8"));
         // cached entities not affected
         Assert.assertTrue(readAndCompare(new URL(baseUrlEntry), "return 8"));
 
         // the following tests will not work with unversioned jars
-        if (style.equals("unversioned")) return;
+        if (style.equals("unversioned"))
+            return;
 
         // direct access to versioned entry
-        String versUrlEntry = urlFile + "META-INF/versions/" + Runtime.version().major()
+        String versUrlEntry = urlFile + "META-INF/versions/" +
+            Math.min(Runtime.version().major(), 10)
                 + "/version/Version.java";
         Assert.assertTrue(readAndCompare(new URL(versUrlEntry), rtreturn));
         // adding any fragment does not change things
         Assert.assertTrue(readAndCompare(new URL(versUrlEntry + "#runtime"), rtreturn));
         Assert.assertTrue(readAndCompare(new URL(versUrlEntry + "#fragment"), rtreturn));
 
         // it really doesn't change things
-        versUrlEntry = urlFile + "META-INF/versions/10/version/Version.java";
-        Assert.assertTrue(readAndCompare(new URL(versUrlEntry), "return 10"));
-        Assert.assertTrue(readAndCompare(new URL(versUrlEntry + "#runtime"), "return 10"));
-        Assert.assertTrue(readAndCompare(new URL(versUrlEntry + "#fragment"), "return 10"));
+        // versUrlEntry = urlFile + "META-INF/versions/10/version/Version.java";
+        // Assert.assertTrue(readAndCompare(new URL(versUrlEntry), "return 10"));
+        // Assert.assertTrue(readAndCompare(new URL(versUrlEntry + "#runtime"), "return 10"));
+        // Assert.assertTrue(readAndCompare(new URL(versUrlEntry + "#fragment"), "return 10"));
     }
 
     @Test(dataProvider = "data")
     public void testCachedJars(String style, String file) throws Exception {
         String urlFile = "jar:file:" + file + "!/";

@@ -187,11 +189,13 @@
 
         // verify we are loading a runtime versioned class
         MethodType mt = MethodType.methodType(int.class);
         MethodHandle mh = MethodHandles.lookup().findVirtual(vcls, "getVersion", mt);
         Assert.assertEquals((int)mh.invoke(vcls.newInstance()),
-                style.equals("unversioned") ? 8 : Runtime.version().major());
+                style.equals("unversioned") ?
+                            8 :
+                            Math.min(Runtime.version().major(), 10));
 
         // now get a resource and verify that we don't have a fragment attached
         Enumeration<URL> vclsUrlEnum = cldr.getResources("version/Version.class");
         Assert.assertTrue(vclsUrlEnum.hasMoreElements());
         URL vclsUrls[] = new URL[] {

@@ -215,11 +219,11 @@
             }
             String suffix;
             if (style.equals("unversioned")) {
                 suffix = ".jar!/version/Version.class";
             } else {
-                suffix = ".jar!/META-INF/versions/" + Runtime.version().major()
+                suffix = ".jar!/META-INF/versions/" + Math.min(Runtime.version().major(), 10)
                         + "/version/Version.class";
             }
             Assert.assertTrue(rep.endsWith(suffix));
         }
         cldr.close();
< prev index next >