#1497 Show specific message for invalid YAML files (#1506)

* #1497 Throw dedicated exception for invalid YAML files and handle it on startup
- Wrap SnakeYAML exceptions when loading config.yml and commands.yml on startup into own exception type
- Handle exception type on startup with specific error message

* #1497 Fix inaccurate JavaDoc comment
This commit is contained in:
ljacqu
2018-02-23 23:31:22 +01:00
committed by GitHub
parent 7864bb06ac
commit 329657bd5f
10 changed files with 216 additions and 5 deletions
@@ -0,0 +1,30 @@
package fr.xephi.authme.service.yaml;
import ch.jalu.configme.resource.YamlFileResource;
import org.yaml.snakeyaml.parser.ParserException;
import java.io.File;
/**
* Creates {@link YamlFileResource} objects.
*/
public final class YamlFileResourceProvider {
private YamlFileResourceProvider() {
}
/**
* Creates a {@link YamlFileResource} instance for the given file. Wraps SnakeYAML's parse exception
* into an AuthMe exception.
*
* @param file the file to load
* @return the generated resource
*/
public static YamlFileResource loadFromFile(File file) {
try {
return new YamlFileResource(file);
} catch (ParserException e) {
throw new YamlParseException(file.getPath(), e);
}
}
}
@@ -0,0 +1,26 @@
package fr.xephi.authme.service.yaml;
import org.yaml.snakeyaml.parser.ParserException;
/**
* Exception when a YAML file could not be parsed.
*/
public class YamlParseException extends RuntimeException {
private final String file;
/**
* Constructor.
*
* @param file the file a parsing exception occurred with
* @param snakeYamlException the caught exception from SnakeYAML
*/
public YamlParseException(String file, ParserException snakeYamlException) {
super(snakeYamlException);
this.file = file;
}
public String getFile() {
return file;
}
}