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 ) ;
> }
> }