1
0
mirror of https://github.com/arduino/Arduino.git synced 2025-02-20 14:54:31 +01:00

Deleting json files if they are some how corrupted. Fixes #3015

This commit is contained in:
Federico Fissore 2015-05-04 17:44:16 +02:00
parent 875a775e93
commit 0c123d7d14
2 changed files with 25 additions and 4 deletions

View File

@ -7,6 +7,7 @@ import cc.arduino.contributions.packages.ContributionsIndexer;
import cc.arduino.files.DeleteFilesOnShutdown;
import cc.arduino.packages.DiscoveryManager;
import cc.arduino.packages.Uploader;
import com.fasterxml.jackson.core.JsonProcessingException;
import org.apache.commons.logging.impl.LogFactoryImpl;
import org.apache.commons.logging.impl.NoOpLog;
import processing.app.debug.Compiler;
@ -597,9 +598,13 @@ public class BaseNoGui {
try {
indexer.parseIndex();
} catch (JsonProcessingException e) {
FileUtils.deleteIfExists(indexFile);
FileUtils.deleteIfExists(indexSignatureFile);
throw e;
} catch (SignatureVerificationFailedException e) {
indexFile.delete();
indexSignatureFile.delete();
FileUtils.deleteIfExists(indexFile);
FileUtils.deleteIfExists(indexSignatureFile);
throw e;
}
indexer.syncWithFilesystem(getHardwareFolder());
@ -631,7 +636,12 @@ public class BaseNoGui {
}
}
}
librariesIndexer.parseIndex();
try {
librariesIndexer.parseIndex();
} catch (JsonProcessingException e) {
FileUtils.deleteIfExists(librariesIndexFile);
throw e;
}
}
static protected void initPlatform() {

View File

@ -85,7 +85,7 @@ public class FileUtils {
recursiveDelete(current);
}
}
file.delete();
deleteIfExists(file);
}
public static File createTempFolder() throws IOException {
@ -269,5 +269,16 @@ public class FileUtils {
return result;
}
public static boolean deleteIfExists(File file) {
if (file == null) {
return true;
}
if (!file.exists()) {
return false;
}
return file.delete();
}
}