< prev index next >

test/hotspot/jtreg/runtime/modules/JVMDefineModule.java

Print this page
rev 58870 : 8242452: During module definition, move conversion of packages from native to VM
8242290: Pointless verification in get_package_entry_by_name
Reviewed-by: lfoltan, alanb, iklam

@@ -193,20 +193,14 @@
         // Zero length package list, should be okay
         m = ModuleHelper.ModuleObject("zero.packages", cl, new String[] { });
         assertNotNull(m, "Module should not be null");
         ModuleHelper.DefineModule(m, false, "9.0", "module.name/here", new String[] { });
 
-        // Invalid package name, expect an IAE
+        // Package name with dots, should be okay
         m = ModuleHelper.ModuleObject("moduleFive", cl, new String[] { "your.apackage" });
-        try {
-            ModuleHelper.DefineModule(m, false, "9.0", "module.name/here", new String[] { "your.apackage" });
-            throw new RuntimeException("Failed to get expected IAE for your.apackage");
-        } catch(IllegalArgumentException e) {
-            if (!e.getMessage().contains("Invalid package name")) {
-              throw new RuntimeException("Failed to get expected IAE message for bad package name: " + e.getMessage());
-            }
-        }
+        assertNotNull(m, "Module should not be null");
+        ModuleHelper.DefineModule(m, false, "9.0", "moduleFive", new String[] { "your.apackage" });
 
         // Invalid package name, expect an IAE
         m = ModuleHelper.ModuleObject("moduleSix", cl, new String[] { "foo" }); // Name irrelevant
         try {
             ModuleHelper.DefineModule(m, false, "9.0", "module.name/here", new String[] { ";your/apackage" });

@@ -278,9 +272,41 @@
 
         // module location that is "", should be okay
         m = ModuleHelper.ModuleObject("moduleEleven", cl, new String[] { "a_package_11" });
         assertNotNull(m, "Module should not be null");
         ModuleHelper.DefineModule(m, false, "9.0", "", new String[] { "a_package_11" });
+
+        // module with very long package names, should be okay
+        String[] longPackageNames = new String[] {
+         "mypackage/mypackage/mypackage/mypackage1",
+         "mypackage/mypackage/mypackage/mypackage/" +
+         "mypackage/mypackage/mypackage/mypackage/" +
+         "mypackage/mypackage/mypackage/mypackage/" +
+         "mypackage/mypackage/mypackage/mypackage/" +
+         "mypackage/mypackage/mypackage/mypackage/" +
+         "mypackage/mypackage/mypackage/mypackage/" +
+         "mypackage/mypackage/mypackage/mypackage/" +
+         "mypackage/mypackage/mypackage/mypackage2",
+         "mypackage/mypackage/mypackage/mypackage/" +
+         "mypackage/mypackage/mypackage/mypackage/" +
+         "mypackage/mypackage/mypackage/mypackage/" +
+         "mypackage/mypackage/mypackage/mypackage/" +
+         "mypackage/mypackage/mypackage/mypackage/" +
+         "mypackage/mypackage/mypackage/mypackage/" +
+         "mypackage/mypackage/mypackage/mypackage/" +
+         "mypackage/mypackage/mypackage/mypackage/" +
+         "mypackage/mypackage/mypackage/mypackage/" +
+         "mypackage/mypackage/mypackage/mypackage/" +
+         "mypackage/mypackage/mypackage/mypackage/" +
+         "mypackage/mypackage/mypackage/mypackage3"
+        };
+        m = ModuleHelper.ModuleObject("moduleTwelve", cl, longPackageNames);
+        assertNotNull(m, "Module should not be null");
+        ModuleHelper.DefineModule(m, false, "9.0", "moduleTwelve", longPackageNames);
+        // Indirectly test that the package names doesn't get truncated when defined
+        for (int i = 0; i < longPackageNames.length; i++) {
+            ModuleHelper.AddModuleExportsToAllUnnamed(m, longPackageNames[i]);
+        }
     }
 
     static class MyClassLoader extends ClassLoader { }
 }
< prev index next >