Author: rohini
Date: Wed Oct 23 23:28:24 2013
New Revision: 1535213

URL: http://svn.apache.org/r1535213
Log:
OOZIE-1573 coord:tzOffset() gives incorrect offset for daylight saving 
timezones (rohini)

Modified:
    oozie/trunk/core/src/main/java/org/apache/oozie/coord/CoordELFunctions.java
    
oozie/trunk/core/src/test/java/org/apache/oozie/coord/TestCoordELFunctions.java
    oozie/trunk/release-log.txt

Modified: 
oozie/trunk/core/src/main/java/org/apache/oozie/coord/CoordELFunctions.java
URL: 
http://svn.apache.org/viewvc/oozie/trunk/core/src/main/java/org/apache/oozie/coord/CoordELFunctions.java?rev=1535213&r1=1535212&r2=1535213&view=diff
==============================================================================
--- oozie/trunk/core/src/main/java/org/apache/oozie/coord/CoordELFunctions.java 
(original)
+++ oozie/trunk/core/src/main/java/org/apache/oozie/coord/CoordELFunctions.java 
Wed Oct 23 23:28:24 2013
@@ -144,15 +144,10 @@ public class CoordELFunctions {
      * @return difference in minutes (DataSet TZ Offset - Application TZ 
offset)
      */
     public static int ph2_coord_tzOffset() {
-        Date actionCreationTime = getActionCreationtime();
+        long actionCreationTime = getActionCreationtime().getTime();
         TimeZone dsTZ = ParamChecker.notNull(getDatasetTZ(), "DatasetTZ");
         TimeZone jobTZ = ParamChecker.notNull(getJobTZ(), "JobTZ");
-        // Apply the TZ into Calendar object
-        Calendar dsTime = Calendar.getInstance(dsTZ);
-        dsTime.setTime(actionCreationTime);
-        Calendar jobTime = Calendar.getInstance(jobTZ);
-        jobTime.setTime(actionCreationTime);
-        return (dsTime.get(Calendar.ZONE_OFFSET) - 
jobTime.get(Calendar.ZONE_OFFSET)) / (1000 * 60);
+        return (dsTZ.getOffset(actionCreationTime) - 
jobTZ.getOffset(actionCreationTime)) / (1000 * 60);
     }
 
     public static int ph3_coord_tzOffset() {

Modified: 
oozie/trunk/core/src/test/java/org/apache/oozie/coord/TestCoordELFunctions.java
URL: 
http://svn.apache.org/viewvc/oozie/trunk/core/src/test/java/org/apache/oozie/coord/TestCoordELFunctions.java?rev=1535213&r1=1535212&r2=1535213&view=diff
==============================================================================
--- 
oozie/trunk/core/src/test/java/org/apache/oozie/coord/TestCoordELFunctions.java 
(original)
+++ 
oozie/trunk/core/src/test/java/org/apache/oozie/coord/TestCoordELFunctions.java 
Wed Oct 23 23:28:24 2013
@@ -17,8 +17,6 @@
  */
 package org.apache.oozie.coord;
 
-import java.io.File;
-import java.io.IOException;
 import org.apache.hadoop.conf.Configuration;
 import org.apache.oozie.client.OozieClient;
 import org.apache.oozie.service.ELService;
@@ -346,9 +344,17 @@ public class TestCoordELFunctions extend
         // eval.setVariable("resolve_tzOffset", "true");
         assertEquals("0", CoordELFunctions.evalAndWrap(eval, expr));
 
-        appInst.setTimeZone(DateUtils.getTimeZone("America/New_York"));
+        appInst.setTimeZone(DateUtils.getTimeZone("UTC"));
+        ds.setTimeZone(DateUtils.getTimeZone("America/Los_Angeles"));
+        
appInst.setNominalTime(DateUtils.parseDateOozieTZ("2012-06-13T00:00Z")); 
//Summer
+        CoordELFunctions.configureEvaluator(eval, ds, appInst);
+        // PDT is UTC - 7
+        assertEquals("-420", CoordELFunctions.evalAndWrap(eval, expr));
+
+        
appInst.setNominalTime(DateUtils.parseDateOozieTZ("2012-12-13T00:00Z")); 
//Winter
         CoordELFunctions.configureEvaluator(eval, ds, appInst);
-        assertEquals("-180", CoordELFunctions.evalAndWrap(eval, expr));
+        // PST is UTC - 8
+        assertEquals("-480", CoordELFunctions.evalAndWrap(eval, expr));
     }
 
     public void testDateOffset() throws Exception {

Modified: oozie/trunk/release-log.txt
URL: 
http://svn.apache.org/viewvc/oozie/trunk/release-log.txt?rev=1535213&r1=1535212&r2=1535213&view=diff
==============================================================================
--- oozie/trunk/release-log.txt (original)
+++ oozie/trunk/release-log.txt Wed Oct 23 23:28:24 2013
@@ -60,6 +60,7 @@ OOZIE-1440 Build fails in certain enviro
 
 -- Oozie 4.0.1 release (unreleased)
 
+OOZIE-1573 coord:tzOffset() gives incorrect offset for daylight saving 
timezones (rohini)
 OOZIE-1582 Bump up Tomcat version to 6.0.37 (rkanter)
 OOZIE-1563 colt jar includes GPL licence (rkanter)
 OOZIE-1284 oozie.service.SchemaService.wf.ext.schemas in oozie-site is missing 
some newer xsd files (rkanter)


Reply via email to