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 2011/04/29 23:02:06 UTC

svn commit: r1097954 - in /pig/branches/branch-0.9: CHANGES.txt src/org/apache/pig/builtin/Utf8StorageConverter.java test/org/apache/pig/test/TestConversions.java

Author: daijy
Date: Fri Apr 29 21:02:05 2011
New Revision: 1097954

URL: http://svn.apache.org/viewvc?rev=1097954&view=rev
Log:
PIG-2017: consumeMap() fails with EmptyStackException (thedatachef via daijy)

Modified:
    pig/branches/branch-0.9/CHANGES.txt
    pig/branches/branch-0.9/src/org/apache/pig/builtin/Utf8StorageConverter.java
    pig/branches/branch-0.9/test/org/apache/pig/test/TestConversions.java

Modified: pig/branches/branch-0.9/CHANGES.txt
URL: http://svn.apache.org/viewvc/pig/branches/branch-0.9/CHANGES.txt?rev=1097954&r1=1097953&r2=1097954&view=diff
==============================================================================
--- pig/branches/branch-0.9/CHANGES.txt (original)
+++ pig/branches/branch-0.9/CHANGES.txt Fri Apr 29 21:02:05 2011
@@ -174,6 +174,8 @@ PIG-1696: Performance: Use System.arrayc
 
 BUG FIXES
 
+PIG-2017: consumeMap() fails with EmptyStackException (thedatachef via daijy)
+
 PIG-1989: complex type casting should return null on casting failure (daijy)
 
 PIG-1826: Unexpected data type -1 found in stream error (daijy)

Modified: pig/branches/branch-0.9/src/org/apache/pig/builtin/Utf8StorageConverter.java
URL: http://svn.apache.org/viewvc/pig/branches/branch-0.9/src/org/apache/pig/builtin/Utf8StorageConverter.java?rev=1097954&r1=1097953&r2=1097954&view=diff
==============================================================================
--- pig/branches/branch-0.9/src/org/apache/pig/builtin/Utf8StorageConverter.java (original)
+++ pig/branches/branch-0.9/src/org/apache/pig/builtin/Utf8StorageConverter.java Fri Apr 29 21:02:05 2011
@@ -25,6 +25,7 @@ import java.util.Arrays;
 import java.util.HashMap;
 import java.util.Map;
 import java.util.Stack;
+import java.util.EmptyStackException;
 
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
@@ -228,10 +229,12 @@ public class Utf8StorageConverter implem
                     break;
                 else if (buf==']' ||buf=='}'||buf==')')
                 {
-                    if (level.peek()==findStartChar((char)buf))
-                        level.pop();
-                    else
+                    try {
+                        if (level.peek()==findStartChar((char)buf))
+                            level.pop();
+                    } catch (EmptyStackException e) {
                         throw new IOException("Malformed map");
+                    }
                 } else if (buf==','&&level.isEmpty()) { // Current map item complete
                     break;
                 }

Modified: pig/branches/branch-0.9/test/org/apache/pig/test/TestConversions.java
URL: http://svn.apache.org/viewvc/pig/branches/branch-0.9/test/org/apache/pig/test/TestConversions.java?rev=1097954&r1=1097953&r2=1097954&view=diff
==============================================================================
--- pig/branches/branch-0.9/test/org/apache/pig/test/TestConversions.java (original)
+++ pig/branches/branch-0.9/test/org/apache/pig/test/TestConversions.java Fri Apr 29 21:02:05 2011
@@ -340,6 +340,14 @@ public class TestConversions extends Tes
         s = "[#]";
         m = ps.getLoadCaster().bytesToMap(s.getBytes());
         assertTrue(m==null);
+
+        s = "[a#}";
+        m = ps.getLoadCaster().bytesToMap(s.getBytes());
+        assertTrue(m==null);
+
+        s = "[a#)";
+        m = ps.getLoadCaster().bytesToMap(s.getBytes());
+        assertTrue(m==null);
         
         s = "(a,b)";
         schema = Utils.getSchemaFromString("t:tuple()");