failure = new Failure.Builder() .source(attributes.getValue("type")) .severity("ERROR"); break; failure.file(sourceFile) .line(Integer.parseInt(attributes.getValue("start")));
continue; } else { failures.add(failureBuilder.details(details.toString()).build()); failureBuilder = null; details = null; failureBuilder = new Failure.Builder() .file(new File(matcher.group(1))) .line(parseInt(matcher.group(2))) .severity("ERROR") .message(matcher.group(3)); details = new StringBuilder(); failures.add(failureBuilder.details(details.toString()).build());
failure = new Failure.Builder() .source(attributes.getValue("type")) .severity("ERROR"); break; failure.file(sourceFile) .line(Integer.parseInt(attributes.getValue("start")));
continue; } else { failures.add(failureBuilder.details(details.toString()).build()); failureBuilder = null; details = null; failureBuilder = new Failure.Builder() .file(new File(matcher.group(1))) .line(Integer.parseInt(matcher.group(2))) .severity("ERROR") .message(matcher.group(3)); details = new StringBuilder(); failures.add(failureBuilder.details(details.toString()).build());
continue; } else { failures.add(failureBuilder.details(details.toString()).build()); failureBuilder = null; details = null; failureBuilder = new Failure.Builder() .file(new File(matcher.group(1))) .line(Integer.parseInt(matcher.group(2))) .severity("ERROR") .message(matcher.group(3)); details = new StringBuilder(); failures.add(failureBuilder.details(details.toString()).build());
@Test public void twoFailuresInOutputWithNoWarnings() throws IOException { String javacOutput = CLASS_FILE + ":" + LINE_1 + ": error: " + ERROR_1 + DETAIL_1 + "\n" + CLASS_FILE + ":" + LINE_2 + ": error: " + ERROR_2 + DETAIL_2 + "\n"; JavacFailuresSupplier supplier = new JavacFailuresSupplier(new StringBuilder(javacOutput)); assertThat(supplier.getFailures()).containsExactly( new Failure.Builder() .file(new File(CLASS_FILE)) .line(LINE_1) .severity("ERROR") .message(ERROR_1) .details(DETAIL_1) .build(), new Failure.Builder() .file(new File(CLASS_FILE)) .line(12) .severity("ERROR") .message(ERROR_2) .details(DETAIL_2) .build()); } }
@Override public void endElement(String uri, String localName, String qName) { switch (qName) { case "SrcDir": sources.add(content.toString()); content = null; break; case "LongMessage": failure.message(content.toString()); content = null; break; case "BugInstance": failures.add(failure.build()); failure = null; break; default: break; } depth--; }
@Override public void endElement(String uri, String localName, String qName) throws SAXException { switch (qName) { case "SrcDir": sources.add(content.toString()); content = null; break; case "LongMessage": failure.message(content.toString()); content = null; break; case "BugInstance": failures.add(failure.build()); failure = null; break; default: break; } depth--; }
@Test public void twoFailuresInOutputWithNoWarnings() { String javacOutput = CLASS_FILE + ":" + LINE_1 + ": error: " + ERROR_1 + DETAIL_1 + "\n" + CLASS_FILE + ":" + LINE_2 + ": error: " + ERROR_2 + DETAIL_2 + "\n"; JavacFailuresSupplier supplier = new JavacFailuresSupplier(new StringBuilder(javacOutput)); assertThat(supplier.getFailures()).containsExactly( new Failure.Builder() .file(new File(CLASS_FILE)) .line(LINE_1) .severity("ERROR") .message(ERROR_1) .details(DETAIL_1) .build(), new Failure.Builder() .file(new File(CLASS_FILE)) .line(12) .severity("ERROR") .message(ERROR_2) .details(DETAIL_2) .build()); } }
@Override public void startElement(String uri, String localName, String qName, Attributes attributes) { switch (qName) { case "file": file = new File(attributes.getValue("name")); break; case "error": failures.add(new Failure.Builder() .source(attributes.getValue("source")) .severity(attributes.getValue("severity").toUpperCase()) .file(file) .line(Integer.parseInt(attributes.getValue("line"))) .message(attributes.getValue("message")) .build()); break; default: break; } }
@Override public void startElement(String uri, String localName, String qName, Attributes attributes) { switch (qName) { case "file": file = new File(attributes.getValue("name")); break; case "error": failures.add(new Failure.Builder() .source(attributes.getValue("source")) .severity(attributes.getValue("severity").toUpperCase()) .file(file) .line(Integer.parseInt(attributes.getValue("line"))) .message(attributes.getValue("message")) .build()); default: break; } }
@Override public void startElement(String uri, String localName, String qName, Attributes attributes) { switch (qName) { case "file": file = new File(attributes.getValue("name")); break; case "error": failures.add(new Failure.Builder() .source(attributes.getValue("source")) .severity(attributes.getValue("severity").toUpperCase()) .file(file) .line(Integer.parseInt(attributes.getValue("line"))) .message(attributes.getValue("message")) .build()); break; default: break; } }
@Override public void startElement(String uri, String localName, String qName, Attributes attributes) throws SAXException { switch (qName) { case "file": file = new File(attributes.getValue("name")); break; case "error": failures.add(new Failure.Builder() .source(attributes.getValue("source")) .severity(attributes.getValue("severity").toUpperCase()) .file(file) .line(Integer.parseInt(attributes.getValue("line"))) .message(attributes.getValue("message")) .build()); default: break; } }