This is an automated email from the ASF dual-hosted git repository.
garydgregory pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/commons-secure-xml.git
The following commit(s) were added to refs/heads/main by this push:
new 48873b5 Add a unit test that checks that
SecureTransformerFactory.Wrapper.newTransformerHandler(Templates) throws a
ClassCastException.
48873b5 is described below
commit 48873b5c02d448be17508b6142ea873867fb10b1
Author: Gary Gregory <[email protected]>
AuthorDate: Sun Sep 13 15:07:29 2026 -0700
Add a unit test that checks that
SecureTransformerFactory.Wrapper.newTransformerHandler(Templates) throws
a ClassCastException.
---
.../xml/secure/SecureTransformerFactoryTest.java | 17 +++++++++++++++++
1 file changed, 17 insertions(+)
diff --git
a/src/test/java/org/apache/commons/xml/secure/SecureTransformerFactoryTest.java
b/src/test/java/org/apache/commons/xml/secure/SecureTransformerFactoryTest.java
index b086b9f..8f83029 100644
---
a/src/test/java/org/apache/commons/xml/secure/SecureTransformerFactoryTest.java
+++
b/src/test/java/org/apache/commons/xml/secure/SecureTransformerFactoryTest.java
@@ -247,6 +247,23 @@ void
securesAssociatedStylesheetSourcesOfEverySupportedShape() throws Exception
new
DOMSource(DocumentBuilderFactory.newInstance().newDocumentBuilder().newDocument()));
}
+ @Test
+ void wrapsClassCastExceptionFromNewTransformerHandler() throws Exception {
+ final ClassCastException cause = new ClassCastException("Unsupported
Templates implementation");
+ final SAXTransformerFactory factory = (SAXTransformerFactory)
SecureTransformerFactory.secure(new NullProductsFactory() {
+
+ @Override
+ public TransformerHandler newTransformerHandler(final Templates
templates) {
+ throw cause;
+ }
+ });
+ final Templates templates =
TransformerFactory.newInstance().newTemplates(stylesheet());
+ final TransformerConfigurationException exception =
assertThrows(TransformerConfigurationException.class,
+ () -> factory.newTransformerHandler(templates));
+ assertSame(cause, exception.getCause());
+
assertTrue(exception.getMessage().contains(templates.getClass().getName()),
exception.getMessage());
+ }
+
@Test
void wrapsEveryStandardAndSaxFactoryProduct() throws Exception {
final SAXTransformerFactory factory = (SAXTransformerFactory)
SecureTransformerFactory.newInstance();