You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@pig.apache.org by da...@apache.org on 2012/03/16 07:16:58 UTC

svn commit: r1301346 - in /pig/trunk: CHANGES.txt contrib/piggybank/java/src/main/java/org/apache/pig/piggybank/evaluation/string/HashFNV.java

Author: daijy
Date: Fri Mar 16 06:16:58 2012
New Revision: 1301346

URL: http://svn.apache.org/viewvc?rev=1301346&view=rev
Log:
PIG-2581: HashFNV inconsistent/non-deterministic due to default platform encoding

Modified:
    pig/trunk/CHANGES.txt
    pig/trunk/contrib/piggybank/java/src/main/java/org/apache/pig/piggybank/evaluation/string/HashFNV.java

Modified: pig/trunk/CHANGES.txt
URL: http://svn.apache.org/viewvc/pig/trunk/CHANGES.txt?rev=1301346&r1=1301345&r2=1301346&view=diff
==============================================================================
--- pig/trunk/CHANGES.txt (original)
+++ pig/trunk/CHANGES.txt Fri Mar 16 06:16:58 2012
@@ -102,6 +102,8 @@ OPTIMIZATIONS
 
 BUG FIXES
 
+PIG-2581: HashFNV inconsistent/non-deterministic due to default platform encoding (prkommireddi via daijy)
+
 PIG-2514: REGEX_EXTRACT not returning correct group with non greedy regex (romainr via daijy)
 
 PIG-2532: Registered classes fail deserialization in frontend (traviscrawford via julien)

Modified: pig/trunk/contrib/piggybank/java/src/main/java/org/apache/pig/piggybank/evaluation/string/HashFNV.java
URL: http://svn.apache.org/viewvc/pig/trunk/contrib/piggybank/java/src/main/java/org/apache/pig/piggybank/evaluation/string/HashFNV.java?rev=1301346&r1=1301345&r2=1301346&view=diff
==============================================================================
--- pig/trunk/contrib/piggybank/java/src/main/java/org/apache/pig/piggybank/evaluation/string/HashFNV.java (original)
+++ pig/trunk/contrib/piggybank/java/src/main/java/org/apache/pig/piggybank/evaluation/string/HashFNV.java Fri Mar 16 06:16:58 2012
@@ -51,7 +51,12 @@ public class HashFNV extends EvalFunc<Lo
     {
         int hval = init;
 
-        byte[] bytes = s.getBytes();
+        byte[] bytes = null;
+        try {
+            bytes = s.getBytes("UTF-8");
+        } catch (java.io.UnsupportedEncodingException e) {
+            // shall not happen
+        }
         for (int i=0;i<bytes.length;i++)
         {
             /* multiply by the 32 bit FNV magic prime mod 2^32 */