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)