Path: blob/master/test/jdk/java/lang/ClassLoader/GetPackage.java
41149 views
/*1* Copyright (c) 1999, Oracle and/or its affiliates. All rights reserved.2* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.3*4* This code is free software; you can redistribute it and/or modify it5* under the terms of the GNU General Public License version 2 only, as6* published by the Free Software Foundation.7*8* This code is distributed in the hope that it will be useful, but WITHOUT9* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or10* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License11* version 2 for more details (a copy is included in the LICENSE file that12* accompanied this code).13*14* You should have received a copy of the GNU General Public License version15* 2 along with this work; if not, write to the Free Software Foundation,16* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.17*18* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA19* or visit www.oracle.com if you need additional information or have any20* questions.21*/2223/*24* @test25* @bug 425658926* @summary Test if getPackage() and getPackages()27* return consistent values.28*/2930public class GetPackage {31public static void main(String arg[]) throws Exception {32TestClassLoader parent = new TestClassLoader();33TestClassLoader child = new TestClassLoader(parent);34// child define a package first35child.defineEmptyPackage("foo");36// parent then define another package with the same name37parent.defineEmptyPackage("foo");38if (!child.testPackageView("foo"))39throw new Exception("Inconsistent packages view");40}41}4243class TestClassLoader extends ClassLoader {44public TestClassLoader() {45super();46}4748public TestClassLoader(ClassLoader parent) {49super(parent);50}5152public Package defineEmptyPackage(String name) {53return definePackage(name, null, null, null, null, null, null, null);54}5556/* test to see if getPackage() and getPackages()57* are consistent.58*/59public boolean testPackageView(String name) {60Package[] pkgs = getPackages();61Package pkg = getPackage(name);62for(int i = 0; i < pkgs.length; i++)63if (pkgs[i].getName().equals(name) && pkgs[i] == pkg)64return true;65return false;66}67}686970