Program: 168926
Project: 168926
Buggy source:
@SuppressWarnings({"String_Node_Str","String_Node_Str"}) public PartialEntityViewUpdater(ViewType<?> viewType){
  this.entityClass=viewType.getEntityClass();
  Set<MethodAttribute<?,?>> attributes=(Set<MethodAttribute<?,?>>)(Set)viewType.getAttributes();
  MethodAttribute<?,?> idAttribute=viewType.getIdAttribute();
  List<DirtyAttributeFlusher<? extends Object,? extends Object>> flushers=new ArrayList<DirtyAttributeFlusher<? extends Object,? extends Object>>(attributes.size());
  List<String> attributeUpdateList=new ArrayList<String>(attributes.size());
  StringBuilder sb=new StringBuilder(100);
  int length=0;
  for (  MethodAttribute<?,?> attribute : attributes) {
    if (attribute == idAttribute) {
      continue;
    }
    if (attribute.isUpdatable()) {
      String attributeName=attribute.getName();
      String attributeMapping=((MappingAttribute<?,?>)viewType.getAttribute(attributeName)).getMapping();
      sb.setLength(0);
      sb.append(attributeMapping);
      sb.append("String_Node_Str");
      sb.append(attributeName);
      if (attribute.isCollection()) {
        if (attribute instanceof MapAttribute<?,?,?>) {
          flushers.add(new MapAttributeFlusher<Object,RecordingMap<Map<?,?>,?,?>>((PropertyPathExpression<Object,? extends Map<?,?>>)ExpressionUtils.getExpression(entityClass,attributeMapping)));
        }
 else {
          flushers.add(new CollectionAttributeFlusher<Object,RecordingCollection<Collection<?>,?>>((PropertyPathExpression<Object,? extends Collection<?>>)ExpressionUtils.getExpression(entityClass,attributeMapping)));
        }
      }
 else {
        flushers.add(new BasicAttributeFlusher<Object,Object>(attributeName,(PropertyPathExpression<Object,Object>)ExpressionUtils.getExpression(entityClass,attributeMapping)));
      }
      attributeUpdateList.add(sb.toString());
      length+=sb.length() + 2;
    }
  }
  dirtyStateFieldUpdates=attributeUpdateList.toArray(new String[attributeUpdateList.size()]);
  dirtyAttributeFlushers=flushers.toArray(new DirtyAttributeFlusher[flushers.size()]);
  String idName=idAttribute.getName();
  idAttributeName=idName;
  updateStart="String_Node_Str" + entityClass.getName() + "String_Node_Str";
  updateEnd="String_Node_Str" + ((MappingAttribute<?,?>)viewType.getAttribute(idName)).getMapping() + "String_Node_Str"+ idName;
  bufferSize=updateStart.length() + updateEnd.length() + length;
}

Fixed version (ground truth):
@SuppressWarnings({"String_Node_Str","String_Node_Str"}) public PartialEntityViewUpdater(ViewType<?> viewType){
  this.entityClass=viewType.getEntityClass();
  Set<MethodAttribute<?,?>> attributes=(Set<MethodAttribute<?,?>>)(Set)viewType.getAttributes();
  MethodAttribute<?,?> idAttribute=viewType.getIdAttribute();
  List<DirtyAttributeFlusher<? extends Object,? extends Object>> flushers=new ArrayList<DirtyAttributeFlusher<? extends Object,? extends Object>>(attributes.size());
  List<String> attributeUpdateList=new ArrayList<String>(attributes.size());
  StringBuilder sb=new StringBuilder(100);
  int length=0;
  for (  MethodAttribute<?,?> attribute : attributes) {
    if (attribute == idAttribute) {
      continue;
    }
    if (attribute.isUpdatable()) {
      String attributeName=attribute.getName();
      String attributeMapping=((MappingAttribute<?,?>)viewType.getAttribute(attributeName)).getMapping();
      sb.setLength(0);
      sb.append(attributeMapping);
      sb.append("String_Node_Str");
      sb.append(attributeName);
      if (attribute.isCollection()) {
        if (attribute instanceof MapAttribute<?,?,?>) {
          flushers.add(new MapAttributeFlusher<Object,RecordingMap<Map<?,?>,?,?>>((PropertyPathExpression<Object,Map<?,?>>)(PropertyPathExpression)ExpressionUtils.getExpression(entityClass,attributeMapping)));
        }
 else {
          flushers.add(new CollectionAttributeFlusher<Object,RecordingCollection<Collection<?>,?>>((PropertyPathExpression<Object,Collection<?>>)(PropertyPathExpression)ExpressionUtils.getExpression(entityClass,attributeMapping)));
        }
      }
 else {
        flushers.add(new BasicAttributeFlusher<Object,Object>(attributeName,(PropertyPathExpression<Object,Object>)ExpressionUtils.getExpression(entityClass,attributeMapping)));
      }
      attributeUpdateList.add(sb.toString());
      length+=sb.length() + 2;
    }
  }
  dirtyStateFieldUpdates=attributeUpdateList.toArray(new String[attributeUpdateList.size()]);
  dirtyAttributeFlushers=flushers.toArray(new DirtyAttributeFlusher[flushers.size()]);
  String idName=idAttribute.getName();
  idAttributeName=idName;
  updateStart="String_Node_Str" + entityClass.getName() + "String_Node_Str";
  updateEnd="String_Node_Str" + ((MappingAttribute<?,?>)viewType.getAttribute(idName)).getMapping() + "String_Node_Str"+ idName;
  bufferSize=updateStart.length() + updateEnd.length() + length;
}