[
https://issues.apache.org/jira/browse/XALANJ-2315?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12474735
]
Min Idzelis commented on XALANJ-2315:
-------------------------------------
I am being hit by the problem too. When you try to pass in a text() node into a
Java extension class that accepts a CharSequence paramter, the value that is
actually received by the Java class is null.
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:javaPattern="xalan://java.util.regex.Pattern"
xmlns:javaMatcher="xalan://java.util.regex.Matcher">
<xsl:template match="text()">
<xsl:variable name="astring" select="."/>
<xsl:variable name="pattern" select="javaPattern:compile('BUGID[0-9]+')"/>
<xsl:variable name="matcher"
select="javaPattern:matcher($pattern,$astring)"/>
<xsl:variable name="indexOfMatch" select="javaMatcher:find($matcher,0)"/>
</xsl:template>
</xsl:stylesheet>
-------------
<?xml version="1.0" encoding="UTF-8"?>
<element>Some reference to BUGID123 trailing text</element>
The result will be a NullPointerException
Class: java.lang.NullPointerException
Stacktrace:
java.util.regex.Matcher.getTextLength (Matcher.java:758) <-- trying to call
getLength() on null text field (CharSequence)
java.util.regex.Matcher.find (Matcher.java:436)
sun.reflect.NativeMethodAccessorImpl.invoke0 [native method]
(NativeMethodAccessorImpl.java:-2)
sun.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:39)
sun.reflect.DelegatingMethodAccessorImpl.invoke
(DelegatingMethodAccessorImpl.java:25)
java.lang.reflect.Method.invoke (Method.java:324)
org.apache.xalan.extensions.ExtensionHandlerJavaClass.callFunction
(ExtensionHandlerJavaClass.java:346)
<snip>
> MethodResolver.convert converts CharSequence into Double
> --------------------------------------------------------
>
> Key: XALANJ-2315
> URL: https://issues.apache.org/jira/browse/XALANJ-2315
> Project: XalanJ2
> Issue Type: Improvement
> Components: Xalan
> Affects Versions: 2.7
> Environment: all
> Reporter: Brian Knorr
> Assigned To: Brian Minchau
>
> When using AggregateTransformer to convert xml results to html the exception
> below is encountered. This is due to the convertedArgs being incorrectly
> converted for the method String.replace(CharSequence,CharSequence). Right
> now MethodResolver.convert only can convert for types String, Object,
> Character, Boolean, and Number. Please add support for CharSequence.
> Thanks,
> Brian
> javax.xml.transform.TransformerException: java.lang.IllegalArgumentException:
> argument type mismatch
> at
> org.apache.xalan.extensions.ExtensionHandlerJavaPackage.callFunction(ExtensionHandlerJavaPackage.java:420)
> at
> org.apache.xalan.extensions.ExtensionHandlerJavaPackage.callFunction(ExtensionHandlerJavaPackage.java:438)
> at
> org.apache.xalan.extensions.ExtensionsTable.extFunction(ExtensionsTable.java:220)
> at
> org.apache.xalan.transformer.TransformerImpl.extFunction(TransformerImpl.java:473)
> at
> org.apache.xpath.functions.FuncExtFunction.execute(FuncExtFunction.java:206)
> at
> org.apache.xpath.Expression.executeCharsToContentHandler(Expression.java:311)
> at org.apache.xalan.templates.ElemValueOf.execute(ElemValueOf.java:272)
> at
> org.apache.xalan.transformer.TransformerImpl.executeChildTemplates(TransformerImpl.java:2411)
> at
> org.apache.xalan.templates.ElemTemplate.execute(ElemTemplate.java:392)
> at
> org.apache.xalan.templates.ElemCallTemplate.execute(ElemCallTemplate.java:246)
> at
> org.apache.xalan.transformer.TransformerImpl.executeChildTemplates(TransformerImpl.java:2411)
> at
> org.apache.xalan.templates.ElemLiteralResult.execute(ElemLiteralResult.java:1374)
> at
> org.apache.xalan.transformer.TransformerImpl.executeChildTemplates(TransformerImpl.java:2411)
> at
> org.apache.xalan.templates.ElemTemplate.execute(ElemTemplate.java:392)
> at
> org.apache.xalan.templates.ElemCallTemplate.execute(ElemCallTemplate.java:246)
> at
> org.apache.xalan.templates.ElemApplyTemplates.transformSelectedNodes(ElemApplyTemplates.java:393)
> at
> org.apache.xalan.templates.ElemApplyTemplates.execute(ElemApplyTemplates.java:176)
> at
> org.apache.xalan.transformer.TransformerImpl.executeChildTemplates(TransformerImpl.java:2411)
> at
> org.apache.xalan.templates.ElemLiteralResult.execute(ElemLiteralResult.java:1374)
> at
> org.apache.xalan.transformer.TransformerImpl.executeChildTemplates(TransformerImpl.java:2411)
> at org.apache.xalan.templates.ElemChoose.execute(ElemChoose.java:126)
> at
> org.apache.xalan.transformer.TransformerImpl.executeChildTemplates(TransformerImpl.java:2411)
> at
> org.apache.xalan.templates.ElemLiteralResult.execute(ElemLiteralResult.java:1374)
> at
> org.apache.xalan.templates.ElemApplyTemplates.transformSelectedNodes(ElemApplyTemplates.java:393)
> at
> org.apache.xalan.templates.ElemApplyTemplates.execute(ElemApplyTemplates.java:176)
> at
> org.apache.xalan.transformer.TransformerImpl.executeChildTemplates(TransformerImpl.java:2411)
> at
> org.apache.xalan.templates.ElemLiteralResult.execute(ElemLiteralResult.java:1374)
> at
> org.apache.xalan.templates.ElemForEach.transformSelectedNodes(ElemForEach.java:423)
> at org.apache.xalan.templates.ElemForEach.execute(ElemForEach.java:263)
> at
> org.apache.xalan.transformer.TransformerImpl.executeChildTemplates(TransformerImpl.java:2411)
> at
> org.apache.xalan.templates.ElemTemplate.execute(ElemTemplate.java:392)
> at
> org.apache.xalan.templates.ElemCallTemplate.execute(ElemCallTemplate.java:246)
> at
> org.apache.xalan.transformer.TransformerImpl.executeChildTemplates(TransformerImpl.java:2411)
> at
> org.apache.xalan.templates.ElemLiteralResult.execute(ElemLiteralResult.java:1374)
> at
> org.apache.xalan.transformer.TransformerImpl.executeChildTemplates(TransformerImpl.java:2411)
> at
> org.apache.xalan.templates.ElemLiteralResult.execute(ElemLiteralResult.java:1374)
> at
> org.apache.xalan.templates.ElemApplyTemplates.transformSelectedNodes(ElemApplyTemplates.java:393)
> at
> org.apache.xalan.templates.ElemApplyTemplates.execute(ElemApplyTemplates.java:176)
> at
> org.apache.xalan.transformer.TransformerImpl.executeChildTemplates(TransformerImpl.java:2411)
> at
> org.apache.xalan.transformer.TransformerImpl.applyTemplateToNode(TransformerImpl.java:2281)
> at
> org.apache.xalan.transformer.TransformerImpl.transformNode(TransformerImpl.java:1367)
> at
> org.apache.xalan.transformer.TransformerImpl.transform(TransformerImpl.java:709)
> at
> org.apache.xalan.transformer.TransformerImpl.transform(TransformerImpl.java:1284)
> at
> org.apache.xalan.transformer.TransformerImpl.transform(TransformerImpl.java:1262)
> at
> org.apache.tools.ant.taskdefs.optional.junit.Xalan2Executor.execute(Xalan2Executor.java:85)
> at
> org.apache.tools.ant.taskdefs.optional.junit.AggregateTransformer.transform(AggregateTransformer.java:146)
> at test.AppletRunner$1.run(AppletRunner.java:88)
> at java.lang.Thread.run(Unknown Source)
> 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:402)
> ... 47 more
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]