Skip to content

Commit b082406

Browse files
author
Federico Fissore
committed
hardening initial files load
1 parent f53239e commit b082406

File tree

3 files changed

+16
-13
lines changed

3 files changed

+16
-13
lines changed

app/src/processing/app/debug/TargetPackage.java

Lines changed: 11 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -32,20 +32,22 @@
3232

3333
public class TargetPackage {
3434

35-
String name;
36-
File folder;
35+
private final String name;
3736

3837
Map<String, TargetPlatform> platforms = new HashMap<String, TargetPlatform>();
3938

40-
public TargetPackage(String _name, File _folder) {
41-
name = _name;
42-
folder = _folder;
39+
public TargetPackage(String name, File folder) {
40+
this.name = name;
4341

4442
String[] platformsList = folder.list(new OnlyDirs());
45-
for (String platformName : platformsList) {
46-
File platformFolder = new File(folder, platformName);
47-
TargetPlatform platform = new TargetPlatform(platformName, platformFolder);
48-
platforms.put(platformName, platform);
43+
if (platformsList != null) {
44+
for (String platformName : platformsList) {
45+
File platformFolder = new File(folder, platformName);
46+
if (platformFolder.exists() && platformFolder.canRead()) {
47+
TargetPlatform platform = new TargetPlatform(platformName, platformFolder);
48+
platforms.put(platformName, platform);
49+
}
50+
}
4951
}
5052
}
5153

app/src/processing/app/debug/TargetPlatform.java

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,7 @@ public TargetPlatform(String _name, File _folder) {
5555

5656
try {
5757
File boardsFile = new File(_folder, "boards.txt");
58-
if (boardsFile.exists()) {
58+
if (boardsFile.exists() && boardsFile.canRead()) {
5959
PreferencesMap boardPreferences = new PreferencesMap();
6060
boardPreferences.load(boardsFile);
6161
boards = boardPreferences.createFirstLevelMap();
@@ -69,15 +69,16 @@ public TargetPlatform(String _name, File _folder) {
6969

7070
try {
7171
File platformsFile = new File(_folder, "platform.txt");
72-
if (platformsFile.exists())
72+
if (platformsFile.exists() && platformsFile.canRead()) {
7373
preferences.load(platformsFile);
74+
}
7475
} catch (Exception e) {
7576
System.err.println("Error loading platforms from platform.txt: " + e);
7677
}
7778

7879
try {
7980
File programmersFile = new File(_folder, "programmers.txt");
80-
if (programmersFile.exists()) {
81+
if (programmersFile.exists() && programmersFile.canRead()) {
8182
PreferencesMap prefs = new PreferencesMap();
8283
prefs.load(programmersFile);
8384
programmers = prefs.createFirstLevelMap();

app/src/processing/app/helpers/PreferencesMap.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@ public PreferencesMap() {
5050
* @throws FileNotFoundException
5151
* @throws IOException
5252
*/
53-
public void load(File file) throws FileNotFoundException, IOException {
53+
public void load(File file) throws IOException {
5454
load(new FileInputStream(file));
5555
}
5656

0 commit comments

Comments
 (0)