src/share/classes/org/openjdk/jigsaw/ModuleFile.java
Print this page
@@ -507,30 +507,37 @@
filesWriter.println(Files.convertSeparator(relativize(destination, file)));
filesWriter.flush();
}
- void remove() throws IOException {
- ModuleFile.Reader.remove(destination);
+ List<IOException> remove() {
+ return ModuleFile.Reader.remove(destination);
}
// Removes a module, given its module install directory
- static void remove(File moduleDir) throws IOException {
+ static List<IOException> remove(File moduleDir) {
+ List<IOException> excs = new ArrayList<>();
// Firstly remove any files installed outside of the module dir
File files = new File(moduleDir, "files");
if (files.exists()) {
try (FileInputStream fis = new FileInputStream(files);
InputStreamReader isr = new InputStreamReader(fis, "UTF-8");
BufferedReader in = new BufferedReader(isr)) {
String filename;
- while ((filename = in.readLine()) != null)
- Files.delete(new File(moduleDir,
- Files.platformSeparator(filename)));
+ while ((filename = in.readLine()) != null) {
+ IOException x = Files.deleteUnchecked(new File(moduleDir,
+ Files.platformSeparator(filename)).toPath());
+ if (x != null)
+ excs.add(x);
}
+ } catch (IOException x) {
+ excs.add(x);
}
+ }
- Files.deleteTree(moduleDir);
+ excs.addAll(Files.deleteAllUnchecked(moduleDir.toPath()));
+ return excs;
}
// Returns the absolute path of the given section type.
private File getDirOfSection(SectionType type) {
if (type == SectionType.NATIVE_LIBS)