class ParseProblemException extends RuntimeException {

    /**
     * The problems that were encountered during parsing
     */
    private final List<Problem> problems;

    public ParseProblemException(List<Problem> problems) {
        super(createMessage(assertNotNull(problems)));
        this.problems = problems;
    }

    public ParseProblemException(Throwable throwable) {
        this(singletonList(new Problem(throwable.getMessage(), null, throwable)));
    }

    private static String createMessage(List<Problem> problems) {<FILL_FUNCTION_BODY>}

    public List<Problem> getProblems() {
        return problems;
    }
}

        StringBuilder message = new StringBuilder();
        for (Problem problem : problems) {
            message.append(problem.toString()).append(SYSTEM_EOL);
        }
        return message.toString();
    
<methods>public void <init>() ,public void <init>(java.lang.String) ,public void <init>(java.lang.Throwable) ,public void <init>(java.lang.String, java.lang.Throwable) <variables>static final long serialVersionUID