[ 
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]

Reply via email to