Program: 141077
Project: 141077
Buggy source:
/** 
 * Show a design
 * @param design Design to show
 */
public static void showDesign(final Design design){
  checkNotNull(design,"String_Node_Str");
  final StringBuilder sb=new StringBuilder();
  sb.append("String_Node_Str");
  sb.append(design.getName());
  sb.append("String_Node_Str");
  sb.append(design.getNumber());
  sb.append("String_Node_Str");
  sb.append("String_Node_Str");
  for (  Map.Entry<String,String> e : design.getMetadata().entrySet()) {
    sb.append('\t');
    sb.append(e.getKey());
    sb.append('=');
    sb.append(e.getValue());
    sb.append('\n');
  }
  sb.append('\n');
  sb.append("String_Node_Str");
  for (  Experiment e : design.getExperiments()) {
    final String expId=e.getId();
    for (    Map.Entry<String,String> m : e.getMetadata().entrySet()) {
      sb.append('\t');
      sb.append("String_Node_Str" + expId + "String_Node_Str"+ m.getKey());
      sb.append('=');
      sb.append(m.getValue());
      sb.append('\n');
    }
    sb.append('\n');
  }
  sb.append('\n');
  sb.append("String_Node_Str");
  sb.append('\t');
  sb.append("String_Node_Str");
  sb.append('\t');
  sb.append("String_Node_Str");
  final List<String> sampleMDKeys=getAllSamplesMetadataKeys(design);
  for (  String key : sampleMDKeys) {
    sb.append('\t');
    sb.append(key);
  }
  for (  Experiment experiment : design.getExperiments()) {
    final String prefix="String_Node_Str" + experiment.getId() + "String_Node_Str";
    final List<String> experimentMDKeys=getExperimentSampleAllMetadataKeys(experiment);
    for (    String key : experimentMDKeys) {
      sb.append('\t');
      sb.append(prefix);
      sb.append(key);
    }
  }
  sb.append('\n');
  for (  Sample sample : design.getSamples()) {
    sb.append(sample.getId());
    sb.append('\t');
    sb.append(sample.getNumber());
    sb.append('\t');
    sb.append(sample.getName());
    final SampleMetadata smd=sample.getMetadata();
    for (    String key : sampleMDKeys) {
      sb.append('\t');
      if (smd.contains(key)) {
        sb.append(smd.get(key));
      }
    }
    for (    Experiment experiment : design.getExperiments()) {
      final ExperimentSampleMetadata expSampleMetadata=experiment.getExperimentSample(sample).getMetadata();
      final List<String> experimentMDKeys=getExperimentSampleAllMetadataKeys(experiment);
      for (      String key : experimentMDKeys) {
        sb.append('\t');
        if (expSampleMetadata.contains(key)) {
          sb.append(expSampleMetadata.get(key));
        }
      }
    }
    sb.append('\n');
  }
  System.out.println(sb.toString());
}

Fixed version (ground truth):
/** 
 * Show a design
 * @param design Design to show
 */
public static void showDesign(final Design design){
  checkNotNull(design,"String_Node_Str");
  final StringBuilder sb=new StringBuilder();
  sb.append("String_Node_Str");
  sb.append(design.getName());
  sb.append("String_Node_Str");
  sb.append(design.getNumber());
  sb.append("String_Node_Str");
  sb.append("String_Node_Str");
  for (  Map.Entry<String,String> e : design.getMetadata().entrySet()) {
    sb.append('\t');
    sb.append(e.getKey());
    sb.append('=');
    sb.append(e.getValue());
    sb.append('\n');
  }
  sb.append('\n');
  sb.append("String_Node_Str");
  for (  Experiment e : design.getExperiments()) {
    final String expId=e.getId();
    for (    Map.Entry<String,String> m : e.getMetadata().entrySet()) {
      sb.append('\t');
      sb.append("String_Node_Str");
      sb.append(expId);
      sb.append("String_Node_Str");
      sb.append(m.getKey());
      sb.append('=');
      sb.append(m.getValue());
      sb.append('\n');
    }
    sb.append('\n');
  }
  sb.append('\n');
  sb.append("String_Node_Str");
  sb.append('\t');
  sb.append("String_Node_Str");
  sb.append('\t');
  sb.append("String_Node_Str");
  final List<String> sampleMDKeys=getAllSamplesMetadataKeys(design);
  for (  String key : sampleMDKeys) {
    sb.append('\t');
    sb.append(key);
  }
  for (  Experiment experiment : design.getExperiments()) {
    final String prefix="String_Node_Str" + experiment.getId() + "String_Node_Str";
    final List<String> experimentMDKeys=getExperimentSampleAllMetadataKeys(experiment);
    for (    String key : experimentMDKeys) {
      sb.append('\t');
      sb.append(prefix);
      sb.append(key);
    }
  }
  sb.append('\n');
  for (  Sample sample : design.getSamples()) {
    sb.append(sample.getId());
    sb.append('\t');
    sb.append(sample.getNumber());
    sb.append('\t');
    sb.append(sample.getName());
    final SampleMetadata smd=sample.getMetadata();
    for (    String key : sampleMDKeys) {
      sb.append('\t');
      if (smd.contains(key)) {
        sb.append(smd.get(key));
      }
    }
    for (    Experiment experiment : design.getExperiments()) {
      final ExperimentSampleMetadata expSampleMetadata=experiment.getExperimentSample(sample).getMetadata();
      final List<String> experimentMDKeys=getExperimentSampleAllMetadataKeys(experiment);
      for (      String key : experimentMDKeys) {
        sb.append('\t');
        if (expSampleMetadata.contains(key)) {
          sb.append(expSampleMetadata.get(key));
        }
      }
    }
    sb.append('\n');
  }
  System.out.println(sb.toString());
}