Program: 167303
Project: 167303
Buggy source:
protected void processAttribute(String attributeId,EntityData inData,EntityData outData,Message inputMessage,Model inputModel,ArrayList<EntityData> outDatas){
  String transform=transformsByAttributeId.get(attributeId);
  Object value=inData.get(attributeId);
  ModelAttrib attribute=inputModel.getAttributeById(attributeId);
  if (attribute.getDataType().equals(DataType.ARRAY) || attribute.getDataType().equals(DataType.REF)) {
    outData.put(attributeId,processEntity((EntityData)value,inputMessage,inputModel,outDatas,false));
  }
 else {
    if (isNotBlank(transform)) {
      ModelEntity entity=inputModel.getEntityById(attribute.getEntityId());
      ModelAttributeScriptHelper helper=helpers.get(attribute.getId());
      if (helper == null) {
        long ts=System.currentTimeMillis();
        scriptEngine.put("String_Node_Str",entity);
        scriptEngine.put("String_Node_Str",attribute);
        scriptEngine.put("String_Node_Str",context);
        scriptEngine.put("String_Node_Str",getInputModel());
        try {
          String importString="String_Node_Str";
          String code=String.format("String_Node_Str",transform);
          helper=(ModelAttributeScriptHelper)scriptEngine.eval(importString + code);
          helpers.put(attribute.getId(),helper);
        }
 catch (        ScriptException e) {
          throw new RuntimeException("String_Node_Str" + attribute.getName() + "String_Node_Str"+ (value == null ? "String_Node_Str" : value.toString())+ "String_Node_Str"+ e.getCause().getMessage(),e);
        }
        log.debug("String_Node_Str" + (System.currentTimeMillis() - ts) + "String_Node_Str");
      }
      helper.setData(inData);
      helper.setValue(value);
      helper.setMessage(inputMessage);
      long ts=System.currentTimeMillis();
      try {
        value=helper.eval();
      }
 catch (      Exception e) {
        throw new RuntimeException("String_Node_Str" + attribute.getName() + "String_Node_Str"+ (value == null ? "String_Node_Str" : value.toString())+ "String_Node_Str"+ getComponent().toRow(inData,false,false),e);
      }
      totalTime+=(System.currentTimeMillis() - ts);
      totalCalls++;
    }
    if (value != ModelAttributeScriptHelper.REMOVE_ATTRIBUTE) {
      outData.put(attributeId,value);
    }
  }
}

Fixed version (ground truth):
@SuppressWarnings("String_Node_Str") protected void processAttribute(String attributeId,EntityData inData,EntityData outData,Message inputMessage,Model inputModel){
  String transform=transformsByAttributeId.get(attributeId);
  Object value=inData.get(attributeId);
  ModelAttrib attribute=inputModel.getAttributeById(attributeId);
  if (value == null) {
    outData.put(attributeId,null);
  }
 else {
    if (attribute.getDataType().equals(DataType.ARRAY)) {
      outData.put(attributeId,processEntityArray((ArrayList<EntityData>)value,inputMessage,inputModel,false));
    }
 else     if (attribute.getDataType().equals(DataType.REF)) {
      outData.put(attributeId,processEntity((EntityData)value,inputMessage,inputModel,false));
    }
 else {
      if (isNotBlank(transform)) {
        ModelEntity entity=inputModel.getEntityById(attribute.getEntityId());
        ModelAttributeScriptHelper helper=helpers.get(attribute.getId());
        if (helper == null) {
          long ts=System.currentTimeMillis();
          scriptEngine.put("String_Node_Str",entity);
          scriptEngine.put("String_Node_Str",attribute);
          scriptEngine.put("String_Node_Str",context);
          scriptEngine.put("String_Node_Str",getInputModel());
          try {
            String importString="String_Node_Str";
            String code=String.format("String_Node_Str",transform);
            helper=(ModelAttributeScriptHelper)scriptEngine.eval(importString + code);
            helpers.put(attribute.getId(),helper);
          }
 catch (          ScriptException e) {
            throw new RuntimeException("String_Node_Str" + attribute.getName() + "String_Node_Str"+ (value == null ? "String_Node_Str" : value.toString())+ "String_Node_Str"+ e.getCause().getMessage(),e);
          }
          log.debug("String_Node_Str" + (System.currentTimeMillis() - ts) + "String_Node_Str");
        }
        helper.setData(inData);
        helper.setValue(value);
        helper.setMessage(inputMessage);
        long ts=System.currentTimeMillis();
        try {
          value=helper.eval();
        }
 catch (        Exception e) {
          throw new RuntimeException("String_Node_Str" + attribute.getName() + "String_Node_Str"+ (value == null ? "String_Node_Str" : value.toString())+ "String_Node_Str"+ getComponent().toRow(inData,false,false),e);
        }
        totalTime+=(System.currentTimeMillis() - ts);
        totalCalls++;
      }
      if (value != ModelAttributeScriptHelper.REMOVE_ATTRIBUTE) {
        outData.put(attributeId,value);
      }
    }
  }
}