Garry-
Thanks for responding... Here's the full stack trace (I'm sure some of
it will be wrapped):
% java org.apache.xalan.xslt.Process -in test_bad.xml -xsl test.xsl
file:///export/home/heddings/tmp/test.xsl; Line 16; Column 30;
content:
javax.xml.transform.TransformerException
at
org.apache.xalan.transformer.TransformerImpl.transformNode(TransformerImpl.java:1242)
at
org.apache.xalan.transformer.TransformerImpl.run(TransformerImpl.java:2942)
at java.lang.Thread.run(Thread.java:484)
---------
; SystemID: file:///export/home/heddings/tmp/test.xsl; Line#: 16;
Column#: 30
; SystemID: file:///export/home/heddings/tmp/test.xsl; Line#: 16;
Column#: 30
javax.xml.transform.TransformerException
at
org.apache.xalan.extensions.ExtensionHandlerJavaClass.processElement(ExtensionHandlerJavaClass.java:423)
at
org.apache.xalan.templates.ElemExtensionCall.execute(ElemExtensionCall.java:304)
at
org.apache.xalan.transformer.TransformerImpl.executeChildTemplates(TransformerImpl.java:2202)
at
org.apache.xalan.transformer.TransformerImpl.applyTemplateToNode(TransformerImpl.java:2085)
at
org.apache.xalan.transformer.TransformerImpl.transformNode(TransformerImpl.java:1219)
at
org.apache.xalan.transformer.TransformerImpl.run(TransformerImpl.java:2942)
at java.lang.Thread.run(Thread.java:484)
---------
java.lang.reflect.InvocationTargetException:
java.lang.StringIndexOutOfBoundsException: String index out of range:
-32533
at java.lang.String.getChars(String.java:550)
at
org.apache.xml.utils.FastStringBuffer.append(FastStringBuffer.java:389)
at org.apache.xpath.DOMHelper.getNodeData(DOMHelper.java:1314)
at org.apache.xpath.DOMHelper.getNodeData(DOMHelper.java:1308)
at org.apache.xpath.DOMHelper.getNodeData(DOMHelper.java:1267)
at
org.apache.xpath.objects.XNodeSet.getStringFromNode(XNodeSet.java:184)
at org.apache.xpath.objects.XNodeSet.str(XNodeSet.java:209)
at
org.apache.xalan.templates.AVTPartXPath.evaluate(AVTPartXPath.java:161)
at org.apache.xalan.templates.AVT.evaluate(AVT.java:523)
at
org.apache.xalan.templates.ElemExtensionCall.getAttribute(ElemExtensionCall.java:399)
at ExtensionTest.test(ExtensionTest.java:13)
at java.lang.reflect.Method.invoke(Native Method)
at
org.apache.xalan.extensions.ExtensionHandlerJavaClass.processElement(ExtensionHandlerJavaClass.java:418)
at
org.apache.xalan.templates.ElemExtensionCall.execute(ElemExtensionCall.java:304)
at
org.apache.xalan.transformer.TransformerImpl.executeChildTemplates(TransformerImpl.java:2202)
at
org.apache.xalan.transformer.TransformerImpl.applyTemplateToNode(TransformerImpl.java:2085)
at
org.apache.xalan.transformer.TransformerImpl.transformNode(TransformerImpl.java:1219)
at
org.apache.xalan.transformer.TransformerImpl.run(TransformerImpl.java:2942)
at java.lang.Thread.run(Thread.java:484)
---------
java.lang.reflect.InvocationTargetException:
java.lang.StringIndexOutOfBoundsException: String index out of range:
-32533
at java.lang.String.getChars(String.java:550)
at
org.apache.xml.utils.FastStringBuffer.append(FastStringBuffer.java:389)
at org.apache.xpath.DOMHelper.getNodeData(DOMHelper.java:1314)
at org.apache.xpath.DOMHelper.getNodeData(DOMHelper.java:1308)
at org.apache.xpath.DOMHelper.getNodeData(DOMHelper.java:1267)
at
org.apache.xpath.objects.XNodeSet.getStringFromNode(XNodeSet.java:184)
at org.apache.xpath.objects.XNodeSet.str(XNodeSet.java:209)
at
org.apache.xalan.templates.AVTPartXPath.evaluate(AVTPartXPath.java:161)
at org.apache.xalan.templates.AVT.evaluate(AVT.java:523)
at
org.apache.xalan.templates.ElemExtensionCall.getAttribute(ElemExtensionCall.java:399)
at ExtensionTest.test(ExtensionTest.java:13)
at java.lang.reflect.Method.invoke(Native Method)
at
org.apache.xalan.extensions.ExtensionHandlerJavaClass.processElement(ExtensionHandlerJavaClass.java:418)
at
org.apache.xalan.templates.ElemExtensionCall.execute(ElemExtensionCall.java:304)
at
org.apache.xalan.transformer.TransformerImpl.executeChildTemplates(TransformerImpl.java:2202)
at
org.apache.xalan.transformer.TransformerImpl.applyTemplateToNode(TransformerImpl.java:2085)
at
org.apache.xalan.transformer.TransformerImpl.transformNode(TransformerImpl.java:1219)
at
org.apache.xalan.transformer.TransformerImpl.run(TransformerImpl.java:2942)
at java.lang.Thread.run(Thread.java:484)
XSLT Error (javax.xml.transform.TransformerException): null
Gary L Peskin wrote:
>
> Jason --
>
> What does the complete stack trace look like?
>
> Gary
>
> jason heddings wrote:
> >
> > Hello folks!
> >
> > I'm experiencing what appears to be a limit in the size of an attribute
> > when using extension functions.
> >
> > I've attached the Java source (stripped down to expose the problem) as
> > well as the XSL document I'm using.
> >
> > I've created files of size ~32K and ~33K (not attached -- I left them
> > out for now to spare the alias) to test with. The ~32K file passes fine
> > through the extension element, but the ~33K file does not. It throws a
> > wrapped exception with the following message:
> > java.lang.StringIndexOutOfBoundsException: String index out of range:
> > -32533
> >
> > In the XSL, if I comment out the call to the extension element, and use
> > the <xsl:value-of ... /> instead, it works fine for very large files
> > (tested up to 1.3MB).
> >
> > So I'm not sure if there is a problem with the ElementExtensionCall
> > class or perhaps in the AVT where the attribute is evaluated for
> > AVTParts. Most likely problem: I messed up and just need a pointer in
> > the right direction.
> >
> > Any help would be very appreciated...
> >
> > --jah
> >
> >
> > ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> > \\\|/// Jason Heddings ((
> > \\ ~ ~ // 303.272.5166 (x75166) C|~~|
> > (/ @ @ /) [EMAIL PROTECTED] `__'
> > ~~oOOo~(_)~oOOo~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> >
> > ------------------------------------------------------------------------
> > <?xml version="1.0"?>
> >
> > <xsl:stylesheet version="1.0"
> > xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
> > xmlns:test="ExtensionTest"
> > extension-element-prefixes="test"
> > >
> >
> > <xsl:output method="text" encoding="ISO-8859-1" />
> >
> > <xsl:template match="/">
> > <xsl:apply-templates />
> > </xsl:template>
> >
> > <xsl:template match="content">
> > <xsl:variable name="foo" select="." />
> > content:
> >
> > <xsl:value-of select="$foo" />
> > <!--<test:test attr="{$foo}" />-->
> > </xsl:template>
> >
> > </xsl:stylesheet>
> >
> > ------------------------------------------------------------------------
> > import org.apache.xalan.templates.ElemExtensionCall ;
> > import org.apache.xalan.extensions.XSLProcessorContext ;
> > import org.apache.xalan.transformer.TransformerImpl ;
> >
> > import org.w3c.dom.Element ;
> >
> > public class ExtensionTest {
> >
> > public String test( XSLProcessorContext context , Element element )
> > throws javax.xml.transform.TransformerException {
> > TransformerImpl trans = context.getTransformer( ) ;
> > ElemExtensionCall elem = (ElemExtensionCall) element ;
> > return elem.getAttribute( "attr" , elem , trans ) ;
> > }
> > }
--
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
\\\|/// Jason Heddings ((
\\ ~ ~ // 303.272.5166 (x75166) C|~~|
(/ @ @ /) [EMAIL PROTECTED] `__'
~~oOOo~(_)~oOOo~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~