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 {