In another month or so we'll be switching over to a parser-generator
approach (i.e. JavaCUP or JavaCC, YACC for the C++ version), so these bad
diagnostics should go away.
-scott
Jens
Schaefers To: [EMAIL PROTECTED]
<schaefers@ad cc: (bcc: Scott Boag/CAM/Lotus)
esso.de> Subject: Re: Strange error message /
Xalan-J 2.1.0
07/24/01
08:21 AM
Please
respond to
xalan-dev
Hi Scott,
thanks, that was the hint I needed, because I've already limited the
error to one of the xsl templates used.
After that I've tried to verify the transformation with Saxon and the
error message was very explicit and even included the line number in the
xsl file.
It was a very trivial error:
<xsl:when test="@Class='agency' or @Class='agency.instance'">
After @Class='agency I forgot to put the closing ' and the result was
the confusing xalan error message.
Now I know that it's a good approach to verify my stylesheets with Saxon
when Xalan generates strange error messages.
Thanks for your help!
Best regards,
Jens
[EMAIL PROTECTED] wrote:
>
> It's a bad error message for a problem in one of your xpaths. If you
post
> the XSLT file, I can tell you what is the matter and how to fix it.
>
> -scott
>
>
> Jens
> Schaefers To: [EMAIL PROTECTED]
> <schaefers@ad cc: (bcc: Scott
Boag/CAM/Lotus)
> esso.de> Subject: Re: Strange error
message / Xalan-J 2.1.0
>
> 07/24/01
> 05:23 AM
> Please
> respond to
> xalan-dev
>
>
>
> Hello Joseph,
>
> I've just tried Xalan 2.2.D7 and it's the same error message. I'm using
> Xalan from the command line with a batch file:
>
> -------------------
> set
> classpath=..\classes\xalan.jar;..\classes\xerces.jar;..
\classes\bsf.jar;..
> \classes\xalanj1compat.jar;
> java org.apache.xalan.xslt.Process -IN ..\xml\umsetzung.mdl -XSL
> ..\library\html\frame\header_frame.xsl -OUT ..\output\header.html
> -------------------
>
> The output is:
>
> ---------------------
> H:\Leu Smart, Dateiformat\Xsl\test>set
> classpath=..\classes\xalan.jar;..\classes
> \xerces.jar;..\classes\bsf.jar;..\classes\xalanj1compat.jar
>
> H:\Leu Smart, Dateiformat\Xsl\test>java org.apache.xalan.xslt.Process
> -IN ..\xm
> l\umsetzung.mdl -XSL ..\library\html\frame\header_frame.xsl -OUT
> ..\output\heade
> r.html
>
> XSLT Error (javax.xml.transform.TransformerConfigurationException):
> String index
> out of range: 43
> ---------------------
>
> Here is the dump created with the -edump switch:
>
> javax.xml.transform.TransformerConfigurationException: String index out
> of range: 43
> at
>
org.apache.xalan.processor.TransformerFactoryImpl.newTemplates(TransformerFactoryImpl.java:876)
>
> at Process.main(Process.java:558)
> ---------
> javax.xml.transform.TransformerException: String index out of range: 43
> at
>
org.apache.xalan.processor.TransformerFactoryImpl.newTemplates(TransformerFactoryImpl.java:872)
>
> at Process.main(Process.java:558)
> ---------
> java.lang.StringIndexOutOfBoundsException: String index out of range: 43
> at
> org.apache.xerces.framework.XMLParser.parse(XMLParser.java:965)
> at
>
org.apache.xalan.processor.ProcessorInclude.parse(ProcessorInclude.java:303)
>
> at
>
org.apache.xalan.processor.ProcessorInclude.startElement(ProcessorInclude.java:189)
>
> at
>
org.apache.xalan.processor.StylesheetHandler.startElement(StylesheetHandler.java:631)
>
> at
> org.apache.xerces.parsers.SAXParser.startElement(SAXParser.java:1371)
> at
>
org.apache.xerces.validators.common.XMLValidator.callStartElement(XMLValidator.java:840)
>
> at
>
org.apache.xerces.framework.XMLDocumentScanner.scanElement(XMLDocumentScanner.java:1853)
>
> at
>
org.apache.xerces.framework.XMLDocumentScanner$ContentDispatcher.dispatch(XMLDocumentScanner.java:1234)
>
> at
>
org.apache.xerces.framework.XMLDocumentScanner.parseSome(XMLDocumentScanner.java:381)
>
> at
> org.apache.xerces.framework.XMLParser.parse(XMLParser.java:948)
> at
>
org.apache.xalan.processor.ProcessorInclude.parse(ProcessorInclude.java:303)
>
> at
>
org.apache.xalan.processor.ProcessorInclude.startElement(ProcessorInclude.java:189)
>
> at
>
org.apache.xalan.processor.StylesheetHandler.startElement(StylesheetHandler.java:631)
>
> at
> org.apache.xerces.parsers.SAXParser.startElement(SAXParser.java:1371)
> at
>
org.apache.xerces.validators.common.XMLValidator.callStartElement(XMLValidator.java:840)
>
> at
>
org.apache.xerces.framework.XMLDocumentScanner.scanElement(XMLDocumentScanner.java:1853)
>
> at
>
org.apache.xerces.framework.XMLDocumentScanner$ContentDispatcher.dispatch(XMLDocumentScanner.java:1234)
>
> at
>
org.apache.xerces.framework.XMLDocumentScanner.parseSome(XMLDocumentScanner.java:381)
>
> at
> org.apache.xerces.framework.XMLParser.parse(XMLParser.java:948)
> at
>
org.apache.xalan.processor.TransformerFactoryImpl.newTemplates(TransformerFactoryImpl.java:864)
>
> at Process.main(Process.java:558)
> ---------
> java.lang.StringIndexOutOfBoundsException: String index out of range: 43
> at java.lang.String.substring(String.java:1500)
> at org.apache.xpath.compiler.Lexer.tokenize(Lexer.java:235)
> at org.apache.xpath.compiler.Lexer.tokenize(Lexer.java:139)
> at
> org.apache.xpath.compiler.XPathParser.initXPath(XPathParser.java:144)
> at org.apache.xpath.XPath.<init>(XPath.java:198)
> at
>
org.apache.xalan.processor.StylesheetHandler.createXPath(StylesheetHandler.java:193)
>
> at
>
org.apache.xalan.processor.XSLTAttributeDef.processEXPR(XSLTAttributeDef.java:573)
>
> at
>
org.apache.xalan.processor.XSLTAttributeDef.processValue(XSLTAttributeDef.java:917)
>
> at
>
org.apache.xalan.processor.XSLTAttributeDef.setAttrValue(XSLTAttributeDef.java:1075)
>
> at
>
org.apache.xalan.processor.XSLTElementProcessor.setPropertiesFromAttributes(XSLTElementProcessor.java:375)
>
> at
>
org.apache.xalan.processor.XSLTElementProcessor.setPropertiesFromAttributes(XSLTElementProcessor.java:311)
>
> at
>
org.apache.xalan.processor.ProcessorTemplateElem.startElement(ProcessorTemplateElem.java:121)
>
> at
>
org.apache.xalan.processor.StylesheetHandler.startElement(StylesheetHandler.java:631)
>
> at
> org.apache.xerces.parsers.SAXParser.startElement(SAXParser.java:1371)
> at
>
org.apache.xerces.validators.common.XMLValidator.callStartElement(XMLValidator.java:840)
>
> at
>
org.apache.xerces.framework.XMLDocumentScanner.scanElement(XMLDocumentScanner.java:1853)
>
> at
>
org.apache.xerces.framework.XMLDocumentScanner$ContentDispatcher.dispatch(XMLDocumentScanner.java:1234)
>
> at
>
org.apache.xerces.framework.XMLDocumentScanner.parseSome(XMLDocumentScanner.java:381)
>
> at
> org.apache.xerces.framework.XMLParser.parse(XMLParser.java:948)
> at
>
org.apache.xalan.processor.ProcessorInclude.parse(ProcessorInclude.java:303)
>
> at
>
org.apache.xalan.processor.ProcessorInclude.startElement(ProcessorInclude.java:189)
>
> at
>
org.apache.xalan.processor.StylesheetHandler.startElement(StylesheetHandler.java:631)
>
> at
> org.apache.xerces.parsers.SAXParser.startElement(SAXParser.java:1371)
> at
>
org.apache.xerces.validators.common.XMLValidator.callStartElement(XMLValidator.java:840)
>
> at
>
org.apache.xerces.framework.XMLDocumentScanner.scanElement(XMLDocumentScanner.java:1853)
>
> at
>
org.apache.xerces.framework.XMLDocumentScanner$ContentDispatcher.dispatch(XMLDocumentScanner.java:1234)
>
> at
>
org.apache.xerces.framework.XMLDocumentScanner.parseSome(XMLDocumentScanner.java:381)
>
> at
> org.apache.xerces.framework.XMLParser.parse(XMLParser.java:948)
> at
>
org.apache.xalan.processor.ProcessorInclude.parse(ProcessorInclude.java:303)
>
> at
>
org.apache.xalan.processor.ProcessorInclude.startElement(ProcessorInclude.java:189)
>
> at
>
org.apache.xalan.processor.StylesheetHandler.startElement(StylesheetHandler.java:631)
>
> at
> org.apache.xerces.parsers.SAXParser.startElement(SAXParser.java:1371)
> at
>
org.apache.xerces.validators.common.XMLValidator.callStartElement(XMLValidator.java:840)
>
> at
>
org.apache.xerces.framework.XMLDocumentScanner.scanElement(XMLDocumentScanner.java:1853)
>
> at
>
org.apache.xerces.framework.XMLDocumentScanner$ContentDispatcher.dispatch(XMLDocumentScanner.java:1234)
>
> at
>
org.apache.xerces.framework.XMLDocumentScanner.parseSome(XMLDocumentScanner.java:381)
>
> at
> org.apache.xerces.framework.XMLParser.parse(XMLParser.java:948)
> at
>
org.apache.xalan.processor.TransformerFactoryImpl.newTemplates(TransformerFactoryImpl.java:864)
>
> at Process.main(Process.java:558)
> ---------
> java.lang.StringIndexOutOfBoundsException: String index out of range: 43
> at
> org.apache.xerces.framework.XMLParser.parse(XMLParser.java:965)
> at
>
org.apache.xalan.processor.ProcessorInclude.parse(ProcessorInclude.java:303)
>
> at
>
org.apache.xalan.processor.ProcessorInclude.startElement(ProcessorInclude.java:189)
>
> at
>
org.apache.xalan.processor.StylesheetHandler.startElement(StylesheetHandler.java:631)
>
> at
> org.apache.xerces.parsers.SAXParser.startElement(SAXParser.java:1371)
> at
>
org.apache.xerces.validators.common.XMLValidator.callStartElement(XMLValidator.java:840)
>
> at
>
org.apache.xerces.framework.XMLDocumentScanner.scanElement(XMLDocumentScanner.java:1853)
>
> at
>
org.apache.xerces.framework.XMLDocumentScanner$ContentDispatcher.dispatch(XMLDocumentScanner.java:1234)
>
> at
>
org.apache.xerces.framework.XMLDocumentScanner.parseSome(XMLDocumentScanner.java:381)
>
> at
> org.apache.xerces.framework.XMLParser.parse(XMLParser.java:948)
> at
>
org.apache.xalan.processor.ProcessorInclude.parse(ProcessorInclude.java:303)
>
> at
>
org.apache.xalan.processor.ProcessorInclude.startElement(ProcessorInclude.java:189)
>
> at
>
org.apache.xalan.processor.StylesheetHandler.startElement(StylesheetHandler.java:631)
>
> at
> org.apache.xerces.parsers.SAXParser.startElement(SAXParser.java:1371)
> at
>
org.apache.xerces.validators.common.XMLValidator.callStartElement(XMLValidator.java:840)
>
> at
>
org.apache.xerces.framework.XMLDocumentScanner.scanElement(XMLDocumentScanner.java:1853)
>
> at
>
org.apache.xerces.framework.XMLDocumentScanner$ContentDispatcher.dispatch(XMLDocumentScanner.java:1234)
>
> at
>
org.apache.xerces.framework.XMLDocumentScanner.parseSome(XMLDocumentScanner.java:381)
>
> at
> org.apache.xerces.framework.XMLParser.parse(XMLParser.java:948)
> at
>
org.apache.xalan.processor.TransformerFactoryImpl.newTemplates(TransformerFactoryImpl.java:864)
>
> at Process.main(Process.java:558)
> ---------
> java.lang.StringIndexOutOfBoundsException: String index out of range: 43
> at java.lang.String.substring(String.java:1500)
> at org.apache.xpath.compiler.Lexer.tokenize(Lexer.java:235)
> at org.apache.xpath.compiler.Lexer.tokenize(Lexer.java:139)
> at
> org.apache.xpath.compiler.XPathParser.initXPath(XPathParser.java:144)
> at org.apache.xpath.XPath.<init>(XPath.java:198)
> at
>
org.apache.xalan.processor.StylesheetHandler.createXPath(StylesheetHandler.java:193)
>
> at
>
org.apache.xalan.processor.XSLTAttributeDef.processEXPR(XSLTAttributeDef.java:573)
>
> at
>
org.apache.xalan.processor.XSLTAttributeDef.processValue(XSLTAttributeDef.java:917)
>
> at
>
org.apache.xalan.processor.XSLTAttributeDef.setAttrValue(XSLTAttributeDef.java:1075)
>
> at
>
org.apache.xalan.processor.XSLTElementProcessor.setPropertiesFromAttributes(XSLTElementProcessor.java:375)
>
> at
>
org.apache.xalan.processor.XSLTElementProcessor.setPropertiesFromAttributes(XSLTElementProcessor.java:311)
>
> at
>
org.apache.xalan.processor.ProcessorTemplateElem.startElement(ProcessorTemplateElem.java:121)
>
> at
>
org.apache.xalan.processor.StylesheetHandler.startElement(StylesheetHandler.java:631)
>
> at
> org.apache.xerces.parsers.SAXParser.startElement(SAXParser.java:1371)
> at
>
org.apache.xerces.validators.common.XMLValidator.callStartElement(XMLValidator.java:840)
>
> at
>
org.apache.xerces.framework.XMLDocumentScanner.scanElement(XMLDocumentScanner.java:1853)
>
> at
>
org.apache.xerces.framework.XMLDocumentScanner$ContentDispatcher.dispatch(XMLDocumentScanner.java:1234)
>
> at
>
org.apache.xerces.framework.XMLDocumentScanner.parseSome(XMLDocumentScanner.java:381)
>
> at
> org.apache.xerces.framework.XMLParser.parse(XMLParser.java:948)
> at
>
org.apache.xalan.processor.ProcessorInclude.parse(ProcessorInclude.java:303)
>
> at
>
org.apache.xalan.processor.ProcessorInclude.startElement(ProcessorInclude.java:189)
>
> at
>
org.apache.xalan.processor.StylesheetHandler.startElement(StylesheetHandler.java:631)
>
> at
> org.apache.xerces.parsers.SAXParser.startElement(SAXParser.java:1371)
> at
>
org.apache.xerces.validators.common.XMLValidator.callStartElement(XMLValidator.java:840)
>
> at
>
org.apache.xerces.framework.XMLDocumentScanner.scanElement(XMLDocumentScanner.java:1853)
>
> at
>
org.apache.xerces.framework.XMLDocumentScanner$ContentDispatcher.dispatch(XMLDocumentScanner.java:1234)
>
> at
>
org.apache.xerces.framework.XMLDocumentScanner.parseSome(XMLDocumentScanner.java:381)
>
> at
> org.apache.xerces.framework.XMLParser.parse(XMLParser.java:948)
> at
>
org.apache.xalan.processor.ProcessorInclude.parse(ProcessorInclude.java:303)
>
> at
>
org.apache.xalan.processor.ProcessorInclude.startElement(ProcessorInclude.java:189)
>
> at
>
org.apache.xalan.processor.StylesheetHandler.startElement(StylesheetHandler.java:631)
>
> at
> org.apache.xerces.parsers.SAXParser.startElement(SAXParser.java:1371)
> at
>
org.apache.xerces.validators.common.XMLValidator.callStartElement(XMLValidator.java:840)
>
> at
>
org.apache.xerces.framework.XMLDocumentScanner.scanElement(XMLDocumentScanner.java:1853)
>
> at
>
org.apache.xerces.framework.XMLDocumentScanner$ContentDispatcher.dispatch(XMLDocumentScanner.java:1234)
>
> at
>
org.apache.xerces.framework.XMLDocumentScanner.parseSome(XMLDocumentScanner.java:381)
>
> at
> org.apache.xerces.framework.XMLParser.parse(XMLParser.java:948)
> at
>
org.apache.xalan.processor.TransformerFactoryImpl.newTemplates(TransformerFactoryImpl.java:864)
>
> at Process.main(Process.java:558)
>
> I hope this is the information you need.
>
> Thanks for your help!
>
> Jens
>
> [EMAIL PROTECTED] wrote:
> >
> > >XSLT Error (javax.xml.transform.TransformerConfigurationException):
> > >String index out of range: 43
> >
> > That really isn't enough information. Please post a complete stack
trace
> > for the exception. so we have a better idea of what failed where and
when
> > doing what.
> >
> > Note that we're currently up to version 2.2.D7, so you might want to
> check
> > whether this problem still happens with the most recent code.