Xalan, secure processing and literal attribute problem with camel
Issue
- It would appear that the
secure processinginXalan 2.7.2(as packaged inJBoss Fuse 6.1 R2) has an issue with producing attributes.- the issue occurs in
JBoss Fuse 6.1.0 R2 - the issue occurs in
JBoss Fuse 6.1.0 R2P6 - the issue does NOT occur in an unpatched
JBoss Fuse 6.1.0
- the issue occurs in
- When a stylesheet containing a
literal elementwith aliteral attributeis loaded the following exception is produced.
javax.xml.transform.TransformerException: "myattrib" attribute is not allowed on the row element!
at org.apache.xalan.processor.StylesheetHandler.error(StylesheetHandler.java:904)[:]
at org.apache.xalan.processor.StylesheetHandler.error(StylesheetHandler.java:947)[:]
at org.apache.xalan.processor.XSLTElementProcessor.setPropertiesFromAttributes(XSLTElementProcessor.java:347)[:]
at org.apache.xalan.processor.XSLTElementProcessor.setPropertiesFromAttributes(XSLTElementProcessor.java:267)[:]
at org.apache.xalan.processor.ProcessorLRE.startElement(ProcessorLRE.java:283)[:]
at org.apache.xalan.processor.StylesheetHandler.startElement(StylesheetHandler.java:623)[:]
at org.apache.xerces.parsers.AbstractSAXParser.startElement(Unknown Source)[:]
at org.apache.xerces.impl.XMLNSDocumentScannerImpl.scanStartElement(Unknown Source)[:]
at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(Unknown Source)[:]
at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown Source)[:]
at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)[:]
at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)[:]
at org.apache.xerces.parsers.XMLParser.parse(Unknown Source)[:]
at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown Source)[:]
at org.apache.xerces.jaxp.SAXParserImpl$JAXPSAXParser.parse(Unknown Source)[:]
at org.apache.xalan.processor.TransformerFactoryImpl.newTemplates(TransformerFactoryImpl.java:917)[:]
at org.apache.camel.builder.xml.XsltBuilder.setTransformerSource(XsltBuilder.java:329)[142:org.apache.camel.camel-core:2.12.0.redhat-610379]
at org.apache.camel.component.xslt.XsltEndpoint.loadResource(XsltEndpoint.java:112)[142:org.apache.camel.camel-core:2.12.0.redhat-610379]
at org.apache.camel.component.xslt.XsltEndpoint.doStart(XsltEndpoint.java:121)[142:org.apache.camel.camel-core:2.12.0.redhat-610379]
at ...
- Alternatively the issue can be reproduced in
Xalandirectly on the command line- Works : using libs from
JBoss Fuse 6.1(unpatched)
- Works : using libs from
java
-cp org.apache.servicemix.bundles.xalan-2.7.1_7.jar;org.apache.karaf.bundles.xalan-serializer-2.7.1-2.3.0.redhat-610379.jar;org.apache.karaf.bundles.xerces-2.11.0-2.3.0.redhat-610379.jar
org.apache.xalan.xslt.Process
-SECURE -XSL transform-xalan-attrib.xsl
-IN data-xalan-attrib.xml
-OUT out-6.1-secure.xml
- Works : using libs from
JBoss Fuse 6.1 R2(non secure processing)
java
-cp org.apache.servicemix.bundles.xalan-2.7.2_2.jar;org.apache.servicemix.bundles.xalan-serializer-2.7.2_1.jar;org.apache.karaf.bundles.xerces-2.11.0-2.3.0.redhat-610379.jar
org.apache.xalan.xslt.Process
-XSL transform-xalan-attrib.xsl
-IN data-xalan-attrib.xml
-OUT out-6.1r2-nonsec.xml
- Fails : using libs from
JBoss Fuse 6.1 R2(secure processing)
java
-cp org.apache.servicemix.bundles.xalan-2.7.2_2.jar;org.apache.servicemix.bundles.xalan-serializer-2.7.2_1.jar;org.apache.karaf.bundles.xerces-2.11.0-2.3.0.redhat-610379.jar
org.apache.xalan.xslt.Process
-SECURE
-XSL transform-xalan-attrib.xsl
-IN data-xalan-attrib.xml
-OUT out-6.1r2-secure.xml
- The processor emits the following error:
file:///C:/...../transform-xalan-attrib.xsl; Line #12; Column #33; "myattrib" attribute is not allowed on the row element!
- Our workaround for the moment is to set
saxon=truein all effected xsltCamel URIs(dependent on whether the stylesheet contains iteral attributes) .
Environment
- Red Hat JBoss Fuse
- 6.1 R2
Subscriber exclusive content
A Red Hat subscription provides unlimited access to our knowledgebase of over 48,000 articles and solutions.
Welcome! Check out the Getting Started with Red Hat page for quick tours and guides for common tasks.
