You are viewing a plain text version of this content. The canonical link for it is here.
Posted to j-users@xalan.apache.org by St...@avinci.de on 2003/09/25 10:30:44 UTC

AW: Error when using Templates with XSLTC

Hi Chris,
 
once i used the IBM Websphere in a Beta Version and 
got exactly the same message. I was told that it's a beta jvm which produces the message. 
I replaced it by another one and the errormessage went away. If you have that
ibm beta jvm i think that's the reason. Don't worry about it, just replace your jvm.
 
Stefan
 
take a look at my posting 2002-12-05:
http://marc.theaimsgroup.com/?l=xalan-j-users&m=103908544904986&w=2
 
-----Ursprüngliche Nachricht----- 
Von: RKoenig@ShelterInsurance.com [mailto:RKoenig@ShelterInsurance.com] 
Gesendet: Mi 24.09.2003 11:53 
An: xalan-j-users@xml.apache.org 
Cc: 
Betreff: Error when using Templates with XSLTC




	Hi, 
	
	I am getting the following error being logged to System.err when trying to transform an XML Document using XSLTC ("org.apache.xalan.xsltc.trax.TransformerFactoryImpl").   
	
	mmiVerifyTpAndGetWorkSize: stack_height=2 should be zero; exit 
	mmiVerifyTpAndGetWorkSize: stack_height=2 should be zero; exit 
	mmiVerifyTpAndGetWorkSize: stack_height=2 should be zero; exit 
	... 
	
	The error message is getting output repeatedly (50 - 100 times).  It appears that the transformation does occurr correctly.  The problem is occurring when the Template is being used repeatedly (at least 20 times).  The following code snippet produces the problem. 
	
	        //Code snippet to execute timing tests using XSLTC. 
	        long count = 30; 
	        Source xslSource = new StreamSource(new CharArrayReader(xslDocument)); 
	        TransformerFactory factory = TransformerFactory.newInstance(); 
	        Templates template = factory.newTemplates(xslSource); 
	        Transformer transformer = null; 
	        ByteArrayOutputStream transformedOutput = null; 
	        Document document = XMLCompareUtility.parse(xmlFile); 
	        for (int i=0; i < count; i++) 
	        { 
	                transformedOutput = new ByteArrayOutputStream(65536); 
	                transformer = template.newTransformer(); 
	                transformer.transform(new DOMSource(document), new StreamResult(transformedOutput)); 
	        } 
	
	I am using version 2.5.1 of Xalan J.  The input document is about 140KB.  When I reduce the input document size, the number of errors reduces, but doesn't go away entirely.  The problem doesn't occur if I use the following code to assign the transformer object being used:   
	
	        transformer = factor.newTransformer(); 
	
	I am wanting to use Template so that I can share the compiled XSL stylesheet between multiple threads in my application. 
	
	The same XML document and XSL stylesheet (with the code snippet above) work fine using Template when using the interpreted version of Xalan ("org.apache.xalan.processor.TransformerFactoryImpl"). 
	
	I would appreciate any feedback that can be offered. 
	
	Chris