Fix error prone code

This commit is contained in:
Reinhard Pointner 2016-11-25 23:59:26 +08:00
parent 742e3aea2d
commit e11bab1ebf
14 changed files with 22 additions and 42 deletions

View File

@ -1,22 +1,19 @@
package net.filebot; package net.filebot;
import static net.filebot.Logging.*;
import static net.filebot.Settings.*; import static net.filebot.Settings.*;
import static net.filebot.util.FileUtilities.*;
import java.io.File; import java.io.File;
import java.util.logging.Level;
public enum ApplicationFolder { public enum ApplicationFolder {
// real user home (the user.home will point to the application-specific container in sandbox environments) // real user home (the user.home will point to the application-specific container in sandbox environments)
UserHome(isMacSandbox() ? "/Users/" + System.getProperty("user.name") : System.getProperty("user.home")), UserHome(isMacSandbox() ? System.getProperty("UserHome") : System.getProperty("user.home")),
AppData(System.getProperty("application.dir", UserHome.path(".filebot").getPath())), AppData(System.getProperty("application.dir", UserHome.resolve(".filebot").getPath())),
Temp(System.getProperty("java.io.tmpdir")), Temp(System.getProperty("java.io.tmpdir")),
Cache(System.getProperty("application.cache", AppData.path("cache").getPath())); Cache(System.getProperty("application.cache", AppData.resolve("cache").getPath()));
private final File path; private final File path;
@ -24,25 +21,12 @@ public enum ApplicationFolder {
this.path = new File(path); this.path = new File(path);
} }
public File get() { public File getFile() {
return path; return path;
} }
public File path(String name) {
return new File(path, name);
}
public File resolve(String name) { public File resolve(String name) {
return new File(getCanonicalFile(), name); return new File(path, name);
}
public File getCanonicalFile() {
try {
return createFolders(path.getCanonicalFile());
} catch (Exception e) {
debug.log(Level.SEVERE, String.format("Failed to create application folder: %s => %s", this, path), e);
return path;
}
} }
} }

View File

@ -67,7 +67,7 @@ public class CacheManager {
private File acquireDiskStore() throws IOException { private File acquireDiskStore() throws IOException {
// prepare cache folder for this application instance // prepare cache folder for this application instance
File cacheRoot = ApplicationFolder.Cache.getCanonicalFile(); File cacheRoot = ApplicationFolder.Cache.getFile();
for (int i = 0; i < 10; i++) { for (int i = 0; i < 10; i++) {
File cache = new File(cacheRoot, Integer.toString(i)); File cache = new File(cacheRoot, Integer.toString(i));

View File

@ -31,7 +31,7 @@ public final class HistorySpooler {
Runtime.getRuntime().addShutdownHook(new Thread(HistorySpooler.getInstance()::commit, "HistorySpoolerShutdownHook")); // commit session history on shutdown Runtime.getRuntime().addShutdownHook(new Thread(HistorySpooler.getInstance()::commit, "HistorySpoolerShutdownHook")); // commit session history on shutdown
} }
private final File persistentHistoryFile = ApplicationFolder.AppData.path("history.xml"); private final File persistentHistoryFile = ApplicationFolder.AppData.resolve("history.xml");
private int persistentHistoryTotalSize = -1; private int persistentHistoryTotalSize = -1;
private boolean persistentHistoryEnabled = true; private boolean persistentHistoryEnabled = true;

View File

@ -91,7 +91,7 @@ public class Main {
// clear caches // clear caches
if (args.clearCache()) { if (args.clearCache()) {
log.info("Clear cache"); log.info("Clear cache");
for (File folder : getChildren(ApplicationFolder.Cache.getCanonicalFile(), FOLDERS)) { for (File folder : getChildren(ApplicationFolder.Cache.getFile(), FOLDERS)) {
log.fine("* Delete " + folder); log.fine("* Delete " + folder);
delete(folder); delete(folder);
} }
@ -109,7 +109,7 @@ public class Main {
initializeLogging(args); initializeLogging(args);
// make sure java.io.tmpdir exists // make sure java.io.tmpdir exists
createFolders(ApplicationFolder.Temp.get()); createFolders(ApplicationFolder.Temp.getFile());
// initialize this stuff before anything else // initialize this stuff before anything else
CacheManager.getInstance(); CacheManager.getInstance();
@ -365,7 +365,7 @@ public class Main {
System.setProperty("sun.net.client.defaultReadTimeout", "60000"); System.setProperty("sun.net.client.defaultReadTimeout", "60000");
System.setProperty("swing.crossplatformlaf", "javax.swing.plaf.nimbus.NimbusLookAndFeel"); System.setProperty("swing.crossplatformlaf", "javax.swing.plaf.nimbus.NimbusLookAndFeel");
System.setProperty("grape.root", ApplicationFolder.AppData.path("grape").getPath()); System.setProperty("grape.root", ApplicationFolder.AppData.resolve("grape").getPath());
System.setProperty("org.apache.commons.logging.Log", "org.apache.commons.logging.impl.NoOpLog"); System.setProperty("org.apache.commons.logging.Log", "org.apache.commons.logging.impl.NoOpLog");
if (args.unixfs) { if (args.unixfs) {
@ -389,7 +389,7 @@ public class Main {
// log errors to file // log errors to file
try { try {
Handler error = createSimpleFileHandler(ApplicationFolder.AppData.path("error.log"), Level.WARNING); Handler error = createSimpleFileHandler(ApplicationFolder.AppData.resolve("error.log"), Level.WARNING);
log.addHandler(error); log.addHandler(error);
debug.addHandler(error); debug.addHandler(error);
} catch (Exception e) { } catch (Exception e) {
@ -401,7 +401,7 @@ public class Main {
if (args.logFile != null) { if (args.logFile != null) {
File logFile = new File(args.logFile); File logFile = new File(args.logFile);
if (!logFile.isAbsolute()) { if (!logFile.isAbsolute()) {
logFile = new File(ApplicationFolder.AppData.path("logs"), logFile.getPath()).getAbsoluteFile(); // by default resolve relative paths against {applicationFolder}/logs/{logFile} logFile = new File(ApplicationFolder.AppData.resolve("logs"), logFile.getPath()).getAbsoluteFile(); // by default resolve relative paths against {applicationFolder}/logs/{logFile}
} }
if (!logFile.exists() && !logFile.getParentFile().mkdirs() && !logFile.createNewFile()) { if (!logFile.exists() && !logFile.getParentFile().mkdirs() && !logFile.createNewFile()) {
throw new IOException("Failed to create log file: " + logFile); throw new IOException("Failed to create log file: " + logFile);

View File

@ -191,10 +191,6 @@ public final class Settings {
return applicationArguments; return applicationArguments;
} }
public static File getApplicationFolder() {
return ApplicationFolder.AppData.get(); // added for script compatibility
}
public static Settings forPackage(Class<?> type) { public static Settings forPackage(Class<?> type) {
return new Settings(Preferences.userNodeForPackage(type)); return new Settings(Preferences.userNodeForPackage(type));
} }

View File

@ -118,7 +118,7 @@ public class GroovyPad extends JFrame {
try { try {
// use this default value so people can easily submit bug reports with fn:sysinfo logs // use this default value so people can easily submit bug reports with fn:sysinfo logs
File pad = ApplicationFolder.AppData.path("pad.groovy"); File pad = ApplicationFolder.AppData.resolve("pad.groovy");
if (!pad.exists()) { if (!pad.exists()) {
ScriptShellMethods.saveAs(DEFAULT_SCRIPT, pad); ScriptShellMethods.saveAs(DEFAULT_SCRIPT, pad);

View File

@ -91,7 +91,7 @@ public class ExpressionFormatFunctions {
File f = new File(path); File f = new File(path);
if (!f.isAbsolute()) { if (!f.isAbsolute()) {
f = ApplicationFolder.UserHome.path(path); f = ApplicationFolder.UserHome.resolve(path);
} }
if (isMacSandbox()) { if (isMacSandbox()) {

View File

@ -928,7 +928,7 @@ public class MediaBindingBean {
@Define("home") @Define("home")
public File getUserHome() { public File getUserHome() {
return ApplicationFolder.UserHome.getCanonicalFile(); return ApplicationFolder.UserHome.getFile();
} }
@Define("output") @Define("output")

View File

@ -57,7 +57,7 @@ public class SecureCompiledScript extends CompiledScript {
// write permissions for cache and temp folders // write permissions for cache and temp folders
for (ApplicationFolder it : ApplicationFolder.values()) { for (ApplicationFolder it : ApplicationFolder.values()) {
permissions.add(new FilePermission(it.get() + File.separator + "-", "read, write, delete")); permissions.add(new FilePermission(it.getFile().getAbsolutePath() + File.separator + "-", "read, write, delete"));
} }
return permissions; return permissions;

View File

@ -1012,7 +1012,7 @@ public class MediaDetection {
} }
public static boolean isStructureRoot(File folder) throws Exception { public static boolean isStructureRoot(File folder) throws Exception {
return isVolumeRoot(folder) || releaseInfo.getStructureRootPattern().matcher(folder.getName()).matches() || ApplicationFolder.UserHome.get().equals(folder.getParentFile()); return isVolumeRoot(folder) || releaseInfo.getStructureRootPattern().matcher(folder.getName()).matches() || ApplicationFolder.UserHome.getFile().equals(folder.getParentFile());
} }
public static File getStructureRoot(File file) throws Exception { public static File getStructureRoot(File file) throws Exception {

View File

@ -220,7 +220,7 @@ public class ReleaseInfo {
if (volumeRoots == null) { if (volumeRoots == null) {
Set<File> volumes = new HashSet<File>(); Set<File> volumes = new HashSet<File>();
File home = ApplicationFolder.UserHome.get(); File home = ApplicationFolder.UserHome.getFile();
List<File> roots = getFileSystemRoots(); List<File> roots = getFileSystemRoots();
// user root folder // user root folder

View File

@ -83,7 +83,7 @@ class ExpressionFormatter implements MatchFormatter {
// resolve against home folder // resolve against home folder
if (destination.startsWith("~")) { if (destination.startsWith("~")) {
return ApplicationFolder.UserHome.path(destination.substring(1)).getAbsolutePath(); return ApplicationFolder.UserHome.resolve(destination.substring(1)).getAbsolutePath();
} }
// try to resolve against structure root folder by default // try to resolve against structure root folder by default

View File

@ -160,7 +160,7 @@ public class RenamePanel extends JComponent {
renameModel.useFormatter(FileInfo.class, new FileNameFormatter()); renameModel.useFormatter(FileInfo.class, new FileNameFormatter());
} }
RenameListCellRenderer cellrenderer = new RenameListCellRenderer(renameModel, ApplicationFolder.UserHome.getCanonicalFile()); RenameListCellRenderer cellrenderer = new RenameListCellRenderer(renameModel, ApplicationFolder.UserHome.getFile());
namesList.getListComponent().setCellRenderer(cellrenderer); namesList.getListComponent().setCellRenderer(cellrenderer);
filesList.getListComponent().setCellRenderer(cellrenderer); filesList.getListComponent().setCellRenderer(cellrenderer);

View File

@ -179,8 +179,8 @@ public final class FileUtilities {
} }
} }
public static File createFolders(File folder) throws IOException { public static void createFolders(File folder) throws IOException {
return Files.createDirectories(folder.toPath()).toFile(); Files.createDirectories(folder.toPath());
} }
private static final String WIN_THUMBNAIL_STORE = "Thumbs.db"; private static final String WIN_THUMBNAIL_STORE = "Thumbs.db";