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 Tevoi Andrea <te...@cad.it> on 2002/12/04 10:01:46 UTC

problems with javascript extension in Xalan J 2.2 and higher

Hi all,

this stylesheet:

<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"
		xmlns:lxslt="http://xml.apache.org/xslt" 
		xmlns:my-ext="urn:my-ext" 
		extension-element-prefixes="my-ext"> 


<lxslt:component prefix="my-ext" functions="doit">
<lxslt:script lang="javascript">
<![CDATA[
	function doit (flag)
	{
		return (flag? "good": "bad");
	}

// ]]>
</lxslt:script>
</lxslt:component>

<xsl:template match="/">
	<out>
	<xsl:value-of select="my-ext:doit (false ())"/>
	</out>
</xsl:template>
</xsl:stylesheet>
------------------------------------------------------------------------------

on the following xml

------------------------------------------------------------------------------
<xml/>
------------------------------------------------------------------------------

gives the following results:
- using xalan 2.0.1 it works
- using xalan 2.2 or higher gives the following exception

------------------------------------------------------------------------------
java.lang.reflect.InvocationTargetException
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
	at java.lang.reflect.Method.invoke(Method.java:324)
	at org.apache.xalan.extensions.ExtensionHandlerGeneral.callFunction(ExtensionHandlerGeneral.java:361)
	at org.apache.xalan.extensions.ExtensionsTable.extFunction(ExtensionsTable.java:257)
	at org.apache.xpath.functions.FuncExtFunction.execute(FuncExtFunction.java:181)
	at org.apache.xpath.Expression.executeCharsToContentHandler(Expression.java:301)
	at org.apache.xalan.templates.ElemValueOf.execute(ElemValueOf.java:319)
	at org.apache.xalan.transformer.TransformerImpl.executeChildTemplates(TransformerImpl.java:2243)
	at org.apache.xalan.templates.ElemLiteralResult.execute(ElemLiteralResult.java:710)
	at org.apache.xalan.transformer.TransformerImpl.executeChildTemplates(TransformerImpl.java:2243)
	at org.apache.xalan.transformer.TransformerImpl.applyTemplateToNode(TransformerImpl.java:2069)
	at org.apache.xalan.transformer.TransformerImpl.transformNode(TransformerImpl.java:1171)
	at org.apache.xalan.transformer.TransformerImpl.transform(TransformerImpl.java:634)
	at org.apache.xalan.transformer.TransformerImpl.transform(TransformerImpl.java:1088)
	at org.apache.xalan.transformer.TransformerImpl.transform(TransformerImpl.java:1066)
	at carlo.xalan.test.Test.main(Test.java:27)
Caused by: com.ibm.bsf.BSFException: JavaScript Error: Invalid JavaScript value of type org.apache.xpath.objects.XBooleanStatic
	at com.ibm.bsf.engines.javascript.JavaScriptEngine.handleError(JavaScriptEngine.java:182)
	at com.ibm.bsf.engines.javascript.JavaScriptEngine.call(JavaScriptEngine.java:122)
	... 18 more
------------------------------------------------------------------------------


I observe that in xalan 2.4 smoketest the only two  tests on javascript scripting
are those two usually reported in the examples, which are far from being complete,
so it's non surprising that javascript support is regressing!

Appreciated any help.

Thanks,
Andrea.