Program: 126306
Project: 126306
Buggy source:
@Override public void setKeyList(IBigDataNode bigDataNode,String direction){
  String[] partitionKey=bigDataNode.getComponent().getPartitioning().split("String_Node_Str");
  boolean partitionKeyIsValid=partitionKey.length > 1 ? true : false;
  this.keyList=new HashMap<String,List<IMetadataColumn>>();
  List<IMetadataColumn> columnList=new ArrayList<IMetadataColumn>();
  if (partitionKeyIsValid) {
    IElementParameter parTableNode=bigDataNode.getElementParameter(partitionKey[0]);
    if (parTableNode != null) {
      if (parTableNode.getFieldType().equals(EParameterFieldType.TABLE)) {
        String clumnNodeListName=partitionKey[1];
        IElementParameter nodeElemForList=null;
        for (        Object nodeItemList : parTableNode.getListItemsValue()) {
          if (((IElementParameter)nodeItemList).getFieldType().equals(EParameterFieldType.PREV_COLUMN_LIST) || ((IElementParameter)nodeItemList).getFieldType().equals(EParameterFieldType.COLUMN_LIST) || ((IElementParameter)nodeItemList).getFieldType().equals(EParameterFieldType.CHECK)) {
            nodeElemForList=(IElementParameter)nodeItemList;
            break;
          }
        }
        if (nodeElemForList != null) {
          for (          Map nodeColumnListMap : (List<Map>)parTableNode.getValue()) {
            Object value=nodeColumnListMap.get(clumnNodeListName);
            String colName="String_Node_Str";
            if (value != null) {
              if (value instanceof String) {
                if (parTableNode.isBasedOnSchema()) {
                  if ("String_Node_Str".equals(value)) {
                    colName=(String)nodeColumnListMap.get("String_Node_Str");
                  }
 else {
                    break;
                  }
                }
 else {
                  colName=(String)value;
                }
              }
 else               if (value instanceof Integer) {
                Integer index=(Integer)value;
                if (nodeElemForList.getListItemsDisplayName().length > index) {
                  colName=nodeElemForList.getListItemsDisplayName()[index];
                }
              }
              columnList.add(bigDataNode.getMetadataList().get(0).getColumn(colName));
            }
 else {
              throw new RuntimeException("String_Node_Str" + partitionKey[0] + "String_Node_Str"+ partitionKey[1]+ "String_Node_Str"+ this.getComponentName());
            }
          }
          this.keyList.put(direction,columnList);
        }
      }
 else {
        throw new UnsupportedOperationException("String_Node_Str" + partitionKey[0] + "String_Node_Str"+ EParameterFieldType.TABLE+ "String_Node_Str");
      }
    }
 else {
      throw new RuntimeException("String_Node_Str" + partitionKey[0] + "String_Node_Str"+ this.getComponentName());
    }
  }
}

Fixed version (ground truth):
@Override public void setKeyList(IBigDataNode bigDataNode,String direction){
  String[] partitionKey=bigDataNode.getComponent().getPartitioning().split("String_Node_Str");
  boolean partitionKeyIsValid=partitionKey.length > 1 ? true : false;
  this.keyList=new HashMap<String,List<IMetadataColumn>>();
  List<IMetadataColumn> columnList=new ArrayList<IMetadataColumn>();
  if (partitionKeyIsValid) {
    IElementParameter parTableNode=bigDataNode.getElementParameter(partitionKey[0]);
    if (parTableNode != null) {
      if (parTableNode.getFieldType().equals(EParameterFieldType.TABLE)) {
        String clumnNodeListName=partitionKey[1];
        IElementParameter nodeElemForList=null;
        for (        Object nodeItemList : parTableNode.getListItemsValue()) {
          if (((IElementParameter)nodeItemList).getFieldType().equals(EParameterFieldType.PREV_COLUMN_LIST) || ((IElementParameter)nodeItemList).getFieldType().equals(EParameterFieldType.COLUMN_LIST) || ((IElementParameter)nodeItemList).getFieldType().equals(EParameterFieldType.CHECK)) {
            nodeElemForList=(IElementParameter)nodeItemList;
            break;
          }
        }
        if (nodeElemForList != null) {
          for (          Map nodeColumnListMap : (List<Map>)parTableNode.getValue()) {
            Object value=nodeColumnListMap.get(clumnNodeListName);
            String colName="String_Node_Str";
            if (value != null) {
              if (value instanceof String) {
                if (parTableNode.isBasedOnSchema()) {
                  if ("String_Node_Str".equals(value)) {
                    colName=(String)nodeColumnListMap.get("String_Node_Str");
                  }
 else {
                    continue;
                  }
                }
 else {
                  colName=(String)value;
                }
              }
 else               if (value instanceof Integer) {
                Integer index=(Integer)value;
                if (nodeElemForList.getListItemsDisplayName().length > index) {
                  colName=nodeElemForList.getListItemsDisplayName()[index];
                }
              }
              columnList.add(bigDataNode.getMetadataList().get(0).getColumn(colName));
            }
 else {
              throw new RuntimeException("String_Node_Str" + partitionKey[0] + "String_Node_Str"+ partitionKey[1]+ "String_Node_Str"+ this.getComponentName());
            }
          }
          this.keyList.put(direction,columnList);
        }
      }
 else {
        throw new UnsupportedOperationException("String_Node_Str" + partitionKey[0] + "String_Node_Str"+ EParameterFieldType.TABLE+ "String_Node_Str");
      }
    }
 else {
      throw new RuntimeException("String_Node_Str" + partitionKey[0] + "String_Node_Str"+ this.getComponentName());
    }
  }
}