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);
}