Skip to content

Commit 9def089

Browse files
committed
more tests
1 parent 2b9eac1 commit 9def089

3 files changed

Lines changed: 16 additions & 5 deletions

File tree

src/main/java/com/jcabi/xml/ConsoleErrorListener.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@
3131

3232
import com.jcabi.log.Logger;
3333
import java.util.Collection;
34+
import java.util.Collections;
3435
import java.util.concurrent.CopyOnWriteArrayList;
3536
import javax.xml.transform.ErrorListener;
3637
import javax.xml.transform.TransformerException;
@@ -84,7 +85,7 @@ public void fatalError(final TransformerException error)
8485
* @return List of errors accumulated
8586
*/
8687
public Collection<String> summary() {
87-
return this.errors;
88+
return Collections.unmodifiableCollection(this.errors);
8889
}
8990

9091
}

src/main/java/com/jcabi/xml/XSLDocument.java

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -458,11 +458,17 @@ private void transformInto(final XML xml, final Result result) {
458458
trans.transform(new DOMSource(xml.node()), result);
459459
}
460460
} catch (final TransformerException ex) {
461+
final StringBuilder summary = new StringBuilder(
462+
String.join("; ", errors.summary())
463+
);
464+
if (!summary.toString().equals(ex.getMessageAndLocation())) {
465+
summary.append("; ").append(ex.getMessageAndLocation());
466+
}
461467
throw new IllegalArgumentException(
462468
String.format(
463-
"Failed to transform by %s: %s (%s)",
469+
"Failed to transform by %s: %s",
464470
trans.getClass().getName(),
465-
errors.summary(), ex.getMessageAndLocation()
471+
summary
466472
),
467473
ex
468474
);

src/test/java/com/jcabi/xml/XSLDocumentTest.java

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -198,10 +198,14 @@ void catchesXslErrorMessages() {
198198
"<xsl:message terminate='yes'>",
199199
"<xsl:text>oopsie...</xsl:text>",
200200
" </xsl:message></xsl:template></xsl:stylesheet>"
201-
)
201+
),
202+
"foo"
202203
).transform(new XMLDocument("<zz1/>"))
203204
).getLocalizedMessage(),
204-
Matchers.containsString("Processing terminated by xsl:message")
205+
Matchers.allOf(
206+
Matchers.containsString("Processing terminated by xsl:message"),
207+
Matchers.containsString("by xsl:message at line 1 in foo")
208+
)
205209
);
206210
}
207211

0 commit comments

Comments
 (0)