Program: 63261
Project: 63261
Buggy source:
public void init(CubeDesc cubeDesc,Map<String,TableDesc> tables,Map<String,List<TableDesc>> columnTableMap,Map<String,List<String>> tableDatabaseMap){
  if (name != null)   name=name.toUpperCase();
  this.table=null;
  this.database=null;
  this.join=null;
  for (int i=0, n=this.column.length; i < n; i++) {
    String thisColumn=this.column[i].toUpperCase();
    String[] dbTableNames=parseTableDBName(thisColumn,columnTableMap,tableDatabaseMap);
    if (database == null) {
      database=dbTableNames[0];
    }
 else     if (!database.equals(dbTableNames[0])) {
      throw new IllegalStateException("String_Node_Str" + database + "String_Node_Str"+ dbTableNames[0]+ "String_Node_Str");
    }
    if (table == null) {
      table=dbTableNames[1];
    }
 else     if (!table.equalsIgnoreCase(dbTableNames[1])) {
      throw new IllegalStateException("String_Node_Str" + table + "String_Node_Str"+ dbTableNames[1]+ "String_Node_Str");
    }
  }
  tableDesc=tables.get(database + "String_Node_Str" + table);
  if (tableDesc == null)   throw new IllegalStateException("String_Node_Str" + table + "String_Node_Str"+ name);
  for (  LookupDesc lookup : cubeDesc.getModel().getLookups()) {
    if (lookup.getTable().equalsIgnoreCase(table)) {
      this.join=lookup.getJoin();
      break;
    }
  }
  if (isHierarchy && this.column.length > 0) {
    List<HierarchyDesc> hierarchyList=new ArrayList<HierarchyDesc>(3);
    for (int i=0, n=this.column.length; i < n; i++) {
      String aColumn=this.column[i];
      HierarchyDesc aHierarchy=new HierarchyDesc();
      aHierarchy.setLevel(String.valueOf(i + 1));
      aHierarchy.setColumn(aColumn);
      hierarchyList.add(aHierarchy);
    }
    this.hierarchy=hierarchyList.toArray(new HierarchyDesc[hierarchyList.size()]);
  }
  if (hierarchy != null && hierarchy.length == 0)   hierarchy=null;
  if (derived != null && derived.length == 0)   derived=null;
  if (hierarchy != null) {
    for (    HierarchyDesc h : hierarchy)     h.setColumn(h.getColumn().toUpperCase());
  }
  if (derived != null) {
    StringUtil.toUpperCaseArray(derived,derived);
  }
}

Fixed version (ground truth):
public void init(CubeDesc cubeDesc,Map<String,TableDesc> tables,Map<String,List<TableDesc>> columnTableMap,Map<String,List<String>> tableDatabaseMap){
  if (name != null)   name=name.toUpperCase();
  this.table=null;
  this.database=null;
  this.join=null;
  for (int i=0, n=this.column.length; i < n; i++) {
    String thisColumn=this.column[i].toUpperCase();
    if (this.table == null || this.database == null) {
      String[] dbTableNames=parseTableDBName(thisColumn,columnTableMap,tableDatabaseMap);
      if (database == null) {
        database=dbTableNames[0];
      }
 else       if (!database.equals(dbTableNames[0])) {
        throw new IllegalStateException("String_Node_Str" + database + "String_Node_Str"+ dbTableNames[0]+ "String_Node_Str");
      }
      if (table == null) {
        table=dbTableNames[1];
      }
 else       if (!table.equalsIgnoreCase(dbTableNames[1])) {
        throw new IllegalStateException("String_Node_Str" + table + "String_Node_Str"+ dbTableNames[1]+ "String_Node_Str");
      }
    }
  }
  tableDesc=tables.get(this.getTable());
  if (tableDesc == null)   throw new IllegalStateException("String_Node_Str" + table + "String_Node_Str"+ name);
  for (  LookupDesc lookup : cubeDesc.getModel().getLookups()) {
    if (lookup.getTable().equalsIgnoreCase(this.getTable())) {
      this.join=lookup.getJoin();
      break;
    }
  }
  if (isHierarchy && this.column.length > 0) {
    List<HierarchyDesc> hierarchyList=new ArrayList<HierarchyDesc>(3);
    for (int i=0, n=this.column.length; i < n; i++) {
      String aColumn=this.column[i];
      HierarchyDesc aHierarchy=new HierarchyDesc();
      aHierarchy.setLevel(String.valueOf(i + 1));
      aHierarchy.setColumn(aColumn);
      hierarchyList.add(aHierarchy);
    }
    this.hierarchy=hierarchyList.toArray(new HierarchyDesc[hierarchyList.size()]);
  }
  if (hierarchy != null && hierarchy.length == 0)   hierarchy=null;
  if (derived != null && derived.length == 0)   derived=null;
  if (hierarchy != null) {
    for (    HierarchyDesc h : hierarchy)     h.setColumn(h.getColumn().toUpperCase());
  }
  if (derived != null) {
    StringUtil.toUpperCaseArray(derived,derived);
  }
}