Explorar o código

AMBARI-17513 : corrected regex check to fix : Upload Table - picks different datatype for same file, for different hive view version. (Nitiraj Rathore via pallavkul)

Pallav Kulshreshtha %!s(int64=9) %!d(string=hai) anos
pai
achega
6dd59a5668

+ 1 - 1
contrib/views/hive-next/src/main/java/org/apache/ambari/view/hive2/resources/uploads/parsers/ParseUtils.java

@@ -38,7 +38,7 @@ public class ParseUtils {
   private static final String HIVE_DATE_FORMAT = "yyyy-MM-dd";
 
   // no strict checking required as it is done by Date parsing
-  private static final String HIVE_DATE_FORMAT_REGEX = "^[0-9]{4}-[0-9]?[1-9]-[0-9]?[0-9]$";
+  private static final String HIVE_DATE_FORMAT_REGEX = "^[0-9]{4}-[0-9]?[0-9]-[0-9]?[0-9]$";
 
 
   public static boolean isInteger(Object object) {

+ 2 - 0
contrib/views/hive-next/src/test/java/org/apache/ambari/view/hive2/resources/upload/ParseUtilsTest.java

@@ -29,6 +29,7 @@ public class ParseUtilsTest {
     Assert.assertTrue(ParseUtils.isDate("0001-1-3"));
     Assert.assertTrue(ParseUtils.isDate("1996-1-03"));
     Assert.assertTrue(ParseUtils.isDate("1996-01-3"));
+    Assert.assertTrue(ParseUtils.isDate("1996-10-3"));
     Assert.assertFalse(ParseUtils.isDate("1970-01-01 01:01:01"));
     Assert.assertFalse(ParseUtils.isDate("1970-01-01 23:59:59.999999"));
     Assert.assertFalse(ParseUtils.isDate("1970/01/01"));
@@ -48,6 +49,7 @@ public class ParseUtilsTest {
     Assert.assertTrue(ParseUtils.isTimeStamp("1999-12-31 23:59:59.999999"));
     Assert.assertTrue(ParseUtils.isTimeStamp("1999-12-31 23:59:59.99999999"));
     Assert.assertTrue(ParseUtils.isTimeStamp("1999-12-31 23:59:59.999999999"));
+    Assert.assertTrue(ParseUtils.isTimeStamp("1999-10-31 23:59:59.999999999"));
     Assert.assertFalse(ParseUtils.isTimeStamp("1999-12-31 23:59:59.9999999999"));
     Assert.assertFalse(ParseUtils.isTimeStamp("1999/12/31 23:59:59.9999999999"));
   }

+ 1 - 1
contrib/views/hive/src/main/java/org/apache/ambari/view/hive/resources/uploads/parsers/ParseUtils.java

@@ -38,7 +38,7 @@ public class ParseUtils {
   private static final String HIVE_DATE_FORMAT = "yyyy-MM-dd";
 
   // no strict checking required as it is done by Date parsing
-  private static final String HIVE_DATE_FORMAT_REGEX = "^[0-9]{4}-[0-9]?[1-9]-[0-9]?[0-9]$";
+  private static final String HIVE_DATE_FORMAT_REGEX = "^[0-9]{4}-[0-9]?[0-9]-[0-9]?[0-9]$";
 
 
   public static boolean isInteger(Object object) {

+ 4 - 2
contrib/views/hive/src/main/resources/ui/hive-web/app/controllers/upload-table.js

@@ -281,8 +281,10 @@ export default Ember.Controller.extend({
           console.log("rejecting waitForJobStatus with : " + status);
           reject(new Error(job.statusMessage));
         } else {
-          console.log("retrying waitForJobStatus : ", jobId);
-          self.waitForJobStatus(jobId, resolve, reject);
+          Ember.run.later(function(){
+            console.log("retrying waitForJobStatus : ", jobId);
+            self.waitForJobStatus(jobId, resolve, reject);
+          },1000);
         }
       }, function (error) {
         console.log("rejecting waitForJobStatus with : " + error);

+ 2 - 0
contrib/views/hive/src/test/java/org/apache/ambari/view/hive/resources/upload/ParseUtilsTest.java

@@ -29,6 +29,7 @@ public class ParseUtilsTest {
     Assert.assertTrue(ParseUtils.isDate("0001-1-3"));
     Assert.assertTrue(ParseUtils.isDate("1996-1-03"));
     Assert.assertTrue(ParseUtils.isDate("1996-01-3"));
+    Assert.assertTrue(ParseUtils.isDate("1996-10-3"));
     Assert.assertFalse(ParseUtils.isDate("1970-01-01 01:01:01"));
     Assert.assertFalse(ParseUtils.isDate("1970-01-01 23:59:59.999999"));
     Assert.assertFalse(ParseUtils.isDate("1970/01/01"));
@@ -48,6 +49,7 @@ public class ParseUtilsTest {
     Assert.assertTrue(ParseUtils.isTimeStamp("1999-12-31 23:59:59.999999"));
     Assert.assertTrue(ParseUtils.isTimeStamp("1999-12-31 23:59:59.99999999"));
     Assert.assertTrue(ParseUtils.isTimeStamp("1999-12-31 23:59:59.999999999"));
+    Assert.assertTrue(ParseUtils.isTimeStamp("1999-10-31 23:59:59.999999999"));
     Assert.assertFalse(ParseUtils.isTimeStamp("1999-12-31 23:59:59.9999999999"));
     Assert.assertFalse(ParseUtils.isTimeStamp("1999/12/31 23:59:59.9999999999"));
   }