You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@xalan.apache.org by "Min Idzelis (JIRA)" <xa...@xml.apache.org> on 2007/02/21 16:42:06 UTC

[jira] Commented: (XALANJ-2315) MethodResolver.convert converts CharSequence into Double

    [ 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: xalan-dev-unsubscribe@xml.apache.org
For additional commands, e-mail: xalan-dev-help@xml.apache.org