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();

Reply via email to