xalan-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Holger Rehn (JIRA)" <j...@apache.org>
Subject [jira] [Created] (XALANJ-2570) Argument type mismatch when using Java extension
Date Thu, 21 Mar 2013 15:05:16 GMT
Holger Rehn created XALANJ-2570:

             Summary: Argument type mismatch when using Java extension
                 Key: XALANJ-2570
                 URL: https://issues.apache.org/jira/browse/XALANJ-2570
             Project: XalanJ2
          Issue Type: Bug
      Security Level: No security risk; visible to anyone (Ordinary problems in Xalan projects.
 Anybody can view the issue.)
          Components: Xalan-extensions
    Affects Versions: 2.7.1, The Latest Development Code, 2.7.D2, 2.7.2
            Reporter: Holger Rehn
            Assignee: Steven J. Hathaway
            Priority: Blocker

In a stylesheet calling method append() on a StringBuilder provided as parameter:

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:java="http://xml.apache.org/xslt/java">
  <xsl:param name="SB" />
  <xsl:template match="/">
    <xsl:message><xsl:value-of select="java:append( $SB, 'text' )"/></xsl:message>

Problem #1:
In the example above the MethodResolver may not choose the appropriate method. It does work
with Java 7 build 1.7.0-b147 (choosing StringBuilder.append(String)), but not with the latest
Java 7 Update 17 (choosing StringBuilder.append(CharSequence)). Method MethodResolver.scoreMatch()
returns the same score for both (and other) methods because the value is of class XObject.CLASS_STRING.

Problem #2:
MethodResolver.convert() is not able to handle values of type CharSequence properly and ends
up converting the String value into a Double (NaN).

Please find attached a patch (against trunk, SVN revision 1383083) addressing problem #2 and
improving  MethodResolver.scoreMatch() to provide a better score if a value exactly matches
the target type, compared to a value only assignable to the target type.

This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

To unsubscribe, e-mail: dev-unsubscribe@xalan.apache.org
For additional commands, e-mail: dev-help@xalan.apache.org

View raw message