src/share/classes/sun/misc/ProxyGenerator.java

Print this page
rev 7444 : 8059563: (proxy) sun.misc.ProxyGenerator.generateProxyClass should create intermediate directories

*** 25,39 **** --- 25,43 ---- package sun.misc; import java.io.ByteArrayOutputStream; import java.io.DataOutputStream; + import java.io.File; import java.io.FileOutputStream; import java.io.IOException; import java.io.OutputStream; import java.lang.reflect.Array; import java.lang.reflect.Method; + import java.nio.file.Files; + import java.nio.file.Path; + import java.nio.file.Paths; import java.util.ArrayList; import java.util.HashMap; import java.util.LinkedList; import java.util.List; import java.util.ListIterator;
*** 325,338 **** if (saveGeneratedFiles) { java.security.AccessController.doPrivileged( new java.security.PrivilegedAction<Void>() { public Void run() { try { ! FileOutputStream file = ! new FileOutputStream(dotToSlash(name) + ".class"); ! file.write(classFile); ! file.close(); return null; } catch (IOException e) { throw new InternalError( "I/O exception saving generated file: " + e); } --- 329,348 ---- if (saveGeneratedFiles) { java.security.AccessController.doPrivileged( new java.security.PrivilegedAction<Void>() { public Void run() { try { ! int i = name.lastIndexOf('.'); ! Path path; ! if (i > 0) { ! Path dir = Paths.get(name.substring(0, i).replace('.', File.separatorChar)); ! Files.createDirectories(dir); ! path = dir.resolve(name.substring(i+1, name.length()) + ".class"); ! } else { ! path = Paths.get(name + ".class"); ! } ! Files.write(path, classFile); return null; } catch (IOException e) { throw new InternalError( "I/O exception saving generated file: " + e); }