Program: 25249
Project: 25249
Buggy source:
private void createBaseAndDerivedCubes(CubeMetastoreClient client) throws HiveException, ParseException, LensException {
  Set<CubeMeasure> cubeMeasures2=new HashSet<>(cubeMeasures);
  Set<CubeDimAttribute> cubeDimensions2=new HashSet<>(cubeDimensions);
  cubeMeasures2.add(new ColumnMeasure(new FieldSchema("String_Node_Str","String_Node_Str","String_Node_Str")));
  cubeMeasures2.add(new ColumnMeasure(new FieldSchema("String_Node_Str","String_Node_Str","String_Node_Str"),"String_Node_Str",null,"String_Node_Str","String_Node_Str"));
  cubeMeasures2.add(new ColumnMeasure(new FieldSchema("String_Node_Str","String_Node_Str","String_Node_Str"),"String_Node_Str",null,"String_Node_Str",null));
  cubeMeasures2.add(new ColumnMeasure(new FieldSchema("String_Node_Str","String_Node_Str","String_Node_Str"),"String_Node_Str",null,"String_Node_Str",null));
  cubeDimensions2.add(new BaseDimAttribute(new FieldSchema("String_Node_Str","String_Node_Str","String_Node_Str")));
  cubeDimensions2.add(new ReferencedDimAttribute(new FieldSchema("String_Node_Str","String_Node_Str","String_Node_Str"),"String_Node_Str","String_Node_Str","String_Node_Str",null,null,null));
  cubeDimensions2.add(new ReferencedDimAttribute(new FieldSchema("String_Node_Str","String_Node_Str","String_Node_Str"),"String_Node_Str","String_Node_Str","String_Node_Str",null,null,null));
  cubeDimensions2.add(new BaseDimAttribute(new FieldSchema("String_Node_Str","String_Node_Str","String_Node_Str")));
  cubeDimensions2.add(new BaseDimAttribute(new FieldSchema("String_Node_Str","String_Node_Str","String_Node_Str")));
  cubeDimensions2.add(new BaseDimAttribute(new FieldSchema("String_Node_Str","String_Node_Str","String_Node_Str")));
  cubeDimensions2.add(new ReferencedDimAttribute(new FieldSchema("String_Node_Str","String_Node_Str","String_Node_Str"),"String_Node_Str","String_Node_Str","String_Node_Str",null,null,null));
  cubeDimensions2.add(new ReferencedDimAttribute(new FieldSchema("String_Node_Str","String_Node_Str","String_Node_Str"),"String_Node_Str","String_Node_Str","String_Node_Str",null,null,null));
  cubeDimensions2.add(new ReferencedDimAttribute(new FieldSchema("String_Node_Str","String_Node_Str","String_Node_Str"),"String_Node_Str","String_Node_Str","String_Node_Str",null,null,null));
  cubeDimensions2.add(new ReferencedDimAttribute(new FieldSchema("String_Node_Str","String_Node_Str","String_Node_Str"),"String_Node_Str","String_Node_Str","String_Node_Str",null,null,null));
  cubeDimensions2.add(new ReferencedDimAttribute(new FieldSchema("String_Node_Str","String_Node_Str","String_Node_Str"),"String_Node_Str","String_Node_Str","String_Node_Str",null,null,null));
  cubeDimensions2.add(new ReferencedDimAttribute(new FieldSchema("String_Node_Str","String_Node_Str","String_Node_Str"),"String_Node_Str","String_Node_Str","String_Node_Str",null,null,null));
  Map<String,String> cubeProperties=new HashMap<>();
  cubeProperties.put(MetastoreUtil.getCubeTimedDimensionListKey(BASE_CUBE_NAME),"String_Node_Str");
  cubeProperties.put(MetastoreConstants.TIMEDIM_TO_PART_MAPPING_PFX + "String_Node_Str","String_Node_Str");
  cubeProperties.put(MetastoreConstants.TIMEDIM_TO_PART_MAPPING_PFX + "String_Node_Str","String_Node_Str");
  cubeProperties.put(MetastoreConstants.TIMEDIM_TO_PART_MAPPING_PFX + "String_Node_Str","String_Node_Str");
  cubeProperties.put(MetastoreConstants.TIMEDIM_TO_PART_MAPPING_PFX + "String_Node_Str","String_Node_Str");
  cubeProperties.put(MetastoreConstants.TIMEDIM_TO_PART_MAPPING_PFX + "String_Node_Str","String_Node_Str");
  cubeProperties.put(MetastoreConstants.TIMEDIM_TO_PART_MAPPING_PFX + "String_Node_Str","String_Node_Str");
  cubeProperties.put(MetastoreConstants.TIMEDIM_RELATION + "String_Node_Str","String_Node_Str");
  cubeProperties.put(MetastoreConstants.TIMEDIM_RELATION + "String_Node_Str","String_Node_Str");
  cubeProperties.put(MetastoreConstants.CUBE_ALL_FIELDS_QUERIABLE,"String_Node_Str");
  Map<String,JoinChain> joinChainMap=new HashMap<>();
  addCubeChains(joinChainMap,"String_Node_Str");
  joinChainMap.get("String_Node_Str").addPath(new ArrayList<TableReference>(){
{
      add(new TableReference("String_Node_Str","String_Node_Str"));
      add(new TableReference("String_Node_Str","String_Node_Str"));
    }
  }
);
  joinChainMap.get("String_Node_Str").addPath(new ArrayList<TableReference>(){
{
      add(new TableReference("String_Node_Str","String_Node_Str"));
      add(new TableReference("String_Node_Str","String_Node_Str"));
      add(new TableReference("String_Node_Str","String_Node_Str"));
      add(new TableReference("String_Node_Str","String_Node_Str"));
    }
  }
);
  joinChainMap.get("String_Node_Str").addPath(new ArrayList<TableReference>(){
{
      add(new TableReference("String_Node_Str","String_Node_Str"));
      add(new TableReference("String_Node_Str","String_Node_Str"));
      add(new TableReference("String_Node_Str","String_Node_Str"));
      add(new TableReference("String_Node_Str","String_Node_Str"));
      add(new TableReference("String_Node_Str","String_Node_Str"));
      add(new TableReference("String_Node_Str","String_Node_Str"));
    }
  }
);
  Set<JoinChain> joinChains=Sets.newHashSet(joinChainMap.values());
  joinChains.add(new JoinChain("String_Node_Str","String_Node_Str","String_Node_Str"){
{
      addPath(new ArrayList<TableReference>(){
{
          add(new TableReference("String_Node_Str","String_Node_Str"));
          add(new TableReference("String_Node_Str","String_Node_Str"));
          add(new TableReference("String_Node_Str","String_Node_Str"));
          add(new TableReference("String_Node_Str","String_Node_Str"));
        }
      }
);
      addPath(new ArrayList<TableReference>(){
{
          add(new TableReference("String_Node_Str","String_Node_Str"));
          add(new TableReference("String_Node_Str","String_Node_Str"));
          add(new TableReference("String_Node_Str","String_Node_Str"));
          add(new TableReference("String_Node_Str","String_Node_Str"));
        }
      }
);
    }
  }
);
  joinChains.add(new JoinChain("String_Node_Str","String_Node_Str","String_Node_Str"){
{
      addPath(new ArrayList<TableReference>(){
{
          add(new TableReference("String_Node_Str","String_Node_Str"));
          add(new TableReference("String_Node_Str","String_Node_Str"));
          add(new TableReference("String_Node_Str","String_Node_Str"));
          add(new TableReference("String_Node_Str","String_Node_Str"));
        }
      }
);
    }
  }
);
  joinChains.add(new JoinChain("String_Node_Str","String_Node_Str","String_Node_Str"){
{
      addPath(new ArrayList<TableReference>(){
{
          add(new TableReference("String_Node_Str","String_Node_Str"));
          add(new TableReference("String_Node_Str","String_Node_Str"));
          add(new TableReference("String_Node_Str","String_Node_Str"));
          add(new TableReference("String_Node_Str","String_Node_Str"));
        }
      }
);
    }
  }
);
  joinChains.add(new JoinChain("String_Node_Str","String_Node_Str","String_Node_Str"){
{
      addPath(new ArrayList<TableReference>(){
{
          add(new TableReference("String_Node_Str","String_Node_Str"));
          add(new TableReference("String_Node_Str","String_Node_Str"));
          add(new TableReference("String_Node_Str","String_Node_Str"));
          add(new TableReference("String_Node_Str","String_Node_Str"));
          add(new TableReference("String_Node_Str","String_Node_Str"));
          add(new TableReference("String_Node_Str","String_Node_Str"));
        }
      }
);
    }
  }
);
  joinChains.add(new JoinChain("String_Node_Str","String_Node_Str","String_Node_Str"){
{
      addPath(new ArrayList<TableReference>(){
{
          add(new TableReference("String_Node_Str","String_Node_Str"));
          add(new TableReference("String_Node_Str","String_Node_Str"));
        }
      }
);
    }
  }
);
  joinChains.add(new JoinChain("String_Node_Str","String_Node_Str","String_Node_Str"){
{
      addPath(new ArrayList<TableReference>(){
{
          add(new TableReference("String_Node_Str","String_Node_Str"));
          add(new TableReference("String_Node_Str","String_Node_Str"));
          add(new TableReference("String_Node_Str","String_Node_Str"));
          add(new TableReference("String_Node_Str","String_Node_Str",true));
          add(new TableReference("String_Node_Str","String_Node_Str"));
          add(new TableReference("String_Node_Str","String_Node_Str"));
        }
      }
);
    }
  }
);
  joinChains.add(new JoinChain("String_Node_Str","String_Node_Str","String_Node_Str"){
{
      addPath(new ArrayList<TableReference>(){
{
          add(new TableReference("String_Node_Str","String_Node_Str"));
          add(new TableReference("String_Node_Str","String_Node_Str"));
          add(new TableReference("String_Node_Str","String_Node_Str"));
          add(new TableReference("String_Node_Str","String_Node_Str",true));
        }
      }
);
    }
  }
);
  joinChains.add(new JoinChain("String_Node_Str","String_Node_Str","String_Node_Str"){
{
      addPath(new ArrayList<TableReference>(){
{
          add(new TableReference("String_Node_Str","String_Node_Str"));
          add(new TableReference("String_Node_Str","String_Node_Str"));
          add(new TableReference("String_Node_Str","String_Node_Str"));
          add(new TableReference("String_Node_Str","String_Node_Str",true));
          add(new TableReference("String_Node_Str","String_Node_Str"));
          add(new TableReference("String_Node_Str","String_Node_Str"));
        }
      }
);
    }
  }
);
  joinChains.add(new JoinChain("String_Node_Str","String_Node_Str","String_Node_Str"){
{
      addPath(new ArrayList<TableReference>(){
{
          add(new TableReference("String_Node_Str","String_Node_Str"));
          add(new TableReference("String_Node_Str","String_Node_Str"));
          add(new TableReference("String_Node_Str","String_Node_Str"));
          add(new TableReference("String_Node_Str","String_Node_Str",true));
          add(new TableReference("String_Node_Str","String_Node_Str"));
          add(new TableReference("String_Node_Str","String_Node_Str"));
        }
      }
);
    }
  }
);
  cubeDimensions2.add(new ReferencedDimAttribute(new FieldSchema("String_Node_Str","String_Node_Str","String_Node_Str"),"String_Node_Str","String_Node_Str","String_Node_Str",null,null,null));
  Set<ExprColumn> baseExprs=new HashSet<>(exprs);
  baseExprs.add(new ExprColumn(new FieldSchema("String_Node_Str","String_Node_Str","String_Node_Str"),"String_Node_Str","String_Node_Str"));
  baseExprs.add(new ExprColumn(new FieldSchema("String_Node_Str","String_Node_Str","String_Node_Str"),"String_Node_Str","String_Node_Str"));
  baseExprs.add(new ExprColumn(new FieldSchema("String_Node_Str","String_Node_Str","String_Node_Str"),"String_Node_Str","String_Node_Str"));
  baseExprs.add(new ExprColumn(new FieldSchema("String_Node_Str","String_Node_Str","String_Node_Str"),"String_Node_Str","String_Node_Str"));
  baseExprs.add(new ExprColumn(new FieldSchema("String_Node_Str","String_Node_Str","String_Node_Str"),"String_Node_Str","String_Node_Str"));
  client.createCube(BASE_CUBE_NAME,cubeMeasures2,cubeDimensions2,baseExprs,joinChains,cubeProperties);
  Map<String,String> derivedProperties=new HashMap<>();
  derivedProperties.put(MetastoreConstants.CUBE_ALL_FIELDS_QUERIABLE,"String_Node_Str");
  Set<String> measures=new HashSet<>();
  measures.add("String_Node_Str");
  measures.add("String_Node_Str");
  Set<String> dimensions=new HashSet<>();
  dimensions.add("String_Node_Str");
  dimensions.add("String_Node_Str");
  dimensions.add("String_Node_Str");
  client.createDerivedCube(BASE_CUBE_NAME,DERIVED_CUBE_NAME1,measures,dimensions,derivedProperties,5L);
  measures=new HashSet<>();
  measures.add("String_Node_Str");
  measures.add("String_Node_Str");
  measures.add("String_Node_Str");
  measures.add("String_Node_Str");
  dimensions=new HashSet<>();
  dimensions.add("String_Node_Str");
  dimensions.add("String_Node_Str");
  dimensions.add("String_Node_Str");
  dimensions.add("String_Node_Str");
  dimensions.add("String_Node_Str");
  dimensions.add("String_Node_Str");
  dimensions.add("String_Node_Str");
  dimensions.add("String_Node_Str");
  dimensions.add("String_Node_Str");
  dimensions.add("String_Node_Str");
  dimensions.add("String_Node_Str");
  dimensions.add("String_Node_Str");
  dimensions.add("String_Node_Str");
  dimensions.add("String_Node_Str");
  dimensions.add("String_Node_Str");
  dimensions.add("String_Node_Str");
  dimensions.add("String_Node_Str");
  dimensions.add("String_Node_Str");
  dimensions.add("String_Node_Str");
  dimensions.add("String_Node_Str");
  client.createDerivedCube(BASE_CUBE_NAME,DERIVED_CUBE_NAME2,measures,dimensions,derivedProperties,10L);
  measures=new HashSet<>();
  measures.add("String_Node_Str");
  measures.add("String_Node_Str");
  dimensions=new HashSet<>();
  dimensions.add("String_Node_Str");
  dimensions.add("String_Node_Str");
  dimensions.add("String_Node_Str");
  dimensions.add("String_Node_Str");
  dimensions.add("String_Node_Str");
  dimensions.add("String_Node_Str");
  dimensions.add("String_Node_Str");
  dimensions.add("String_Node_Str");
  dimensions.add("String_Node_Str");
  client.createDerivedCube(BASE_CUBE_NAME,DERIVED_CUBE_NAME3,measures,dimensions,derivedProperties,20L);
  createBaseCubeFacts(client);
}

Fixed version (ground truth):
private void createBaseAndDerivedCubes(CubeMetastoreClient client) throws HiveException, ParseException, LensException {
  Set<CubeMeasure> cubeMeasures2=new HashSet<>(cubeMeasures);
  Set<CubeDimAttribute> cubeDimensions2=new HashSet<>(cubeDimensions);
  cubeMeasures2.add(new ColumnMeasure(new FieldSchema("String_Node_Str","String_Node_Str","String_Node_Str")));
  cubeMeasures2.add(new ColumnMeasure(new FieldSchema("String_Node_Str","String_Node_Str","String_Node_Str"),"String_Node_Str",null,"String_Node_Str","String_Node_Str"));
  cubeMeasures2.add(new ColumnMeasure(new FieldSchema("String_Node_Str","String_Node_Str","String_Node_Str"),"String_Node_Str",null,"String_Node_Str",null));
  cubeMeasures2.add(new ColumnMeasure(new FieldSchema("String_Node_Str","String_Node_Str","String_Node_Str"),"String_Node_Str",null,"String_Node_Str",null));
  cubeMeasures2.add(new ColumnMeasure(new FieldSchema("String_Node_Str","String_Node_Str","String_Node_Str"),"String_Node_Str",null,"String_Node_Str",null));
  cubeDimensions2.add(new BaseDimAttribute(new FieldSchema("String_Node_Str","String_Node_Str","String_Node_Str")));
  cubeDimensions2.add(new ReferencedDimAttribute(new FieldSchema("String_Node_Str","String_Node_Str","String_Node_Str"),"String_Node_Str","String_Node_Str","String_Node_Str",null,null,null));
  cubeDimensions2.add(new ReferencedDimAttribute(new FieldSchema("String_Node_Str","String_Node_Str","String_Node_Str"),"String_Node_Str","String_Node_Str","String_Node_Str",null,null,null));
  cubeDimensions2.add(new BaseDimAttribute(new FieldSchema("String_Node_Str","String_Node_Str","String_Node_Str")));
  cubeDimensions2.add(new BaseDimAttribute(new FieldSchema("String_Node_Str","String_Node_Str","String_Node_Str")));
  cubeDimensions2.add(new BaseDimAttribute(new FieldSchema("String_Node_Str","String_Node_Str","String_Node_Str")));
  cubeDimensions2.add(new ReferencedDimAttribute(new FieldSchema("String_Node_Str","String_Node_Str","String_Node_Str"),"String_Node_Str","String_Node_Str","String_Node_Str",null,null,null));
  cubeDimensions2.add(new ReferencedDimAttribute(new FieldSchema("String_Node_Str","String_Node_Str","String_Node_Str"),"String_Node_Str","String_Node_Str","String_Node_Str",null,null,null));
  cubeDimensions2.add(new ReferencedDimAttribute(new FieldSchema("String_Node_Str","String_Node_Str","String_Node_Str"),"String_Node_Str","String_Node_Str","String_Node_Str",null,null,null));
  cubeDimensions2.add(new ReferencedDimAttribute(new FieldSchema("String_Node_Str","String_Node_Str","String_Node_Str"),"String_Node_Str","String_Node_Str","String_Node_Str",null,null,null));
  cubeDimensions2.add(new ReferencedDimAttribute(new FieldSchema("String_Node_Str","String_Node_Str","String_Node_Str"),"String_Node_Str","String_Node_Str","String_Node_Str",null,null,null));
  cubeDimensions2.add(new ReferencedDimAttribute(new FieldSchema("String_Node_Str","String_Node_Str","String_Node_Str"),"String_Node_Str","String_Node_Str","String_Node_Str",null,null,null));
  Map<String,String> cubeProperties=new HashMap<>();
  cubeProperties.put(MetastoreUtil.getCubeTimedDimensionListKey(BASE_CUBE_NAME),"String_Node_Str");
  cubeProperties.put(MetastoreConstants.TIMEDIM_TO_PART_MAPPING_PFX + "String_Node_Str","String_Node_Str");
  cubeProperties.put(MetastoreConstants.TIMEDIM_TO_PART_MAPPING_PFX + "String_Node_Str","String_Node_Str");
  cubeProperties.put(MetastoreConstants.TIMEDIM_TO_PART_MAPPING_PFX + "String_Node_Str","String_Node_Str");
  cubeProperties.put(MetastoreConstants.TIMEDIM_TO_PART_MAPPING_PFX + "String_Node_Str","String_Node_Str");
  cubeProperties.put(MetastoreConstants.TIMEDIM_TO_PART_MAPPING_PFX + "String_Node_Str","String_Node_Str");
  cubeProperties.put(MetastoreConstants.TIMEDIM_TO_PART_MAPPING_PFX + "String_Node_Str","String_Node_Str");
  cubeProperties.put(MetastoreConstants.TIMEDIM_RELATION + "String_Node_Str","String_Node_Str");
  cubeProperties.put(MetastoreConstants.TIMEDIM_RELATION + "String_Node_Str","String_Node_Str");
  cubeProperties.put(MetastoreConstants.CUBE_ALL_FIELDS_QUERIABLE,"String_Node_Str");
  Map<String,JoinChain> joinChainMap=new HashMap<>();
  addCubeChains(joinChainMap,"String_Node_Str");
  joinChainMap.get("String_Node_Str").addPath(new ArrayList<TableReference>(){
{
      add(new TableReference("String_Node_Str","String_Node_Str"));
      add(new TableReference("String_Node_Str","String_Node_Str"));
    }
  }
);
  joinChainMap.get("String_Node_Str").addPath(new ArrayList<TableReference>(){
{
      add(new TableReference("String_Node_Str","String_Node_Str"));
      add(new TableReference("String_Node_Str","String_Node_Str"));
      add(new TableReference("String_Node_Str","String_Node_Str"));
      add(new TableReference("String_Node_Str","String_Node_Str"));
    }
  }
);
  joinChainMap.get("String_Node_Str").addPath(new ArrayList<TableReference>(){
{
      add(new TableReference("String_Node_Str","String_Node_Str"));
      add(new TableReference("String_Node_Str","String_Node_Str"));
      add(new TableReference("String_Node_Str","String_Node_Str"));
      add(new TableReference("String_Node_Str","String_Node_Str"));
      add(new TableReference("String_Node_Str","String_Node_Str"));
      add(new TableReference("String_Node_Str","String_Node_Str"));
    }
  }
);
  Set<JoinChain> joinChains=Sets.newHashSet(joinChainMap.values());
  joinChains.add(new JoinChain("String_Node_Str","String_Node_Str","String_Node_Str"){
{
      addPath(new ArrayList<TableReference>(){
{
          add(new TableReference("String_Node_Str","String_Node_Str"));
          add(new TableReference("String_Node_Str","String_Node_Str"));
          add(new TableReference("String_Node_Str","String_Node_Str"));
          add(new TableReference("String_Node_Str","String_Node_Str"));
        }
      }
);
      addPath(new ArrayList<TableReference>(){
{
          add(new TableReference("String_Node_Str","String_Node_Str"));
          add(new TableReference("String_Node_Str","String_Node_Str"));
          add(new TableReference("String_Node_Str","String_Node_Str"));
          add(new TableReference("String_Node_Str","String_Node_Str"));
        }
      }
);
    }
  }
);
  joinChains.add(new JoinChain("String_Node_Str","String_Node_Str","String_Node_Str"){
{
      addPath(new ArrayList<TableReference>(){
{
          add(new TableReference("String_Node_Str","String_Node_Str"));
          add(new TableReference("String_Node_Str","String_Node_Str"));
          add(new TableReference("String_Node_Str","String_Node_Str"));
          add(new TableReference("String_Node_Str","String_Node_Str"));
        }
      }
);
    }
  }
);
  joinChains.add(new JoinChain("String_Node_Str","String_Node_Str","String_Node_Str"){
{
      addPath(new ArrayList<TableReference>(){
{
          add(new TableReference("String_Node_Str","String_Node_Str"));
          add(new TableReference("String_Node_Str","String_Node_Str"));
          add(new TableReference("String_Node_Str","String_Node_Str"));
          add(new TableReference("String_Node_Str","String_Node_Str"));
        }
      }
);
    }
  }
);
  joinChains.add(new JoinChain("String_Node_Str","String_Node_Str","String_Node_Str"){
{
      addPath(new ArrayList<TableReference>(){
{
          add(new TableReference("String_Node_Str","String_Node_Str"));
          add(new TableReference("String_Node_Str","String_Node_Str"));
          add(new TableReference("String_Node_Str","String_Node_Str"));
          add(new TableReference("String_Node_Str","String_Node_Str"));
          add(new TableReference("String_Node_Str","String_Node_Str"));
          add(new TableReference("String_Node_Str","String_Node_Str"));
        }
      }
);
    }
  }
);
  joinChains.add(new JoinChain("String_Node_Str","String_Node_Str","String_Node_Str"){
{
      addPath(new ArrayList<TableReference>(){
{
          add(new TableReference("String_Node_Str","String_Node_Str"));
          add(new TableReference("String_Node_Str","String_Node_Str"));
        }
      }
);
    }
  }
);
  joinChains.add(new JoinChain("String_Node_Str","String_Node_Str","String_Node_Str"){
{
      addPath(new ArrayList<TableReference>(){
{
          add(new TableReference("String_Node_Str","String_Node_Str"));
          add(new TableReference("String_Node_Str","String_Node_Str"));
          add(new TableReference("String_Node_Str","String_Node_Str"));
          add(new TableReference("String_Node_Str","String_Node_Str",true));
          add(new TableReference("String_Node_Str","String_Node_Str"));
          add(new TableReference("String_Node_Str","String_Node_Str"));
        }
      }
);
    }
  }
);
  joinChains.add(new JoinChain("String_Node_Str","String_Node_Str","String_Node_Str"){
{
      addPath(new ArrayList<TableReference>(){
{
          add(new TableReference("String_Node_Str","String_Node_Str"));
          add(new TableReference("String_Node_Str","String_Node_Str"));
          add(new TableReference("String_Node_Str","String_Node_Str"));
          add(new TableReference("String_Node_Str","String_Node_Str",true));
        }
      }
);
    }
  }
);
  joinChains.add(new JoinChain("String_Node_Str","String_Node_Str","String_Node_Str"){
{
      addPath(new ArrayList<TableReference>(){
{
          add(new TableReference("String_Node_Str","String_Node_Str"));
          add(new TableReference("String_Node_Str","String_Node_Str"));
          add(new TableReference("String_Node_Str","String_Node_Str"));
          add(new TableReference("String_Node_Str","String_Node_Str",true));
          add(new TableReference("String_Node_Str","String_Node_Str"));
          add(new TableReference("String_Node_Str","String_Node_Str"));
        }
      }
);
    }
  }
);
  joinChains.add(new JoinChain("String_Node_Str","String_Node_Str","String_Node_Str"){
{
      addPath(new ArrayList<TableReference>(){
{
          add(new TableReference("String_Node_Str","String_Node_Str"));
          add(new TableReference("String_Node_Str","String_Node_Str"));
          add(new TableReference("String_Node_Str","String_Node_Str"));
          add(new TableReference("String_Node_Str","String_Node_Str",true));
          add(new TableReference("String_Node_Str","String_Node_Str"));
          add(new TableReference("String_Node_Str","String_Node_Str"));
        }
      }
);
    }
  }
);
  cubeDimensions2.add(new ReferencedDimAttribute(new FieldSchema("String_Node_Str","String_Node_Str","String_Node_Str"),"String_Node_Str","String_Node_Str","String_Node_Str",null,null,null));
  Set<ExprColumn> baseExprs=new HashSet<>(exprs);
  baseExprs.add(new ExprColumn(new FieldSchema("String_Node_Str","String_Node_Str","String_Node_Str"),"String_Node_Str","String_Node_Str"));
  baseExprs.add(new ExprColumn(new FieldSchema("String_Node_Str","String_Node_Str","String_Node_Str"),"String_Node_Str","String_Node_Str"));
  baseExprs.add(new ExprColumn(new FieldSchema("String_Node_Str","String_Node_Str","String_Node_Str"),"String_Node_Str","String_Node_Str"));
  baseExprs.add(new ExprColumn(new FieldSchema("String_Node_Str","String_Node_Str","String_Node_Str"),"String_Node_Str","String_Node_Str"));
  baseExprs.add(new ExprColumn(new FieldSchema("String_Node_Str","String_Node_Str","String_Node_Str"),"String_Node_Str","String_Node_Str"));
  baseExprs.add(new ExprColumn(new FieldSchema("String_Node_Str","String_Node_Str","String_Node_Str"),"String_Node_Str",new ExprSpec("String_Node_Str",null,null),new ExprSpec("String_Node_Str",null,null)));
  client.createCube(BASE_CUBE_NAME,cubeMeasures2,cubeDimensions2,baseExprs,joinChains,cubeProperties);
  Map<String,String> derivedProperties=new HashMap<>();
  derivedProperties.put(MetastoreConstants.CUBE_ALL_FIELDS_QUERIABLE,"String_Node_Str");
  Set<String> measures=new HashSet<>();
  measures.add("String_Node_Str");
  measures.add("String_Node_Str");
  Set<String> dimensions=new HashSet<>();
  dimensions.add("String_Node_Str");
  dimensions.add("String_Node_Str");
  dimensions.add("String_Node_Str");
  client.createDerivedCube(BASE_CUBE_NAME,DERIVED_CUBE_NAME1,measures,dimensions,derivedProperties,5L);
  measures=new HashSet<>();
  measures.add("String_Node_Str");
  measures.add("String_Node_Str");
  measures.add("String_Node_Str");
  measures.add("String_Node_Str");
  measures.add("String_Node_Str");
  dimensions=new HashSet<>();
  dimensions.add("String_Node_Str");
  dimensions.add("String_Node_Str");
  dimensions.add("String_Node_Str");
  dimensions.add("String_Node_Str");
  dimensions.add("String_Node_Str");
  dimensions.add("String_Node_Str");
  dimensions.add("String_Node_Str");
  dimensions.add("String_Node_Str");
  dimensions.add("String_Node_Str");
  dimensions.add("String_Node_Str");
  dimensions.add("String_Node_Str");
  dimensions.add("String_Node_Str");
  dimensions.add("String_Node_Str");
  dimensions.add("String_Node_Str");
  dimensions.add("String_Node_Str");
  dimensions.add("String_Node_Str");
  dimensions.add("String_Node_Str");
  dimensions.add("String_Node_Str");
  dimensions.add("String_Node_Str");
  dimensions.add("String_Node_Str");
  client.createDerivedCube(BASE_CUBE_NAME,DERIVED_CUBE_NAME2,measures,dimensions,derivedProperties,10L);
  measures=new HashSet<>();
  measures.add("String_Node_Str");
  measures.add("String_Node_Str");
  dimensions=new HashSet<>();
  dimensions.add("String_Node_Str");
  dimensions.add("String_Node_Str");
  dimensions.add("String_Node_Str");
  dimensions.add("String_Node_Str");
  dimensions.add("String_Node_Str");
  dimensions.add("String_Node_Str");
  dimensions.add("String_Node_Str");
  dimensions.add("String_Node_Str");
  dimensions.add("String_Node_Str");
  client.createDerivedCube(BASE_CUBE_NAME,DERIVED_CUBE_NAME3,measures,dimensions,derivedProperties,20L);
  createBaseCubeFacts(client);
}