public static ManifestContents getManifest(Reader reader) { ManifestParser parser = new RecoveringManifestParser(); try { ManifestContents manifest = parser.parse(reader); if (parser.foundProblems()) { for (ManifestProblem problem : parser.getProblems()) { System.err.println(problem.toStringWithContext()); System.err.println(); } throw new RuntimeException("There was a problem with the manifest"); } return manifest; } catch (IOException e) { throw new RuntimeException(e); } finally { if (reader != null) { try { reader.close(); } catch (IOException e) { // Nothing to do } } } }