RFR (XXS) 8027803: NPE in test infrastructure aka: test/sun/reflect/AnonymousNewInstance/ManyNewInstanceAnonTest.java fails
Joel Borggrén-Franck
joel.franck at oracle.com
Sun Nov 10 11:17:50 UTC 2013
Hi Robert,
Looks good.
cheers
/Joel
On 10 nov 2013, at 08:24, Robert Field <robert.field at oracle.com> wrote:
> Please review the fix for:
>
> https://bugs.openjdk.java.net/browse/JDK-8027803
>
> Basically, the ClassFileInstaller test utility is getting a Null Pointer Exception when the installed class file is in the default package (no package declared). And the fix is to check for the null that occurs in that case --
> test/lib/testlibrary/ClassFileInstaller.java
>
> 28 import java.nio.file.StandardCopyOption;
> 29
> 30 /**
> 31 * Dump a class file for a class on the class path in the current directory
> 32 */
> 33 public class ClassFileInstaller {
> 34 /**
> 35 * @param args The names of the classes to dump
> 36 * @throws Exception
> 37 */
> 38 public static void main(String... args) throws Exception {
> 39 for (String arg : args) {
> 40 ClassLoader cl = ClassFileInstaller.class.getClassLoader();
> 41
> 42 // Convert dotted class name to a path to a class file
> 43 String pathName = arg.replace('.', '/').concat(".class");
> 44 InputStream is = cl.getResourceAsStream(pathName);
> 45
> 46 // Create the class file's package directory
> 47 Path p = Paths.get(pathName);
>
> 48 Files.createDirectories(p.getParent());
>
>
>
>
> 49 // Create the class file
> 50 Files.copy(is, p, StandardCopyOption.REPLACE_EXISTING);
> 51 }
> 52 }
> 53 }
>
> 28 import java.nio.file.StandardCopyOption;
> 29
> 30 /**
> 31 * Dump a class file for a class on the class path in the current directory
> 32 */
> 33 public class ClassFileInstaller {
> 34 /**
> 35 * @param args The names of the classes to dump
> 36 * @throws Exception
> 37 */
> 38 public static void main(String... args) throws Exception {
> 39 for (String arg : args) {
> 40 ClassLoader cl = ClassFileInstaller.class.getClassLoader();
> 41
> 42 // Convert dotted class name to a path to a class file
> 43 String pathName = arg.replace('.', '/').concat(".class");
> 44 InputStream is = cl.getResourceAsStream(pathName);
> 45
> 46 // Create the class file's package directory
> 47 Path p = Paths.get(pathName);
>
> 48 Path parent = p.getParent();
> 49 if (parent != null) {
> 50 Files.createDirectories(parent);
> 51 }
>
> 52 // Create the class file
> 53 Files.copy(is, p, StandardCopyOption.REPLACE_EXISTING);
> 54 }
> 55 }
> 56 }
>
>
>
> Contributed by Alan Bateman.
>
> Thanks,
> Robert
>
>
More information about the core-libs-dev
mailing list