Another possibility - and here I'm really doing debugging in the dark, not having seen any of your code - is that in your Java application you have failed to set base URIs for some or all of the documents involved. This could cause document() calls to fetch the wrong document, potentially going into a loop when you process them.
As I say, it's a wild guess.
Michael Kay

From: Roberto Cisternino []
Sent: 16 January 2009 09:21
Subject: Re: [saxon] allocate more stack space [was: Saxon B]

thanks for answering so fast.

The stylesheet I am testing is traversing UBL XSDs so I expect there are 6-10 nested calls, but in general to work is more long than complex.

The stylesheets generates a prototypical instance of the UBL 2.0 Invoice XSD, and the result is about 2 Mb.

It is also a porting from an XSLT 1.0 stylesheet designed for Xalan XSLTC, so I admit it is a long stylesheet (63 Kb)

I'll try to play more with the stack space settings on the target VM.

Also I tested both Java 1.5.x and 1.6 (which is using memory more dynamically) but the error is the same.

Thanks for helping


Michael Kay wrote:
Message: 5
Date: Fri, 16 Jan 2009 09:01:31 -0000
From: "Michael Kay" <>
Subject: Re: [saxon] Saxon B
To: "'Mailing list for the SAXON XSLT and XQuery processor'"
Message-ID: <CCB29C897F2547F5878AB61DC004446C@Sealion>
Content-Type: text/plain; charset="us-ascii"

I've never been successful trying to allocate more stack space to the Java
VM. The amount of heap space will make no difference to this error.

The most likely explanation for the different behaviour is simply that your
application code is using some of the stack space that would otherwise be
available to Saxon.

I can't really offer any other suggestions without seeing your code. How
deeply nested do you think its calls are?

Michael Kay

(By the way, it's helpful if you can choose a subject line that describes
the problem. If everyone titled their posts as you have done, it would
become very difficult to find your way through the archives or through
digest postings.)


Message: 4
Date: Fri, 16 Jan 2009 07:58:37 +0100
From: "Roberto Cisternino" <>
Subject: [saxon] Saxon B
Content-Type: text/plain; charset="utf-8"

I need help to understand why Saxon B is behaving differently
depending if I use it from the command line or direclty from a java program.

Using the command-line the stylesheet works perfectly and the transformation
generates as expected a good result.
Using Saxon from a Java program and the same stylesheet caused the below

javax.xml.transform.TransformerException: Too many nested apply-templates
calls. The stylesheet may be looping.; SystemID: ...

For sure the source XML and the stylesheet are enought complex, but I am
surprised I cannot obtain the same result using one of the two methods

I tuned the VM to provide more heap memory or stack, but the result was
always the above error.

The error appears too early in the transformation, and this surprise me more
and more as the transformation is enough long (less than half a minute)
using the command-line.

What are the default memory settings for the Saxon B command-line ?

Any ideas ?

I will appreciate very much any suggestions

Thank you in advance

Roberto Cisternino
-------------- next part --------------
An HTML attachment was scrubbed...