<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "https://www.w3.org/Bugs/Public/page.cgi?id=bugzilla.dtd">

<bugzilla version="5.0.4"
          urlbase="https://www.w3.org/Bugs/Public/"
          
          maintainer="sysbot+bugzilla@w3.org"
>

    <bug>
          <bug_id>19011</bug_id>
          
          <creation_ts>2012-09-25 17:57:27 +0000</creation_ts>
          <short_desc>Wrong validation of length 0.0 - use value.compareTo(BigDecimal.ZERO)==0 instead of value.equals(BigDecimal.ZERO) - [WITH PATCH]</short_desc>
          <delta_ts>2012-09-28 18:38:33 +0000</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>CSSValidator</product>
          <component>Parser</component>
          <version>CSS Validator</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>major</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Hannes Erven">hannes+w3cbugs</reporter>
          <assigned_to name="This bug has no owner yet - up for the taking">dave.null</assigned_to>
          
          
          <qa_contact name="qa-dev tracking">www-validator-cvs</qa_contact>

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>74453</commentid>
    <comment_count>0</comment_count>
      <attachid>1190</attachid>
    <who name="Hannes Erven">hannes+w3cbugs</who>
    <bug_when>2012-09-25 17:57:27 +0000</bug_when>
    <thetext>Created attachment 1190
Suggested patch

When specifying lengths, CSS allows zero lengths to be specified without a unit. This works fine for &quot;0&quot;, but not for &quot;0.0&quot; .
The specification clearly states that any numbers may contain a decimal point, so I think that should work.

To reproduce, try this:
* {margin: 0.0}


The reason for this behaviour is what I think is an inappropriate use of the BigDecimal&apos;s &quot;equals&quot; method. As the javadoc states, the method returns only true when the value and scale for both arguments are identical. This means that 2.0 does not equal 2.00 or for the example above, 0 == BigDecimal.ZERO but 0.0 does not.

I&apos;ll attach a patch with all those places corrected that I think need to be reworked.
There are still some (few) lines where there are still == checks, but where I was not sure what behaviour was actually intended.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>74454</commentid>
    <comment_count>1</comment_count>
    <who name="Hannes Erven">hannes+w3cbugs</who>
    <bug_when>2012-09-25 17:59:09 +0000</bug_when>
    <thetext>(corrected misleading title. sorry.)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>74825</commentid>
    <comment_count>2</comment_count>
    <who name="Yves Lafon">ylafon</who>
    <bug_when>2012-09-28 18:38:33 +0000</bug_when>
    <thetext>It is indeed an issue, thanks for finding it and for providing a patch!
I expanded it a bit to cover Resolution and other improper use of equals.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>1190</attachid>
            <date>2012-09-25 17:57:27 +0000</date>
            <delta_ts>2012-09-25 17:57:27 +0000</delta_ts>
            <desc>Suggested patch</desc>
            <filename>validator-bigdecimal-compare-patch.txt</filename>
            <type>text/plain</type>
            <size>3687</size>
            <attacher name="Hannes Erven">hannes+w3cbugs</attacher>
            
              <data encoding="base64">IyMjIEVjbGlwc2UgV29ya3NwYWNlIFBhdGNoIDEuMA0KI1AgY3NzaW5zcGVjdG9yDQpJbmRleDog
c3JjX2Nzc1ZhbGlkYXRvci9vcmcvdzNjL2Nzcy92YWx1ZXMvQ3NzVGltZS5qYXZhDQo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09DQotLS0gc3JjX2Nzc1ZhbGlkYXRvci9vcmcvdzNjL2Nzcy92YWx1ZXMvQ3NzVGltZS5qYXZh
CShyZXZpc2lvbiA3OTI4KQ0KKysrIHNyY19jc3NWYWxpZGF0b3Ivb3JnL3czYy9jc3MvdmFsdWVz
L0Nzc1RpbWUuamF2YQkod29ya2luZyBjb3B5KQ0KQEAgLTEyMCw3ICsxMjAsNyBAQA0KICAgICAg
KiBSZXR1cm5zIGEgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBvYmplY3QuCiAgICAgICov
CiAgICAgcHVibGljIFN0cmluZyB0b1N0cmluZygpIHsKLSAgICAgICAgaWYgKEJpZ0RlY2ltYWwu
WkVSTy5lcXVhbHModmFsdWUpKSB7CisgICAgICAgIGlmIChCaWdEZWNpbWFsLlpFUk8uY29tcGFy
ZVRvKHZhbHVlKT09MCkgewogICAgICAgICAgICAgcmV0dXJuIHZhbHVlLnRvUGxhaW5TdHJpbmco
KTsKICAgICAgICAgfQogICAgICAgICByZXR1cm4gdmFsdWUudG9QbGFpblN0cmluZygpICsgdW5p
dDsKSW5kZXg6IHNyY19jc3NWYWxpZGF0b3Ivb3JnL3czYy9jc3MvdmFsdWVzL0Nzc1BlcmNlbnRh
Z2UuamF2YQ0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQ0KLS0tIHNyY19jc3NWYWxpZGF0b3Ivb3JnL3czYy9jc3MvdmFs
dWVzL0Nzc1BlcmNlbnRhZ2UuamF2YQkocmV2aXNpb24gNzkyOCkNCisrKyBzcmNfY3NzVmFsaWRh
dG9yL29yZy93M2MvY3NzL3ZhbHVlcy9Dc3NQZXJjZW50YWdlLmphdmEJKHdvcmtpbmcgY29weSkN
CkBAIC0xMjcsNyArMTI3LDcgQEANCiAJICogQHJldHVybiBhIGJvb2xlYW4KIAkgKi8KIAlwdWJs
aWMgYm9vbGVhbiBpc1plcm8oKSB7Ci0JCXJldHVybiBCaWdEZWNpbWFsLlpFUk8uZXF1YWxzKHZh
bHVlKTsKKwkJcmV0dXJuIEJpZ0RlY2ltYWwuWkVSTy5jb21wYXJlVG8odmFsdWUpPT0wOwogCX0K
IAogCS8qKgpJbmRleDogc3JjX2Nzc1ZhbGlkYXRvci9vcmcvdzNjL2Nzcy92YWx1ZXMvQ3NzTnVt
YmVyLmphdmENCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0NCi0tLSBzcmNfY3NzVmFsaWRhdG9yL29yZy93M2MvY3NzL3Zh
bHVlcy9Dc3NOdW1iZXIuamF2YQkocmV2aXNpb24gNzkyOCkNCisrKyBzcmNfY3NzVmFsaWRhdG9y
L29yZy93M2MvY3NzL3ZhbHVlcy9Dc3NOdW1iZXIuamF2YQkod29ya2luZyBjb3B5KQ0KQEAgLTE0
NCw3ICsxNDQsNyBAQA0KIAkgKiBAdGhyb3dzIEludmFsaWRQYXJhbUV4Y2VwdGlvbiBUaGUgdmFs
dWUgaXMgbm90IHplcm8KIAkgKi8KIAlwdWJsaWMgQ3NzTGVuZ3RoIGdldExlbmd0aCgpIHRocm93
cyBJbnZhbGlkUGFyYW1FeGNlcHRpb24gewotCQlpZiAodmFsdWUuZXF1YWxzKEJpZ0RlY2ltYWwu
WkVSTykpIHsKKwkJaWYgKHZhbHVlLmNvbXBhcmVUbyhCaWdEZWNpbWFsLlpFUk8pPT0wKSB7CiAJ
CQlyZXR1cm4gbmV3IENzc0xlbmd0aCgpOwogCQl9CiAJCXRocm93IG5ldyBJbnZhbGlkUGFyYW1F
eGNlcHRpb24oInplcm8iLCAibGVuZ3RoIiwgYWMpOwpAQCAtMTU3LDcgKzE1Nyw3IEBADQogCSAq
IEB0aHJvd3MgSW52YWxpZFBhcmFtRXhjZXB0aW9uIFRoZSB2YWx1ZSBpcyBub3QgemVybwogCSAq
LwogCXB1YmxpYyBDc3NQZXJjZW50YWdlIGdldFBlcmNlbnRhZ2UoKSB0aHJvd3MgSW52YWxpZFBh
cmFtRXhjZXB0aW9uIHsKLQkJaWYgKHZhbHVlLmVxdWFscyhCaWdEZWNpbWFsLlpFUk8pKSB7CisJ
CWlmICh2YWx1ZS5jb21wYXJlVG8oQmlnRGVjaW1hbC5aRVJPKT09MCkgewogCQkJcmV0dXJuIG5l
dyBDc3NQZXJjZW50YWdlKCk7CiAJCX0KIAkJdGhyb3cgbmV3IEludmFsaWRQYXJhbUV4Y2VwdGlv
bigiemVybyIsCkBAIC0xNzIsNyArMTcyLDcgQEANCiAJICogQHRocm93cyBJbnZhbGlkUGFyYW1F
eGNlcHRpb24gVGhlIHZhbHVlIGlzIG5vdCB6ZXJvCiAJICovCiAJcHVibGljIENzc1RpbWUgZ2V0
VGltZSgpIHRocm93cyBJbnZhbGlkUGFyYW1FeGNlcHRpb24gewotCQlpZiAodmFsdWUuZXF1YWxz
KEJpZ0RlY2ltYWwuWkVSTykpIHsKKwkJaWYgKHZhbHVlLmNvbXBhcmVUbyhCaWdEZWNpbWFsLlpF
Uk8pPT0wKSB7CiAJCQlyZXR1cm4gbmV3IENzc1RpbWUoKTsKIAkJfQogCQl0aHJvdyBuZXcgSW52
YWxpZFBhcmFtRXhjZXB0aW9uKCJ6ZXJvIiwgdmFsdWUudG9TdHJpbmcoKSwKQEAgLTE4Niw3ICsx
ODYsNyBAQA0KIAkgKiBAdGhyb3dzIEludmFsaWRQYXJhbUV4Y2VwdGlvbiBUaGUgdmFsdWUgaXMg
bm90IHplcm8KIAkgKi8KIAlwdWJsaWMgQ3NzQW5nbGUgZ2V0QW5nbGUoKSB0aHJvd3MgSW52YWxp
ZFBhcmFtRXhjZXB0aW9uIHsKLQkJaWYgKHZhbHVlLmVxdWFscyhCaWdEZWNpbWFsLlpFUk8pKSB7
CisJCWlmICh2YWx1ZS5jb21wYXJlVG8oQmlnRGVjaW1hbC5aRVJPKT09MCkgewogCQkJcmV0dXJu
IG5ldyBDc3NBbmdsZSgpOwogCQl9CiAJCXRocm93IG5ldyBJbnZhbGlkUGFyYW1FeGNlcHRpb24o
Inplcm8iLCB2YWx1ZS50b1N0cmluZygpLApAQCAtMjAwLDcgKzIwMCw3IEBADQogCSAqIEB0aHJv
d3MgSW52YWxpZFBhcmFtRXhjZXB0aW9uIFRoZSB2YWx1ZSBpcyBub3QgemVybwogCSAqLwogCXB1
YmxpYyBDc3NGcmVxdWVuY3kgZ2V0RnJlcXVlbmN5KCkgdGhyb3dzIEludmFsaWRQYXJhbUV4Y2Vw
dGlvbiB7Ci0JCWlmICh2YWx1ZS5lcXVhbHMoQmlnRGVjaW1hbC5aRVJPKSkgeworCQlpZiAodmFs
dWUuY29tcGFyZVRvKEJpZ0RlY2ltYWwuWkVSTyk9PTApIHsKIAkJCXJldHVybiBuZXcgQ3NzRnJl
cXVlbmN5KCk7CiAJCX0KIAkJdGhyb3cgbmV3IEludmFsaWRQYXJhbUV4Y2VwdGlvbigiemVybyIs
CkluZGV4OiBzcmNfY3NzVmFsaWRhdG9yL29yZy93M2MvY3NzL3ZhbHVlcy9Dc3NMZW5ndGguamF2
YQ0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQ0KLS0tIHNyY19jc3NWYWxpZGF0b3Ivb3JnL3czYy9jc3MvdmFsdWVzL0Nz
c0xlbmd0aC5qYXZhCShyZXZpc2lvbiA3OTI4KQ0KKysrIHNyY19jc3NWYWxpZGF0b3Ivb3JnL3cz
Yy9jc3MvdmFsdWVzL0Nzc0xlbmd0aC5qYXZhCSh3b3JraW5nIGNvcHkpDQpAQCAtMjA0LDcgKzIw
NCw3IEBADQogCSAqIEByZXR1cm4gYSBib29sZWFuCiAJICovCiAJcHVibGljIGJvb2xlYW4gaXNa
ZXJvKCkgewotCQlyZXR1cm4gQmlnRGVjaW1hbC5aRVJPLmVxdWFscyh2YWx1ZSk7CisJCXJldHVy
biBCaWdEZWNpbWFsLlpFUk8uY29tcGFyZVRvKHZhbHVlKT09MDsKIAl9CiAKIAkvKioKQEAgLTIz
Miw3ICsyMzIsNyBAQA0KIAkgKiBSZXR1cm5zIGEgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRo
ZSBvYmplY3QuCiAJICovCiAJcHVibGljIFN0cmluZyB0b1N0cmluZygpIHsKLQkJaWYgKEJpZ0Rl
Y2ltYWwuWkVSTy5lcXVhbHModmFsdWUpKSB7CisJCWlmIChCaWdEZWNpbWFsLlpFUk8uY29tcGFy
ZVRvKHZhbHVlKT09MCkgewogCQkJcmV0dXJuIHZhbHVlLnRvUGxhaW5TdHJpbmcoKTsKIAkJfQog
CQlyZXR1cm4gdmFsdWUudG9QbGFpblN0cmluZygpICsgdW5pdDsK
</data>

          </attachment>
      

    </bug>

</bugzilla>