Program: 59702
Project: 59702
Buggy source:
@SuppressWarnings({"String_Node_Str","String_Node_Str"}) public Configuration build() throws BindException {
  ConfigurationModule c=deepCopy();
  if (!c.reqSet.containsAll(c.builder.reqDecl)) {
    Set<Field> missingSet=new MonotonicHashSet<>();
    for (    Field f : c.builder.reqDecl) {
      if (!c.reqSet.contains(f)) {
        missingSet.add(f);
      }
    }
    throw new BindException("String_Node_Str" + builder.toString(missingSet));
  }
  for (  Class<?> clazz : c.builder.freeImpls.keySet()) {
    Impl<?> i=c.builder.freeImpls.get(clazz);
    if (c.setImpls.containsKey(i)) {
      c.builder.b.bind(clazz,c.setImpls.get(i));
    }
 else     if (c.setLateImpls.containsKey(i)) {
      c.builder.b.bind(ReflectionUtilities.getFullName(clazz),c.setLateImpls.get(i));
    }
 else     if (c.setImplSets.containsKey(i) || c.setLateImplSets.containsKey(i)) {
      for (      Class<?> clz : c.setImplSets.getValuesForKey(i)) {
        c.builder.b.bindSetEntry((Class)clazz,(Class)clz);
      }
      for (      String s : c.setLateImplSets.getValuesForKey(i)) {
        c.builder.b.bindSetEntry((Class)clazz,s);
      }
    }
 else {
      c.builder.b.bindList((Class)clazz,c.setImplLists.get(i));
    }
  }
  for (  Class<? extends Name<?>> clazz : c.builder.freeParams.keySet()) {
    Param<?> p=c.builder.freeParams.get(clazz);
    String s=c.setParams.get(p);
    boolean foundOne=false;
    if (s != null) {
      c.builder.b.bindNamedParameter(clazz,s);
      foundOne=true;
    }
    List list=c.setParamLists.get(p);
    if (list != null) {
      c.builder.b.bindList((Class)clazz,list);
      foundOne=true;
    }
    for (    String paramStr : c.setParamSets.getValuesForKey(p)) {
      c.builder.b.bindSetEntry((Class)clazz,paramStr);
      foundOne=true;
    }
    if (!foundOne) {
      if (!(p instanceof OptionalParameter)) {
        throw new IllegalStateException();
      }
    }
  }
  return c.builder.b.build();
}

Fixed version (ground truth):
@SuppressWarnings({"String_Node_Str","String_Node_Str"}) public Configuration build() throws BindException {
  ConfigurationModule c=deepCopy();
  if (!c.reqSet.containsAll(c.builder.reqDecl)) {
    Set<Field> missingSet=new MonotonicHashSet<>();
    for (    Field f : c.builder.reqDecl) {
      if (!c.reqSet.contains(f)) {
        missingSet.add(f);
      }
    }
    throw new BindException("String_Node_Str" + builder.toString(missingSet));
  }
  for (  Class<?> clazz : c.builder.freeImpls.keySet()) {
    Impl<?> i=c.builder.freeImpls.get(clazz);
    if (c.setImpls.containsKey(i)) {
      c.builder.b.bind(clazz,c.setImpls.get(i));
    }
 else     if (c.setLateImpls.containsKey(i)) {
      c.builder.b.bind(ReflectionUtilities.getFullName(clazz),c.setLateImpls.get(i));
    }
 else     if (c.setImplSets.containsKey(i) || c.setLateImplSets.containsKey(i)) {
      for (      Class<?> clz : c.setImplSets.getValuesForKey(i)) {
        c.builder.b.bindSetEntry((Class)clazz,(Class)clz);
      }
      for (      String s : c.setLateImplSets.getValuesForKey(i)) {
        c.builder.b.bindSetEntry((Class)clazz,s);
      }
    }
 else     if (c.setImplLists.containsKey(i)) {
      c.builder.b.bindList((Class)clazz,c.setImplLists.get(i));
    }
  }
  for (  Class<? extends Name<?>> clazz : c.builder.freeParams.keySet()) {
    Param<?> p=c.builder.freeParams.get(clazz);
    String s=c.setParams.get(p);
    boolean foundOne=false;
    if (s != null) {
      c.builder.b.bindNamedParameter(clazz,s);
      foundOne=true;
    }
    List list=c.setParamLists.get(p);
    if (list != null) {
      c.builder.b.bindList((Class)clazz,list);
      foundOne=true;
    }
    for (    String paramStr : c.setParamSets.getValuesForKey(p)) {
      c.builder.b.bindSetEntry((Class)clazz,paramStr);
      foundOne=true;
    }
    if (!foundOne) {
      if (!(p instanceof OptionalParameter)) {
        throw new IllegalStateException();
      }
    }
  }
  return c.builder.b.build();
}