diff --git a/app/src/processing/app/debug/TargetPackage.java b/app/src/processing/app/debug/TargetPackage.java index 05d13fbae..3d9e8fcd5 100644 --- a/app/src/processing/app/debug/TargetPackage.java +++ b/app/src/processing/app/debug/TargetPackage.java @@ -32,20 +32,22 @@ import processing.app.helpers.filefilters.OnlyDirs; public class TargetPackage { - String name; - File folder; + private final String name; Map platforms = new HashMap(); - public TargetPackage(String _name, File _folder) { - name = _name; - folder = _folder; + public TargetPackage(String name, File folder) { + this.name = name; String[] platformsList = folder.list(new OnlyDirs()); - for (String platformName : platformsList) { - File platformFolder = new File(folder, platformName); - TargetPlatform platform = new TargetPlatform(platformName, platformFolder); - platforms.put(platformName, platform); + if (platformsList != null) { + for (String platformName : platformsList) { + File platformFolder = new File(folder, platformName); + if (platformFolder.exists() && platformFolder.canRead()) { + TargetPlatform platform = new TargetPlatform(platformName, platformFolder); + platforms.put(platformName, platform); + } + } } } diff --git a/app/src/processing/app/debug/TargetPlatform.java b/app/src/processing/app/debug/TargetPlatform.java index 912d37e0d..acd12b3fe 100644 --- a/app/src/processing/app/debug/TargetPlatform.java +++ b/app/src/processing/app/debug/TargetPlatform.java @@ -55,7 +55,7 @@ public class TargetPlatform { try { File boardsFile = new File(_folder, "boards.txt"); - if (boardsFile.exists()) { + if (boardsFile.exists() && boardsFile.canRead()) { PreferencesMap boardPreferences = new PreferencesMap(); boardPreferences.load(boardsFile); boards = boardPreferences.createFirstLevelMap(); @@ -69,15 +69,16 @@ public class TargetPlatform { try { File platformsFile = new File(_folder, "platform.txt"); - if (platformsFile.exists()) + if (platformsFile.exists() && platformsFile.canRead()) { preferences.load(platformsFile); + } } catch (Exception e) { System.err.println("Error loading platforms from platform.txt: " + e); } try { File programmersFile = new File(_folder, "programmers.txt"); - if (programmersFile.exists()) { + if (programmersFile.exists() && programmersFile.canRead()) { PreferencesMap prefs = new PreferencesMap(); prefs.load(programmersFile); programmers = prefs.createFirstLevelMap(); diff --git a/app/src/processing/app/helpers/PreferencesMap.java b/app/src/processing/app/helpers/PreferencesMap.java index f83e04b1f..52ff7c3f2 100644 --- a/app/src/processing/app/helpers/PreferencesMap.java +++ b/app/src/processing/app/helpers/PreferencesMap.java @@ -50,7 +50,7 @@ public class PreferencesMap extends LinkedHashMap { * @throws FileNotFoundException * @throws IOException */ - public void load(File file) throws FileNotFoundException, IOException { + public void load(File file) throws IOException { load(new FileInputStream(file)); }