Heiko Selber (JIRA)
2016-12-21 14:39:58 UTC
[ https://issues.apache.org/jira/browse/XALANJ-2374?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15767210#comment-15767210 ]
Heiko Selber commented on XALANJ-2374:
--------------------------------------
The problem occurred for me when I upgraded from java 1.7 to 1.8 (1.8.0_102-b14) on Debian 8.6.
The only way to fix it was downloading the sources and applying the fix described here.
We depend heavily on xalan, so a bugfix release would be great.
This message was sent by Atlassian JIRA
(v6.3.4#6332)
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-***@xalan.apache.org
For additional commands, e-mail: dev-***@xalan.apache.org
Heiko Selber commented on XALANJ-2374:
--------------------------------------
The problem occurred for me when I upgraded from java 1.7 to 1.8 (1.8.0_102-b14) on Debian 8.6.
The only way to fix it was downloading the sources and applying the fix described here.
We depend heavily on xalan, so a bugfix release would be great.
MethodResolver not handling CharSequence class conversion
---------------------------------------------------------
Key: XALANJ-2374
URL: https://issues.apache.org/jira/browse/XALANJ-2374
Project: XalanJ2
Issue Type: Bug
Environment: Windows Sun JRE 1.5.0.6 or higher
HPUnix JRE 1.5.0 or higher
Reporter: Alex
{
if((javaClass == java.lang.String.class) ||
(javaClass == java.lang.Object.class))
return xobj.str();
else if(javaClass == java.lang.CharSequence.class)
return xobj.str();
else if(javaClass == Character.TYPE)
{
String str = xobj.str();
if(str.length() > 0)
return new Character(str.charAt(0));
else
return null; // ??
}
else if(javaClass == Boolean.TYPE)
return new Boolean(xobj.bool());
else
{
return convertDoubleToNumber(xobj.num(), javaClass);
}
}
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0" xmlns:xalan="http://xml.apache.org/xalan" xmlns:lxslt="http://xml.apache.org/xslt" xmlns:my-ext="ext2" xmlns:java="http://xml.apache.org/xslt/java" exclude-result-prefixes="java" extension-element-prefixes="my-ext">
<xsl:template match="/">
<xsl:variable name="Destination" select="java:java.lang.StringBuffer.new('ABC')"/>
<xsl:variable name="Str" select="java:java.lang.String.new('DB')"/>
<xsl:variable name="b3" select="java:append($Destination,$Str)"/>
<output>
<xsl:value-of select="java:toString($Destination)"/>
</output>
</xsl:template>
</xsl:stylesheet>
javax.xml.transform.TransformerException: java.lang.IllegalArgumentException: argument type mismatch
at org.apache.xalan.extensions.ExtensionHandlerJavaPackage.callFunction(ExtensionHandlerJavaPackage.java:403)
at org.apache.xalan.extensions.ExtensionsTable.extFunction(ExtensionsTable.java:227)
at org.apache.xalan.transformer.TransformerImpl.extFunction(TransformerImpl.java:460)
at org.apache.xpath.functions.FuncExtFunction.execute(FuncExtFunction.java:196)
at org.apache.xpath.XPath.execute(XPath.java:308)
at org.apache.xalan.templates.ElemVariable.getValue(ElemVariable.java:323)
at org.apache.xalan.templates.ElemVariable.execute(ElemVariable.java:291)
at org.apache.xalan.transformer.TransformerImpl.executeChildTemplates(TransformerImpl.java:2324)
at org.apache.xalan.transformer.TransformerImpl.applyTemplateToNode(TransformerImpl.java:2147)
at org.apache.xalan.transformer.TransformerImpl.transformNode(TransformerImpl.java:1203)
at org.apache.xalan.transformer.TransformerImpl.transform(TransformerImpl.java:665)
at org.apache.xalan.transformer.TransformerImpl.transform(TransformerImpl.java:1119)
at org.apache.xalan.transformer.TransformerImpl.transform(TransformerImpl.java:1097)
at com.exln.stylus.CXalanDriver.doProcessing(CXalanDriver.java:108)
at com.exln.stylus.CProcessorDriver.process(CProcessorDriver.java:55)
Caused by: java.lang.IllegalArgumentException: argument type mismatch
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.apache.xalan.extensions.ExtensionHandlerJavaPackage.callFunction(ExtensionHandlerJavaPackage.java:389)
... 14 more
---------
java.lang.IllegalArgumentException: argument type mismatch
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.apache.xalan.extensions.ExtensionHandlerJavaPackage.callFunction(ExtensionHandlerJavaPackage.java:389)
at org.apache.xalan.extensions.ExtensionsTable.extFunction(ExtensionsTable.java:227)
at org.apache.xalan.transformer.TransformerImpl.extFunction(TransformerImpl.java:460)
at org.apache.xpath.functions.FuncExtFunction.execute(FuncExtFunction.java:196)
at org.apache.xpath.XPath.execute(XPath.java:308)
at org.apache.xalan.templates.ElemVariable.getValue(ElemVariable.java:323)
at org.apache.xalan.templates.ElemVariable.execute(ElemVariable.java:291)
at org.apache.xalan.transformer.TransformerImpl.executeChildTemplates(TransformerImpl.java:2324)
at org.apache.xalan.transformer.TransformerImpl.applyTemplateToNode(TransformerImpl.java:2147)
at org.apache.xalan.transformer.TransformerImpl.transformNode(TransformerImpl.java:1203)
at org.apache.xalan.transformer.TransformerImpl.transform(TransformerImpl.java:665)
at org.apache.xalan.transformer.TransformerImpl.transform(TransformerImpl.java:1119)
at org.apache.xalan.transformer.TransformerImpl.transform(TransformerImpl.java:1097)
at com.exln.stylus.CXalanDriver.doProcessing(CXalanDriver.java:108)
at com.exln.stylus.CProcessorDriver.process(CProcessorDriver.java:55)
-----------------------------------------------------------
Key: XALANJ-2374
URL: https://issues.apache.org/jira/browse/XALANJ-2374
Project: XalanJ2
Issue Type: Bug
Environment: Windows Sun JRE 1.5.0.6 or higher
HPUnix JRE 1.5.0 or higher
Reporter: Alex
{
if((javaClass == java.lang.String.class) ||
(javaClass == java.lang.Object.class))
return xobj.str();
else if(javaClass == java.lang.CharSequence.class)
return xobj.str();
else if(javaClass == Character.TYPE)
{
String str = xobj.str();
if(str.length() > 0)
return new Character(str.charAt(0));
else
return null; // ??
}
else if(javaClass == Boolean.TYPE)
return new Boolean(xobj.bool());
else
{
return convertDoubleToNumber(xobj.num(), javaClass);
}
}
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0" xmlns:xalan="http://xml.apache.org/xalan" xmlns:lxslt="http://xml.apache.org/xslt" xmlns:my-ext="ext2" xmlns:java="http://xml.apache.org/xslt/java" exclude-result-prefixes="java" extension-element-prefixes="my-ext">
<xsl:template match="/">
<xsl:variable name="Destination" select="java:java.lang.StringBuffer.new('ABC')"/>
<xsl:variable name="Str" select="java:java.lang.String.new('DB')"/>
<xsl:variable name="b3" select="java:append($Destination,$Str)"/>
<output>
<xsl:value-of select="java:toString($Destination)"/>
</output>
</xsl:template>
</xsl:stylesheet>
javax.xml.transform.TransformerException: java.lang.IllegalArgumentException: argument type mismatch
at org.apache.xalan.extensions.ExtensionHandlerJavaPackage.callFunction(ExtensionHandlerJavaPackage.java:403)
at org.apache.xalan.extensions.ExtensionsTable.extFunction(ExtensionsTable.java:227)
at org.apache.xalan.transformer.TransformerImpl.extFunction(TransformerImpl.java:460)
at org.apache.xpath.functions.FuncExtFunction.execute(FuncExtFunction.java:196)
at org.apache.xpath.XPath.execute(XPath.java:308)
at org.apache.xalan.templates.ElemVariable.getValue(ElemVariable.java:323)
at org.apache.xalan.templates.ElemVariable.execute(ElemVariable.java:291)
at org.apache.xalan.transformer.TransformerImpl.executeChildTemplates(TransformerImpl.java:2324)
at org.apache.xalan.transformer.TransformerImpl.applyTemplateToNode(TransformerImpl.java:2147)
at org.apache.xalan.transformer.TransformerImpl.transformNode(TransformerImpl.java:1203)
at org.apache.xalan.transformer.TransformerImpl.transform(TransformerImpl.java:665)
at org.apache.xalan.transformer.TransformerImpl.transform(TransformerImpl.java:1119)
at org.apache.xalan.transformer.TransformerImpl.transform(TransformerImpl.java:1097)
at com.exln.stylus.CXalanDriver.doProcessing(CXalanDriver.java:108)
at com.exln.stylus.CProcessorDriver.process(CProcessorDriver.java:55)
Caused by: java.lang.IllegalArgumentException: argument type mismatch
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.apache.xalan.extensions.ExtensionHandlerJavaPackage.callFunction(ExtensionHandlerJavaPackage.java:389)
... 14 more
---------
java.lang.IllegalArgumentException: argument type mismatch
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.apache.xalan.extensions.ExtensionHandlerJavaPackage.callFunction(ExtensionHandlerJavaPackage.java:389)
at org.apache.xalan.extensions.ExtensionsTable.extFunction(ExtensionsTable.java:227)
at org.apache.xalan.transformer.TransformerImpl.extFunction(TransformerImpl.java:460)
at org.apache.xpath.functions.FuncExtFunction.execute(FuncExtFunction.java:196)
at org.apache.xpath.XPath.execute(XPath.java:308)
at org.apache.xalan.templates.ElemVariable.getValue(ElemVariable.java:323)
at org.apache.xalan.templates.ElemVariable.execute(ElemVariable.java:291)
at org.apache.xalan.transformer.TransformerImpl.executeChildTemplates(TransformerImpl.java:2324)
at org.apache.xalan.transformer.TransformerImpl.applyTemplateToNode(TransformerImpl.java:2147)
at org.apache.xalan.transformer.TransformerImpl.transformNode(TransformerImpl.java:1203)
at org.apache.xalan.transformer.TransformerImpl.transform(TransformerImpl.java:665)
at org.apache.xalan.transformer.TransformerImpl.transform(TransformerImpl.java:1119)
at org.apache.xalan.transformer.TransformerImpl.transform(TransformerImpl.java:1097)
at com.exln.stylus.CXalanDriver.doProcessing(CXalanDriver.java:108)
at com.exln.stylus.CProcessorDriver.process(CProcessorDriver.java:55)
This message was sent by Atlassian JIRA
(v6.3.4#6332)
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-***@xalan.apache.org
For additional commands, e-mail: dev-***@xalan.apache.org