[jboss-as7-dev] Recent jboss-modules' JAXP-related changes and JAXB impl

Alessio Soldano asoldano at redhat.com
Tue Mar 8 03:09:00 EST 2011


Hi,
after the latest changes in jboss-modules for loading our own set of 
jaxp factories, I'm seeing some regressions in the jbossws-cxf testsuite 
against AS7:

java.lang.ClassCastException: __redirected.__TransformerFactory cannot 
be cast to javax.xml.transform.sax.SAXTransformerFactory
     at 
com.sun.xml.bind.v2.runtime.JAXBContextImpl.createTransformerHandler(JAXBContextImpl.java:744)
     at 
com.sun.xml.bind.v2.runtime.unmarshaller.DomLoader$State.<init>(DomLoader.java:63)
     at 
com.sun.xml.bind.v2.runtime.unmarshaller.DomLoader.startElement(DomLoader.java:113)
     at 
com.sun.xml.bind.v2.runtime.unmarshaller.ProxyLoader.startElement(ProxyLoader.java:55)
     at 
com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallingContext._startElement(UnmarshallingContext.java:481)
     at 
com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallingContext.startElement(UnmarshallingContext.java:459)
     at 
com.sun.xml.bind.v2.runtime.unmarshaller.InterningXmlVisitor.startElement(InterningXmlVisitor.java:71)
     at 
com.sun.xml.bind.v2.runtime.unmarshaller.SAXConnector.startElement(SAXConnector.java:148)
     at com.sun.xml.bind.unmarshaller.DOMScanner.visit(DOMScanner.java:239)
     at com.sun.xml.bind.unmarshaller.DOMScanner.visit(DOMScanner.java:276)
     at com.sun.xml.bind.unmarshaller.DOMScanner.visit(DOMScanner.java:245)
     at com.sun.xml.bind.unmarshaller.DOMScanner.visit(DOMScanner.java:276)
     at com.sun.xml.bind.unmarshaller.DOMScanner.visit(DOMScanner.java:245)
     at com.sun.xml.bind.unmarshaller.DOMScanner.scan(DOMScanner.java:122)
     at com.sun.xml.bind.unmarshaller.DOMScanner.scan(DOMScanner.java:105)
     at 
com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallerImpl.unmarshal0(UnmarshallerImpl.java:317)
     at 
com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallerImpl.unmarshal(UnmarshallerImpl.java:297)
     at 
org.apache.cxf.jaxws.spi.ProviderImpl.createW3CEndpointReference(ProviderImpl.java:311)
     ... 19 more

basically the JAXB impl expects the configured TransformerFactory to be 
an instance of SAXTransformerFactory:

public static TransformerHandler createTransformerHandler() {
    try {
        synchronized(JAXBContextImpl.class) {
            if(tf==null)
                tf = 
(SAXTransformerFactory)TransformerFactory.newInstance();
            return tf.newTransformerHandler();
        }
    } catch (TransformerConfigurationException e) {
        throw new Error(e); // impossible
    }
}

Jason, what do we want to do? Implement SAXTransformerFactory too in 
jboss-modules' __TransformerFactory ?

Cheers
Alessio

-- 
Alessio Soldano
Web Service Lead, JBoss




More information about the jboss-as7-dev mailing list