You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@xalan.apache.org by jy...@apache.org on 2005/02/04 19:08:57 UTC
cvs commit: xml-xalan/java/src/org/apache/xalan/templates ElemNumber.java
jycli 2005/02/04 10:08:57
Modified: java/src/org/apache/xalan/templates ElemNumber.java
Log:
Implement Errata E24, when the value attribute of xsl:number is NaN, infinite or less than 0.5. More details please refer to bug report XALANJ-1979.
Patch is reviewed by Morris Kwan (mkwan@ca.ibm.com)
Revision Changes Path
1.36 +12 -5 xml-xalan/java/src/org/apache/xalan/templates/ElemNumber.java
Index: ElemNumber.java
===================================================================
RCS file: /home/cvs/xml-xalan/java/src/org/apache/xalan/templates/ElemNumber.java,v
retrieving revision 1.35
retrieving revision 1.36
diff -u -r1.35 -r1.36
--- ElemNumber.java 23 Jan 2005 00:27:29 -0000 1.35
+++ ElemNumber.java 4 Feb 2005 18:08:57 -0000 1.36
@@ -795,10 +795,17 @@
if (null != m_valueExpr)
{
XObject countObj = m_valueExpr.execute(xctxt, sourceNode, this);
- long count = (long)java.lang.Math.floor(countObj.num()+ 0.5);
-
- list = new long[1];
- list[0] = count;
+ //According to Errata E24
+ double d_count = java.lang.Math.floor(countObj.num()+ 0.5);
+ if (Double.isNaN(d_count)) return "NaN";
+ else if (d_count < 0 && Double.isInfinite(d_count)) return "-Infinity";
+ else if (Double.isInfinite(d_count)) return "Infinity";
+ else if (d_count == 0) return "0";
+ else{
+ long count = (long)d_count;
+ list = new long[1];
+ list[0] = count;
+ }
}
else
{
---------------------------------------------------------------------
To unsubscribe, e-mail: xalan-cvs-unsubscribe@xml.apache.org
For additional commands, e-mail: xalan-cvs-help@xml.apache.org