You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@pig.apache.org by dv...@apache.org on 2012/02/12 23:52:56 UTC

svn commit: r1243355 - in /pig/trunk: ./ contrib/piggybank/java/src/main/java/org/apache/pig/piggybank/evaluation/datetime/convert/ contrib/piggybank/java/src/test/java/org/apache/pig/piggybank/test/evaluation/datetime/convert/

Author: dvryaboy
Date: Sun Feb 12 22:52:55 2012
New Revision: 1243355

URL: http://svn.apache.org/viewvc?rev=1243355&view=rev
Log:
PIG-2515: [piggybank] Make CustomFormatToISO return null on Exception in parsing dates

Modified:
    pig/trunk/CHANGES.txt
    pig/trunk/contrib/piggybank/java/src/main/java/org/apache/pig/piggybank/evaluation/datetime/convert/CustomFormatToISO.java
    pig/trunk/contrib/piggybank/java/src/test/java/org/apache/pig/piggybank/test/evaluation/datetime/convert/TestConvertDateTime.java

Modified: pig/trunk/CHANGES.txt
URL: http://svn.apache.org/viewvc/pig/trunk/CHANGES.txt?rev=1243355&r1=1243354&r2=1243355&view=diff
==============================================================================
--- pig/trunk/CHANGES.txt (original)
+++ pig/trunk/CHANGES.txt Sun Feb 12 22:52:55 2012
@@ -24,6 +24,8 @@ INCOMPATIBLE CHANGES
 
 IMPROVEMENTS
 
+PIG-2515: [piggybank] Make CustomFormatToISO return null on Exception in parsing dates (rjurney via dvryaboy)
+
 PIG-2518: Add ability to clean ivy cache in build.xml (daijy)
 
 PIG-2503: Make @MonitoredUDF inherited (dvryaboy)

Modified: pig/trunk/contrib/piggybank/java/src/main/java/org/apache/pig/piggybank/evaluation/datetime/convert/CustomFormatToISO.java
URL: http://svn.apache.org/viewvc/pig/trunk/contrib/piggybank/java/src/main/java/org/apache/pig/piggybank/evaluation/datetime/convert/CustomFormatToISO.java?rev=1243355&r1=1243354&r2=1243355&view=diff
==============================================================================
--- pig/trunk/contrib/piggybank/java/src/main/java/org/apache/pig/piggybank/evaluation/datetime/convert/CustomFormatToISO.java (original)
+++ pig/trunk/contrib/piggybank/java/src/main/java/org/apache/pig/piggybank/evaluation/datetime/convert/CustomFormatToISO.java Sun Feb 12 22:52:55 2012
@@ -34,7 +34,7 @@ import java.util.List;
 
 /**
  * CustomFormatToISO converts arbitrary date formats to ISO format.
- * 
+ *
  * Jodatime: http://joda-time.sourceforge.net/
  * ISO8601 Date Format: http://en.wikipedia.org/wiki/ISO_8601
  * Jodatime custom date formats: http://joda-time.sourceforge.net/api-release/org/joda/time/format/DateTimeFormat.html
@@ -82,15 +82,20 @@ public class CustomFormatToISO extends E
 
         // See http://joda-time.sourceforge.net/api-release/org/joda/time/format/DateTimeFormat.html
         DateTimeFormatter parser = DateTimeFormat.forPattern(format);
-        DateTime result = parser.parseDateTime(date);
+        DateTime result;
+        try {
+            result = parser.parseDateTime(date);
+        } catch(Exception e) {
+            return null;
+        }
 
         return result.toString();
     }
 
-	@Override
-	public Schema outputSchema(Schema input) {
+    @Override
+    public Schema outputSchema(Schema input) {
         return new Schema(new Schema.FieldSchema(getSchemaName(this.getClass().getName().toLowerCase(), input), DataType.CHARARRAY));
-	}
+    }
 
     @Override
     public List<FuncSpec> getArgToFuncMapping() throws FrontendException {

Modified: pig/trunk/contrib/piggybank/java/src/test/java/org/apache/pig/piggybank/test/evaluation/datetime/convert/TestConvertDateTime.java
URL: http://svn.apache.org/viewvc/pig/trunk/contrib/piggybank/java/src/test/java/org/apache/pig/piggybank/test/evaluation/datetime/convert/TestConvertDateTime.java?rev=1243355&r1=1243354&r2=1243355&view=diff
==============================================================================
--- pig/trunk/contrib/piggybank/java/src/test/java/org/apache/pig/piggybank/test/evaluation/datetime/convert/TestConvertDateTime.java (original)
+++ pig/trunk/contrib/piggybank/java/src/test/java/org/apache/pig/piggybank/test/evaluation/datetime/convert/TestConvertDateTime.java Sun Feb 12 22:52:55 2012
@@ -17,14 +17,27 @@
  */
 package org.apache.pig.piggybank.test.evaluation.datetime.convert;
 
+import static org.junit.Assert.*;
 import org.apache.pig.data.Tuple;
 import org.apache.pig.data.TupleFactory;
-import org.apache.pig.piggybank.evaluation.datetime.convert.*;
+import org.apache.pig.piggybank.evaluation.datetime.convert.CustomFormatToISO;
+import org.apache.pig.piggybank.evaluation.datetime.convert.ISOToUnix;
+import org.apache.pig.piggybank.evaluation.datetime.convert.UnixToISO;
 import org.junit.Test;
 
-import junit.framework.TestCase;
+public class TestConvertDateTime {
+
+    @Test
+    public void testBadFormat() throws Exception {
+        Tuple t1 = TupleFactory.getInstance().newTuple(2);
+        t1.set(0, "2011-01-01");
+        t1.set(1, "MMMM, yyyy");
+        CustomFormatToISO convert = new CustomFormatToISO();
+        assertNull("Input that doesn't match format should result in null", convert.exec(t1));
+        t1.set(0, "July, 2012");
+        assertEquals("Matching format should work correctly", "2012-07-01T00:00:00.000Z", convert.exec(t1));
+    }
 
-public class TestConvertDateTime extends TestCase {
     @Test
     public void testUnixToISO() throws Exception {