You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@pig.apache.org by ga...@apache.org on 2011/02/03 23:43:17 UTC

svn commit: r1067015 - in /pig/trunk/contrib: CHANGES.txt piggybank/java/src/main/java/org/apache/pig/piggybank/storage/XMLLoader.java piggybank/java/src/test/java/org/apache/pig/piggybank/test/storage/TestXMLLoader.java

Author: gates
Date: Thu Feb  3 22:43:16 2011
New Revision: 1067015

URL: http://svn.apache.org/viewvc?rev=1067015&view=rev
Log:
PIG-1839 XMLLoader will always add an extra empty tuple even if no tags are matched

Modified:
    pig/trunk/contrib/CHANGES.txt
    pig/trunk/contrib/piggybank/java/src/main/java/org/apache/pig/piggybank/storage/XMLLoader.java
    pig/trunk/contrib/piggybank/java/src/test/java/org/apache/pig/piggybank/test/storage/TestXMLLoader.java

Modified: pig/trunk/contrib/CHANGES.txt
URL: http://svn.apache.org/viewvc/pig/trunk/contrib/CHANGES.txt?rev=1067015&r1=1067014&r2=1067015&view=diff
==============================================================================
--- pig/trunk/contrib/CHANGES.txt (original)
+++ pig/trunk/contrib/CHANGES.txt Thu Feb  3 22:43:16 2011
@@ -46,6 +46,9 @@ OPTIMIZATIONS
 
 BUG FIXES
 
+PIG-1839 XMLLoader will always add an extra empty tuple even if no tags are
+matched (vikekp via gates)
+
 PIG-1449 RegExLoader hangs on lines that don't match the regular expression
 (Christian Hargraves via hashutosh)
 

Modified: pig/trunk/contrib/piggybank/java/src/main/java/org/apache/pig/piggybank/storage/XMLLoader.java
URL: http://svn.apache.org/viewvc/pig/trunk/contrib/piggybank/java/src/main/java/org/apache/pig/piggybank/storage/XMLLoader.java?rev=1067015&r1=1067014&r2=1067015&view=diff
==============================================================================
--- pig/trunk/contrib/piggybank/java/src/main/java/org/apache/pig/piggybank/storage/XMLLoader.java (original)
+++ pig/trunk/contrib/piggybank/java/src/main/java/org/apache/pig/piggybank/storage/XMLLoader.java Thu Feb  3 22:43:16 2011
@@ -470,7 +470,10 @@ public class XMLLoader extends LoadFunc 
         
         try {
             byte[] tagContent = (byte[]) reader.getCurrentValue();
-            t = createTuple(tagContent);
+            if(tagContent.length > 0)
+            {
+               t = createTuple(tagContent);
+            }
         } catch (Exception e) {
             throw new IOException(e);
         }

Modified: pig/trunk/contrib/piggybank/java/src/test/java/org/apache/pig/piggybank/test/storage/TestXMLLoader.java
URL: http://svn.apache.org/viewvc/pig/trunk/contrib/piggybank/java/src/test/java/org/apache/pig/piggybank/test/storage/TestXMLLoader.java?rev=1067015&r1=1067014&r2=1067015&view=diff
==============================================================================
--- pig/trunk/contrib/piggybank/java/src/test/java/org/apache/pig/piggybank/test/storage/TestXMLLoader.java (original)
+++ pig/trunk/contrib/piggybank/java/src/test/java/org/apache/pig/piggybank/test/storage/TestXMLLoader.java Thu Feb  3 22:43:16 2011
@@ -45,6 +45,29 @@ public class TestXMLLoader extends TestC
     data.add(new String[] { "</configuration>"});
   }
 
+  public void testShouldReturn0TupleCountIfSearchTagIsNotFound () throws Exception
+  {
+    String filename = TestHelper.createTempFile(data, "");
+    PigServer pig = new PigServer(LOCAL);
+    filename = filename.replace("\\", "\\\\");
+    patternString = patternString.replace("\\", "\\\\");
+    String query = "A = LOAD 'file:" + filename + "' USING org.apache.pig.piggybank.storage.XMLLoader('invalid') as (doc:chararray);";
+    pig.registerQuery(query);
+    Iterator<?> it = pig.openIterator("A");
+    int tupleCount = 0;
+    while (it.hasNext()) {
+      Tuple tuple = (Tuple) it.next();
+      if (tuple == null)
+        break;
+      else {
+        if (tuple.size() > 0) {
+            tupleCount++;
+        }
+      }
+    }
+    assertEquals(0, tupleCount); 
+  }
+  
   public void testLoadXMLLoader() throws Exception {
     //ArrayList<DataByteArray[]> expected = TestHelper.getExpected(data, pattern);
     String filename = TestHelper.createTempFile(data, "");
@@ -63,11 +86,10 @@ public class TestXMLLoader extends TestC
         //TestHelper.examineTuple(expected, tuple, tupleCount);
         if (tuple.size() > 0) {
             tupleCount++;
-            //System.out.println("tuple=" + tuple+":"+tuple.size());
         }
       }
     }
-    assertEquals(3, tupleCount); // pig adds extra 
+    assertEquals(2, tupleCount);  
   }
   
   public void testXMLLoaderShouldLoadBasicBzip2Files() throws Exception {
@@ -101,7 +123,7 @@ public class TestXMLLoader extends TestC
 	     }
         }
 	    
-        assertEquals(3, tupleCount); // pig adds extra
+        assertEquals(2, tupleCount);
     
     }finally
     {
@@ -137,13 +159,12 @@ public class TestXMLLoader extends TestC
     if (tuple == null)
         break;
     else {
-        //TestHelper.examineTuple(expected, tuple, tupleCount);
         if (tuple.size() > 0) {
         tupleCount++;
              }
         }
     }	
-    assertEquals(3, tupleCount); // pig adds extra
+    assertEquals(2, tupleCount); 
    
     }finally
     {