Fix to ensure invalid format files do not crash game on startup

This commit is contained in:
austinio7116
2018-04-15 00:24:39 +01:00
committed by maustin
parent 9c6eb6e071
commit 17fc231db6
2 changed files with 10 additions and 5 deletions

View File

@@ -98,7 +98,7 @@ public abstract class StorageReaderRecursiveFolderWithUserFolder<T> extends Stor
final T newDeck = this.read(file);
if (null == newDeck) {
final String msg = "An object stored in " + file.getPath() + " failed to load.\nPlease submit this as a bug with the mentioned file/directory attached.";
throw new RuntimeException(msg);
continue;//skip format completely - perhaps non format file
}
String newKey = keySelector.apply(newDeck);

View File

@@ -300,7 +300,11 @@ public class GameFormat implements Comparable<GameFormat> {
Boolean restrictedLegendary = false;
List<String> additionalCards = null; // default: nothing additional
List<CardRarity> rarities = null;
FileSection section = FileSection.parse(contents.get("format"), ":");
List<String> formatStrings = contents.get("format");
if (formatStrings == null){
return null;
}
FileSection section = FileSection.parse(formatStrings, ":");
String title = section.get("name");
FormatType formatType;
try {
@@ -315,10 +319,11 @@ public class GameFormat implements Comparable<GameFormat> {
formatsubType = FormatSubType.Custom;
}
Integer idx = section.getInt("order");
Date date = parseDate(section.get("effectivedate"));
if (date == null){
date = parseDate(DEFAULTDATE);
String dateStr = section.get("effectivedate");
if (dateStr == null){
dateStr = DEFAULTDATE;
}
Date date = parseDate(dateStr);
String strSets = section.get("sets");
if ( null != strSets ) {
sets = Arrays.asList(strSets.split(", "));