Program: 91746
Project: 91746
Buggy source:
@Override public void write(JsonWriter out,OldAttributes oldValues) throws IOException {
  out.beginObject();
  out.name("String_Node_Str");
  out.beginObject();
  out.name("String_Node_Str");
  out.beginObject();
  TaskAttribute attribute=taskData.getRoot().getAttribute(taskSchema.DESCRIPTION.getKey());
  String attValue=attribute.getValue() == null ? "String_Node_Str" : attribute.getValue();
  out.name("String_Node_Str").value(attValue);
  if (taskData.getRoot().getAttribute(TaskAttribute.OPERATION) != null) {
    attribute=taskData.getRoot().getAttribute(TaskAttribute.OPERATION);
  }
 else {
    attribute=taskData.getRoot().getAttribute(taskSchema.STATUS.getKey());
  }
  attValue=attribute.getValue();
  out.name("String_Node_Str").value(attValue);
  attribute=taskData.getRoot().getAttribute(taskSchema.SUMMARY.getKey());
  attValue=attribute.getValue();
  out.name("String_Node_Str").value(attValue);
  attribute=taskData.getRoot().getAttribute(taskSchema.VERSION.getKey());
  attValue=attribute.getValue();
  out.name("String_Node_Str").value(attValue);
  out.endObject();
  attribute=taskData.getRoot().getAttribute(taskSchema.UUID.getKey());
  attValue=attribute.getValue();
  out.name("String_Node_Str").value(attValue);
  out.name("String_Node_Str");
  out.beginObject();
  out.name("String_Node_Str");
  out.beginObject();
  out.name("String_Node_Str");
  out.beginObject();
  attribute=taskData.getRoot().getAttribute(taskSchema.SPACE.getKey());
  String spaceName=attribute.getValue();
  out.name("String_Node_Str").value(space.getId());
  out.name("String_Node_Str").value("String_Node_Str");
  out.endObject();
  out.endObject();
  attribute=taskData.getRoot().getAttribute(taskSchema.AREA.getKey());
  String areaName=attribute.getValue();
  if (areaName != null && !areaName.trim().isEmpty()) {
    out.name("String_Node_Str");
    out.beginObject();
    out.name("String_Node_Str");
    out.beginObject();
    Area area=space.getAreas().get(areaName);
    out.name("String_Node_Str").value(area.getId());
    out.name("String_Node_Str").value("String_Node_Str");
    out.endObject();
    out.endObject();
  }
  attribute=taskData.getRoot().getAttribute(taskSchema.ITERATION.getKey());
  String iterationName=attribute.getValue();
  if (iterationName != null && !iterationName.trim().isEmpty()) {
    out.name("String_Node_Str");
    out.beginObject();
    out.name("String_Node_Str");
    out.beginObject();
    Iteration iteration=space.getIterations().get(iterationName);
    out.name("String_Node_Str").value(iteration.getId());
    out.name("String_Node_Str").value("String_Node_Str");
    out.endObject();
    out.endObject();
  }
  out.name("String_Node_Str");
  out.beginObject();
  attribute=taskData.getRoot().getAttribute(taskSchema.ASSIGNEES.getKey());
  List<String> assignees=attribute.getValues();
  if (assignees == null) {
    assignees=new ArrayList<String>();
  }
 else {
    assignees=new ArrayList<>(assignees);
  }
  attribute=taskData.getRoot().getAttribute(taskSchema.REMOVE_ASSIGNEE.getKey());
  List<String> removals=attribute.getValues();
  if (removals != null) {
    for (    String removal : removals) {
      int index=assignees.indexOf(removal);
      if (index >= 0) {
        assignees.remove(index);
      }
    }
  }
  attribute=taskData.getRoot().getAttribute(taskSchema.ADD_ASSIGNEE.getKey());
  List<String> additions=attribute.getValues();
  if (additions != null) {
    for (    String addition : additions) {
      int index=assignees.indexOf(addition);
      if (index < 0) {
        assignees.add(addition);
      }
    }
  }
  if (assignees.size() > 0 && !assignees.get(0).isEmpty()) {
    Map<String,User> users=space.getUsers();
    out.name("String_Node_Str");
    out.beginArray();
    for (    String assignee : assignees) {
      if (assignee != null && !assignee.isEmpty()) {
        User user=users.get(assignee);
        if (user == null) {
          throw new UnsupportedOperationException(OSIORestMessages.getFormattedString("String_Node_Str",assignee));
        }
        String userid=user.getId();
        out.beginObject();
        out.name("String_Node_Str").value(userid);
        out.name("String_Node_Str").value("String_Node_Str");
        out.endObject();
      }
    }
    out.endArray();
  }
  out.endObject();
  attribute=taskData.getRoot().getAttribute(taskSchema.LABELS.getKey());
  List<String> labels=attribute.getValues();
  if (labels == null) {
    labels=new ArrayList<String>();
  }
 else {
    labels=new ArrayList<>(labels);
  }
  attribute=taskData.getRoot().getAttribute(taskSchema.REMOVE_LABEL.getKey());
  List<String> labelRemovals=attribute.getValues();
  if (labelRemovals != null) {
    for (    String removal : labelRemovals) {
      int index=labels.indexOf(removal);
      if (index >= 0) {
        labels.remove(index);
      }
    }
  }
  attribute=taskData.getRoot().getAttribute(taskSchema.ADD_LABEL.getKey());
  String labelAddString=attribute.getValue();
  String[] labelAdditions=labelAddString.split("String_Node_Str");
  if (labelAdditions != null) {
    for (    String addition : labelAdditions) {
      int index=labels.indexOf(addition);
      if (index < 0) {
        labels.add(addition);
      }
    }
  }
  out.name("String_Node_Str");
  out.beginObject();
  out.name("String_Node_Str");
  out.beginArray();
  if (labels.size() > 0 && !labels.get(0).isEmpty()) {
    Map<String,Label> spaceLabels=space.getLabels();
    for (    String label : labels) {
      Label l=spaceLabels.get(label);
      if (l == null && !label.trim().isEmpty()) {
        try {
          LabelResponse response=new OSIORestPostNewLabelTask(client,space,label).run(new NullOperationMonitor());
          Label newLabel=response.getData();
          spaceLabels.put(label,newLabel);
        }
 catch (        OSIORestException e) {
          e.printStackTrace();
        }
      }
      l=spaceLabels.get(label);
      if (l != null) {
        String labelid=l.getId();
        out.beginObject();
        out.name("String_Node_Str").value(labelid);
        out.name("String_Node_Str").value("String_Node_Str");
        out.endObject();
      }
    }
  }
  out.endArray();
  out.endObject();
  out.endObject();
  out.name("String_Node_Str").value("String_Node_Str");
  out.endObject();
  out.name("String_Node_Str");
  out.beginArray();
  out.value(true);
  out.endArray();
  out.endObject();
}

Fixed version (ground truth):
@Override public void write(JsonWriter out,OldAttributes oldValues) throws IOException {
  out.beginObject();
  out.name("String_Node_Str");
  out.beginObject();
  out.name("String_Node_Str");
  out.beginObject();
  TaskAttribute attribute=taskData.getRoot().getAttribute(taskSchema.DESCRIPTION.getKey());
  String attValue=attribute.getValue() == null ? "String_Node_Str" : attribute.getValue();
  out.name("String_Node_Str").value(attValue);
  if (taskData.getRoot().getAttribute(TaskAttribute.OPERATION) != null) {
    attribute=taskData.getRoot().getAttribute(TaskAttribute.OPERATION);
  }
 else {
    attribute=taskData.getRoot().getAttribute(taskSchema.STATUS.getKey());
  }
  attValue=attribute.getValue();
  out.name("String_Node_Str").value(attValue);
  attribute=taskData.getRoot().getAttribute(taskSchema.SUMMARY.getKey());
  attValue=attribute.getValue();
  out.name("String_Node_Str").value(attValue);
  attribute=taskData.getRoot().getAttribute(taskSchema.VERSION.getKey());
  attValue=attribute.getValue();
  out.name("String_Node_Str").value(attValue);
  out.endObject();
  attribute=taskData.getRoot().getAttribute(taskSchema.UUID.getKey());
  attValue=attribute.getValue();
  out.name("String_Node_Str").value(attValue);
  out.name("String_Node_Str");
  out.beginObject();
  out.name("String_Node_Str");
  out.beginObject();
  out.name("String_Node_Str");
  out.beginObject();
  attribute=taskData.getRoot().getAttribute(taskSchema.SPACE.getKey());
  String spaceName=attribute.getValue();
  out.name("String_Node_Str").value(space.getId());
  out.name("String_Node_Str").value("String_Node_Str");
  out.endObject();
  out.endObject();
  attribute=taskData.getRoot().getAttribute(taskSchema.AREA.getKey());
  String areaName=attribute.getValue();
  if (areaName != null && !areaName.trim().isEmpty()) {
    out.name("String_Node_Str");
    out.beginObject();
    out.name("String_Node_Str");
    out.beginObject();
    Area area=space.getAreas().get(areaName);
    out.name("String_Node_Str").value(area.getId());
    out.name("String_Node_Str").value("String_Node_Str");
    out.endObject();
    out.endObject();
  }
  attribute=taskData.getRoot().getAttribute(taskSchema.ITERATION.getKey());
  String iterationName=attribute.getValue();
  if (iterationName != null && !iterationName.trim().isEmpty()) {
    out.name("String_Node_Str");
    out.beginObject();
    out.name("String_Node_Str");
    out.beginObject();
    Iteration iteration=space.getIterations().get(iterationName);
    out.name("String_Node_Str").value(iteration.getId());
    out.name("String_Node_Str").value("String_Node_Str");
    out.endObject();
    out.endObject();
  }
  out.name("String_Node_Str");
  out.beginObject();
  attribute=taskData.getRoot().getAttribute(taskSchema.ASSIGNEES.getKey());
  List<String> assignees=attribute.getValues();
  if (assignees == null) {
    assignees=new ArrayList<String>();
  }
 else {
    assignees=new ArrayList<>(assignees);
  }
  attribute=taskData.getRoot().getAttribute(taskSchema.REMOVE_ASSIGNEE.getKey());
  List<String> removals=attribute.getValues();
  if (removals != null) {
    for (    String removal : removals) {
      int index=assignees.indexOf(removal);
      if (index >= 0) {
        assignees.remove(index);
      }
    }
  }
  attribute=taskData.getRoot().getAttribute(taskSchema.ADD_ASSIGNEE.getKey());
  List<String> additions=attribute.getValues();
  if (additions != null) {
    for (    String addition : additions) {
      int index=assignees.indexOf(addition);
      if (index < 0) {
        assignees.add(addition);
      }
    }
  }
  if (assignees.size() > 0 && !assignees.get(0).isEmpty()) {
    Map<String,User> users=space.getUsers();
    out.name("String_Node_Str");
    out.beginArray();
    for (    String assignee : assignees) {
      if (assignee != null && !assignee.isEmpty()) {
        User user=users.get(assignee);
        if (user == null) {
          throw new UnsupportedOperationException(OSIORestMessages.getFormattedString("String_Node_Str",assignee));
        }
        String userid=user.getId();
        out.beginObject();
        out.name("String_Node_Str").value(userid);
        out.name("String_Node_Str").value("String_Node_Str");
        out.endObject();
      }
    }
    out.endArray();
  }
  out.endObject();
  attribute=taskData.getRoot().getAttribute(taskSchema.LABELS.getKey());
  List<String> labels=attribute.getValues();
  if (labels == null) {
    labels=new ArrayList<String>();
  }
 else {
    labels=new ArrayList<>(labels);
  }
  attribute=taskData.getRoot().getAttribute(taskSchema.REMOVE_LABEL.getKey());
  List<String> labelRemovals=attribute.getValues();
  if (labelRemovals != null) {
    for (    String removal : labelRemovals) {
      int index=labels.indexOf(removal);
      if (index >= 0) {
        labels.remove(index);
      }
    }
  }
  attribute=taskData.getRoot().getAttribute(taskSchema.ADD_LABEL.getKey());
  List<String> labelAdditions=attribute.getValues();
  if (labelAdditions != null) {
    for (    String addition : labelAdditions) {
      int index=labels.indexOf(addition);
      if (index < 0) {
        labels.add(addition);
      }
    }
  }
  out.name("String_Node_Str");
  out.beginObject();
  out.name("String_Node_Str");
  out.beginArray();
  if (labels.size() > 0 && !labels.get(0).isEmpty()) {
    Map<String,Label> spaceLabels=space.getLabels();
    for (    String label : labels) {
      Label l=spaceLabels.get(label);
      if (l == null && !label.trim().isEmpty()) {
        try {
          LabelResponse response=new OSIORestPostNewLabelTask(client,space,label).run(new NullOperationMonitor());
          Label newLabel=response.getData();
          spaceLabels.put(label,newLabel);
        }
 catch (        OSIORestException e) {
          e.printStackTrace();
        }
      }
      l=spaceLabels.get(label);
      if (l != null) {
        String labelid=l.getId();
        out.beginObject();
        out.name("String_Node_Str").value(labelid);
        out.name("String_Node_Str").value("String_Node_Str");
        out.endObject();
      }
    }
  }
  out.endArray();
  out.endObject();
  out.endObject();
  out.name("String_Node_Str").value("String_Node_Str");
  out.endObject();
  out.name("String_Node_Str");
  out.beginArray();
  out.value(true);
  out.endArray();
  out.endObject();
}