Joel Koshy created KAFKA-1469:
---------------------------------

             Summary: Util.abs function does not return correct absolute values 
for negative values
                 Key: KAFKA-1469
                 URL: https://issues.apache.org/jira/browse/KAFKA-1469
             Project: Kafka
          Issue Type: Bug
            Reporter: Joel Koshy


Reported by Russell Melick. [edit: I don't think this affects correctness of
the places that use the abs utility since we just need it to return a
consistent positive value, but we should fix this nonetheless]

{code}
     /**
      * Get the absolute value of the given number. If the number is
   Int.MinValue return 0.
      * This is different from java.lang.Math.abs or scala.math.abs in that
   they return Int.MinValue (!).
      */
     def abs(n: Int) = n & 0x7fffffff
{code}

For negative integers, it does not return the absolute value.  It does
appear to do what the comment says for Int.MinValue though.  For example,

{code}
   scala> -1 & 0x7fffffff
   res8: Int = 2147483647

   scala> -2 & 0x7fffffff
   res9: Int = 2147483646

   scala> -2147483647 & 0x7fffffff
   res11: Int = 1

   scala> -2147483648 & 0x7fffffff
   res12: Int = 0
{code}




--
This message was sent by Atlassian JIRA
(v6.2#6252)

Reply via email to