1
0
mirror of https://github.com/esp8266/Arduino.git synced 2025-06-16 11:21:18 +03:00

hardening initial files load

This commit is contained in:
Federico Fissore
2013-02-06 11:53:54 +01:00
parent f53239e60a
commit b082406775
3 changed files with 16 additions and 13 deletions

View File

@ -32,22 +32,24 @@ import processing.app.helpers.filefilters.OnlyDirs;
public class TargetPackage { public class TargetPackage {
String name; private final String name;
File folder;
Map<String, TargetPlatform> platforms = new HashMap<String, TargetPlatform>(); Map<String, TargetPlatform> platforms = new HashMap<String, TargetPlatform>();
public TargetPackage(String _name, File _folder) { public TargetPackage(String name, File folder) {
name = _name; this.name = name;
folder = _folder;
String[] platformsList = folder.list(new OnlyDirs()); String[] platformsList = folder.list(new OnlyDirs());
if (platformsList != null) {
for (String platformName : platformsList) { for (String platformName : platformsList) {
File platformFolder = new File(folder, platformName); File platformFolder = new File(folder, platformName);
if (platformFolder.exists() && platformFolder.canRead()) {
TargetPlatform platform = new TargetPlatform(platformName, platformFolder); TargetPlatform platform = new TargetPlatform(platformName, platformFolder);
platforms.put(platformName, platform); platforms.put(platformName, platform);
} }
} }
}
}
public Map<String, TargetPlatform> getPlatforms() { public Map<String, TargetPlatform> getPlatforms() {
return platforms; return platforms;

View File

@ -55,7 +55,7 @@ public class TargetPlatform {
try { try {
File boardsFile = new File(_folder, "boards.txt"); File boardsFile = new File(_folder, "boards.txt");
if (boardsFile.exists()) { if (boardsFile.exists() && boardsFile.canRead()) {
PreferencesMap boardPreferences = new PreferencesMap(); PreferencesMap boardPreferences = new PreferencesMap();
boardPreferences.load(boardsFile); boardPreferences.load(boardsFile);
boards = boardPreferences.createFirstLevelMap(); boards = boardPreferences.createFirstLevelMap();
@ -69,15 +69,16 @@ public class TargetPlatform {
try { try {
File platformsFile = new File(_folder, "platform.txt"); File platformsFile = new File(_folder, "platform.txt");
if (platformsFile.exists()) if (platformsFile.exists() && platformsFile.canRead()) {
preferences.load(platformsFile); preferences.load(platformsFile);
}
} catch (Exception e) { } catch (Exception e) {
System.err.println("Error loading platforms from platform.txt: " + e); System.err.println("Error loading platforms from platform.txt: " + e);
} }
try { try {
File programmersFile = new File(_folder, "programmers.txt"); File programmersFile = new File(_folder, "programmers.txt");
if (programmersFile.exists()) { if (programmersFile.exists() && programmersFile.canRead()) {
PreferencesMap prefs = new PreferencesMap(); PreferencesMap prefs = new PreferencesMap();
prefs.load(programmersFile); prefs.load(programmersFile);
programmers = prefs.createFirstLevelMap(); programmers = prefs.createFirstLevelMap();

View File

@ -50,7 +50,7 @@ public class PreferencesMap extends LinkedHashMap<String, String> {
* @throws FileNotFoundException * @throws FileNotFoundException
* @throws IOException * @throws IOException
*/ */
public void load(File file) throws FileNotFoundException, IOException { public void load(File file) throws IOException {
load(new FileInputStream(file)); load(new FileInputStream(file));
} }