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~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Reply via email to