BELUGA BEHR created HBASE-20209:
-----------------------------------

             Summary: Do Not Use Both Map containsKey and get Methods
                 Key: HBASE-20209
                 URL: https://issues.apache.org/jira/browse/HBASE-20209
             Project: HBase
          Issue Type: Improvement
          Components: hbase
    Affects Versions: 2.0.0
            Reporter: BELUGA BEHR
         Attachments: HBASE-20209.1.patch

{code:title=ReplicationSink.java}
        String tableName = table.getNameWithNamespaceInclAsString();
        if (bulkLoadHFileMap.containsKey(tableName)) {
          List<Pair<byte[], List<String>>> familyHFilePathsList = 
bulkLoadHFileMap.get(tableName);
          boolean foundFamily = false;
          for (int i = 0; i < familyHFilePathsList.size(); i++) {
            Pair<byte[], List<String>> familyHFilePathsPair = 
familyHFilePathsList.get(i);
            if (Bytes.equals(familyHFilePathsPair.getFirst(), family)) {
              // Found family already present, just add the path to the 
existing list
              familyHFilePathsPair.getSecond().add(pathToHfileFromNS);
              foundFamily = true;
              break;
            }
          }
{code}

I propose that this code does not use the Map methods _containsKey_ *and* 
_get_.  Simply use the _get_ method once and check a _null_ return value to 
check for existence.  Saves a trip to the Map data structure for each call.  
Also, use enhanced for loop.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to