This is an automated email from the ASF dual-hosted git repository.

mahesh pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/hive.git


The following commit(s) were added to refs/heads/master by this push:
     new ec37799  HIVE-21852 : Testcases are randomly failing with 
ArrayIndexOutOfBoundException. (Naresh P R reviewed by Mahesh Kumar Behera)
ec37799 is described below

commit ec3779978797051fdb345172536aafcd50f1b4ae
Author: Naresh P R <prnaresh.nar...@gmail.com>
AuthorDate: Mon Jun 10 11:42:22 2019 +0530

    HIVE-21852 : Testcases are randomly failing with 
ArrayIndexOutOfBoundException. (Naresh P R reviewed by Mahesh Kumar Behera)
    
    Signed-off-by: mbehera <mah...@apache.org>
---
 .../metastore/MetastoreDefaultTransformer.java     | 51 +++++++++++-----------
 1 file changed, 25 insertions(+), 26 deletions(-)

diff --git 
a/standalone-metastore/metastore-server/src/main/java/org/apache/hadoop/hive/metastore/MetastoreDefaultTransformer.java
 
b/standalone-metastore/metastore-server/src/main/java/org/apache/hadoop/hive/metastore/MetastoreDefaultTransformer.java
index 7ecbef8..4b543c8 100644
--- 
a/standalone-metastore/metastore-server/src/main/java/org/apache/hadoop/hive/metastore/MetastoreDefaultTransformer.java
+++ 
b/standalone-metastore/metastore-server/src/main/java/org/apache/hadoop/hive/metastore/MetastoreDefaultTransformer.java
@@ -20,7 +20,6 @@ package org.apache.hadoop.hive.metastore;
 import static 
org.apache.hadoop.hive.metastore.api.hive_metastoreConstants.ACCESSTYPE_NONE;
 import static 
org.apache.hadoop.hive.metastore.api.hive_metastoreConstants.ACCESSTYPE_READONLY;
 import static 
org.apache.hadoop.hive.metastore.api.hive_metastoreConstants.ACCESSTYPE_READWRITE;
-import static 
org.apache.hadoop.hive.metastore.api.hive_metastoreConstants.ACCESSTYPE_WRITEONLY;
 
 import org.apache.hadoop.hive.metastore.api.MetaException;
 import org.apache.hadoop.hive.metastore.api.Partition;
@@ -62,25 +61,25 @@ public class MetastoreDefaultTransformer implements 
IMetaStoreMetadataTransforme
       HIVECACHEINVALIDATE,
       CONNECTORWRITE));
 
-  private static List<String> ACIDWRITELIST = new 
ArrayList<>(Arrays.asList(HIVEFULLACIDWRITE));
-  private static List<String> INSERTONLYWRITELIST = new 
ArrayList<>(Arrays.asList(HIVEMANAGEDINSERTWRITE));
+  private List<String> acidWriteList = new 
ArrayList<>(Arrays.asList(HIVEFULLACIDWRITE));
+  private List<String> insertOnlyWriteList = new 
ArrayList<>(Arrays.asList(HIVEMANAGEDINSERTWRITE));
   private static List<String> MQTLIST = new 
ArrayList<>(Arrays.asList(HIVEFULLACIDREAD, HIVEONLYMQTWRITE,
       HIVEMANAGESTATS, HIVEMQT, CONNECTORREAD));
 
-  private static List<String> ACIDLIST = new ArrayList<>();
-  private static List<String> INSERTONLYLIST = new ArrayList<>();
+  private List<String> acidList = new ArrayList<>();
+  private List<String> insertOnlyList = new ArrayList<>();
   public MetastoreDefaultTransformer(IHMSHandler handler) throws 
HiveMetaException {
     this.hmsHandler = handler;
 
-    ACIDWRITELIST.addAll(ACIDCOMMONWRITELIST);
-    ACIDLIST.addAll(ACIDWRITELIST);
-    ACIDLIST.add(HIVEFULLACIDREAD);
-    ACIDLIST.add(CONNECTORREAD);
+    acidWriteList.addAll(ACIDCOMMONWRITELIST);
+    acidList.addAll(acidWriteList);
+    acidList.add(HIVEFULLACIDREAD);
+    acidList.add(CONNECTORREAD);
 
-    INSERTONLYWRITELIST.addAll(ACIDCOMMONWRITELIST);
-    INSERTONLYLIST.addAll(INSERTONLYWRITELIST);
-    INSERTONLYLIST.add(HIVEMANAGEDINSERTREAD);
-    INSERTONLYLIST.add(CONNECTORREAD);
+    insertOnlyWriteList.addAll(ACIDCOMMONWRITELIST);
+    insertOnlyList.addAll(insertOnlyWriteList);
+    insertOnlyList.add(HIVEMANAGEDINSERTREAD);
+    insertOnlyList.add(CONNECTORREAD);
   }
 
   @Override
@@ -129,7 +128,7 @@ public class MetastoreDefaultTransformer implements 
IMetaStoreMetadataTransforme
             String txnal = params.get("transactional");
             if (txnal == null || txnal.equalsIgnoreCase("FALSE")) { // 
non-ACID MANAGED table
               table.setAccessType(ACCESSTYPE_READONLY);
-              generated.addAll(ACIDWRITELIST);
+              generated.addAll(acidWriteList);
             }
 
             if (txnal != null && txnal.equalsIgnoreCase("TRUE")) { // ACID 
table
@@ -137,7 +136,7 @@ public class MetastoreDefaultTransformer implements 
IMetaStoreMetadataTransforme
                   processorCapabilities.contains(HIVEFULLACIDREAD) ||
                   processorCapabilities.contains(HIVEMANAGEDINSERTREAD))) {
                 table.setAccessType(ACCESSTYPE_NONE); // clients have no 
access to ACID tables without capabilities
-                generated.addAll(ACIDLIST);
+                generated.addAll(acidList);
               }
 
               String txntype = params.get("transactional_properties");
@@ -145,30 +144,30 @@ public class MetastoreDefaultTransformer implements 
IMetaStoreMetadataTransforme
                 // MGD table is insert only, not full ACID
                 if (processorCapabilities.contains(HIVEMANAGEDINSERTWRITE) || 
processorCapabilities.contains(CONNECTORWRITE)) {
                   table.setAccessType(ACCESSTYPE_READWRITE); // clients have 
RW access to INSERT-ONLY ACID tables
-                  processorCapabilities.retainAll(INSERTONLYWRITELIST);
+                  processorCapabilities.retainAll(insertOnlyWriteList);
                   generated.addAll(processorCapabilities);
                 } else if 
(processorCapabilities.contains(HIVEMANAGEDINSERTREAD) || 
processorCapabilities.contains(CONNECTORREAD)) {
                   table.setAccessType(ACCESSTYPE_READONLY); // clients have RO 
access to INSERT-ONLY ACID tables
-                  generated.addAll(INSERTONLYWRITELIST);
-                  processorCapabilities.retainAll(getReads(INSERTONLYLIST));
+                  generated.addAll(insertOnlyWriteList);
+                  processorCapabilities.retainAll(getReads(insertOnlyList));
                   generated.addAll(processorCapabilities);
                 } else {
                   table.setAccessType(ACCESSTYPE_NONE); // clients have NO 
access to INSERT-ONLY ACID tables
-                  generated.addAll(INSERTONLYLIST);
+                  generated.addAll(insertOnlyList);
                 }
               } else { // FULL ACID MANAGED TABLE
                 if (processorCapabilities.contains(HIVEFULLACIDWRITE) || 
processorCapabilities.contains(CONNECTORWRITE)) {
                   table.setAccessType(ACCESSTYPE_READWRITE); // clients have 
RW access to IUD ACID tables
-                  processorCapabilities.retainAll(ACIDWRITELIST);
+                  processorCapabilities.retainAll(acidWriteList);
                   generated.addAll(processorCapabilities);
                 } else if (processorCapabilities.contains(HIVEFULLACIDREAD) || 
processorCapabilities.contains(CONNECTORREAD)) {
                   table.setAccessType(ACCESSTYPE_READONLY); // clients have RO 
access to IUD ACID tables
-                  generated.addAll(ACIDWRITELIST);
-                  processorCapabilities.retainAll(getReads(ACIDLIST));
+                  generated.addAll(acidWriteList);
+                  processorCapabilities.retainAll(getReads(acidList));
                   generated.addAll(processorCapabilities);
                 } else {
                   table.setAccessType(ACCESSTYPE_NONE); // clients have NO 
access to IUD ACID tables
-                  generated.addAll(ACIDLIST);
+                  generated.addAll(acidList);
                 }
               }
             }
@@ -473,7 +472,7 @@ public class MetastoreDefaultTransformer implements 
IMetaStoreMetadataTransforme
   }
 
   // returns the elements contained in list1 but missing in list2
-  private static List<String> diff(final List<String> list1, final 
List<String> list2) {
+  private List<String> diff(final List<String> list1, final List<String> 
list2) {
     List<String> diffList = new ArrayList<>();
 
     if (list2 == null || list2.size() == 0)
@@ -503,7 +502,7 @@ public class MetastoreDefaultTransformer implements 
IMetaStoreMetadataTransforme
     }
   }
 
-  private static List<String> getWrites(List<String> capabilities) {
+  private List<String> getWrites(List<String> capabilities) {
     List<String> writes = new ArrayList<>();
     for (String capability : capabilities) {
       if (capability.toUpperCase().endsWith("WRITE") ||
@@ -515,7 +514,7 @@ public class MetastoreDefaultTransformer implements 
IMetaStoreMetadataTransforme
     return writes;
   }
 
-  private static List<String> getReads(List<String> capabilities) {
+  private List<String> getReads(List<String> capabilities) {
     List<String> reads = new ArrayList<>();
     for (String capability : capabilities) {
       if (capability.toUpperCase().endsWith("READ") ||

Reply via email to