Program: 19900
Project: 19900
Buggy source:
public FieldData processFieldData(SubmittedState sstate,FieldData fieldData,PrestoContextRules rules,PrestoField field,Type processType,Status status){
  PrestoSchemaProvider schemaProvider=getSchemaProvider();
  PrestoDataProvider dataProvider=getDataProvider();
  PrestoContext context=rules.getContext();
  if (field.isEmbedded()) {
    Collection<Value> values=fieldData.getValues();
    if (values != null) {
      for (      Value value : values) {
        TopicView embeddedTopic=presto.getEmbeddedTopic(value);
        if (embeddedTopic != null) {
          String topicId=embeddedTopic.getTopicId();
          PrestoTopic valueTopic=null;
          PrestoType valueType;
          if (topicId == null) {
            String topicTypeId=embeddedTopic.getTopicTypeId();
            valueType=schemaProvider.getTypeById(topicTypeId);
          }
 else {
            if (field.isInline()) {
              boolean filterNonStorable=processType == Type.PRE_PROCESS;
              boolean validateValueTypes=false;
              valueTopic=presto.buildInlineTopic(context,field,embeddedTopic,filterNonStorable,validateValueTypes);
              valueTopic=presto.rehydrateInlineTopic(context.getParentContext(),context.getParentField(),valueTopic);
            }
 else {
              valueTopic=dataProvider.getTopicById(topicId);
            }
            valueType=schemaProvider.getTypeById(valueTopic.getTypeId());
          }
          PrestoView valueView=field.getValueView(valueType);
          PrestoContext subcontext=PrestoContext.createSubContext(context,field,valueTopic,valueType,valueView);
          PrestoContextRules subrules=presto.getPrestoContextRules(subcontext);
          value.setEmbedded(processTopicView(embeddedTopic,subrules,processType,status));
        }
 else {
          throw new RuntimeException("String_Node_Str" + field.getId() + "String_Node_Str");
        }
      }
    }
  }
  if (processType == Type.PRE_PROCESS) {
    fieldData.setErrors(null);
    fieldData.setMessages(null);
  }
  ObjectNode schemaExtra=ExtraUtils.getSchemaExtraNode(presto.getSchemaProvider());
  fieldData=processFieldDataExtra(sstate,fieldData,rules,field,schemaExtra,processType,status);
  ObjectNode topicExtra=ExtraUtils.getTypeExtraNode(context.getType());
  fieldData=processFieldDataExtra(sstate,fieldData,rules,field,topicExtra,processType,status);
  ObjectNode viewExtra=ExtraUtils.getViewExtraNode(context.getView());
  fieldData=processFieldDataExtra(sstate,fieldData,rules,field,viewExtra,processType,status);
  ObjectNode fieldExtra=ExtraUtils.getFieldExtraNode(field);
  fieldData=processFieldDataExtra(sstate,fieldData,rules,field,fieldExtra,processType,status);
  return fieldData;
}

Fixed version (ground truth):
public FieldData processFieldData(SubmittedState sstate,FieldData fieldData,PrestoContextRules rules,PrestoField field,Type processType,Status status){
  PrestoSchemaProvider schemaProvider=getSchemaProvider();
  PrestoDataProvider dataProvider=getDataProvider();
  PrestoContext context=rules.getContext();
  if (field.isEmbedded()) {
    Collection<Value> values=fieldData.getValues();
    if (values != null) {
      for (      Value value : values) {
        TopicView embeddedTopic=presto.getEmbeddedTopic(value);
        if (embeddedTopic != null) {
          String topicId=embeddedTopic.getTopicId();
          PrestoTopic valueTopic=null;
          PrestoType valueType;
          if (topicId == null) {
            String topicTypeId=embeddedTopic.getTopicTypeId();
            valueType=schemaProvider.getTypeById(topicTypeId);
          }
 else {
            if (field.isInline()) {
              boolean filterNonStorable=processType == Type.PRE_PROCESS;
              boolean validateValueTypes=false;
              valueTopic=presto.buildInlineTopic(context,field,embeddedTopic,filterNonStorable,validateValueTypes);
              valueTopic=presto.rehydrateInlineTopic(context,field,valueTopic);
            }
 else {
              valueTopic=dataProvider.getTopicById(topicId);
            }
            valueType=schemaProvider.getTypeById(valueTopic.getTypeId());
          }
          PrestoView valueView=field.getValueView(valueType);
          PrestoContext subcontext=PrestoContext.createSubContext(context,field,valueTopic,valueType,valueView);
          PrestoContextRules subrules=presto.getPrestoContextRules(subcontext);
          value.setEmbedded(processTopicView(embeddedTopic,subrules,processType,status));
        }
 else {
          throw new RuntimeException("String_Node_Str" + field.getId() + "String_Node_Str");
        }
      }
    }
  }
  if (processType == Type.PRE_PROCESS) {
    fieldData.setErrors(null);
    fieldData.setMessages(null);
  }
  ObjectNode schemaExtra=ExtraUtils.getSchemaExtraNode(presto.getSchemaProvider());
  fieldData=processFieldDataExtra(sstate,fieldData,rules,field,schemaExtra,processType,status);
  ObjectNode topicExtra=ExtraUtils.getTypeExtraNode(context.getType());
  fieldData=processFieldDataExtra(sstate,fieldData,rules,field,topicExtra,processType,status);
  ObjectNode viewExtra=ExtraUtils.getViewExtraNode(context.getView());
  fieldData=processFieldDataExtra(sstate,fieldData,rules,field,viewExtra,processType,status);
  ObjectNode fieldExtra=ExtraUtils.getFieldExtraNode(field);
  fieldData=processFieldDataExtra(sstate,fieldData,rules,field,fieldExtra,processType,status);
  return fieldData;
}