Program: 177114
Project: 177114
Buggy source:
private JsonNode exampleNode(JsonType jsonType,String specifiedExample,String specifiedExample2,Context context){
  if (jsonType instanceof JsonClassType) {
    TypeDefinition typeDefinition=((JsonClassType)jsonType).getTypeDefinition();
    if (typeDefinition instanceof ObjectTypeDefinition) {
      ObjectNode objectNode=JsonNodeFactory.instance.objectNode();
      if (!context.stack.contains(typeDefinition.getQualifiedName().toString())) {
        context.stack.push(typeDefinition.getQualifiedName().toString());
        try {
          build(objectNode,(ObjectTypeDefinition)typeDefinition,context);
        }
  finally {
          context.stack.pop();
        }
      }
      return objectNode;
    }
 else     if (typeDefinition instanceof EnumTypeDefinition) {
      String example="String_Node_Str";
      if (specifiedExample != null) {
        example=specifiedExample;
      }
 else {
        List<EnumValue> enumValues=((EnumTypeDefinition)typeDefinition).getEnumValues();
        if (enumValues.size() > 0) {
          int index=new Random().nextInt(enumValues.size());
          example=enumValues.get(index).getValue();
        }
      }
      return JsonNodeFactory.instance.textNode(example);
    }
 else {
      return exampleNode(((SimpleTypeDefinition)typeDefinition).getBaseType(),specifiedExample,specifiedExample2,context);
    }
  }
 else   if (jsonType instanceof JsonMapType) {
    ObjectNode mapNode=JsonNodeFactory.instance.objectNode();
    JsonType valueType=((JsonMapType)jsonType).getValueType();
    String key1Example="String_Node_Str";
    if (specifiedExample != null) {
      int firstSpace=JavaDoc.indexOfFirstWhitespace(specifiedExample);
      if (firstSpace >= 0) {
        key1Example=specifiedExample.substring(0,firstSpace);
        specifiedExample=specifiedExample.substring(firstSpace + 1).trim();
        if (specifiedExample.isEmpty()) {
          specifiedExample=null;
        }
      }
    }
    String key2Example="String_Node_Str";
    if (specifiedExample2 != null) {
      int firstSpace=JavaDoc.indexOfFirstWhitespace(specifiedExample2);
      if (firstSpace >= 0) {
        key1Example=specifiedExample2.substring(0,firstSpace);
        specifiedExample2=specifiedExample2.substring(firstSpace + 1).trim();
        if (specifiedExample2.isEmpty()) {
          specifiedExample2=null;
        }
      }
    }
    mapNode.set(key1Example,exampleNode(valueType,specifiedExample,specifiedExample2,context));
    Context context2=new Context();
    context2.stack=context.stack;
    context2.currentIndex=1;
    mapNode.set(key2Example,exampleNode(valueType,specifiedExample,specifiedExample2,context2));
    return mapNode;
  }
 else   if (jsonType.isArray()) {
    ArrayNode arrayNode=JsonNodeFactory.instance.arrayNode();
    if (jsonType instanceof JsonArrayType) {
      JsonNode componentNode=exampleNode(((JsonArrayType)jsonType).getComponentType(),specifiedExample,specifiedExample2,context);
      arrayNode.add(componentNode);
      Context context2=new Context();
      context2.stack=context.stack;
      context2.currentIndex=1;
      JsonNode componentNode2=exampleNode(((JsonArrayType)jsonType).getComponentType(),specifiedExample2,specifiedExample,context2);
      arrayNode.add(componentNode2);
    }
    return arrayNode;
  }
 else   if (jsonType.isWholeNumber()) {
    Long example=12345L;
    if (specifiedExample != null) {
      try {
        example=Long.parseLong(specifiedExample);
      }
 catch (      NumberFormatException e) {
        this.type.getContext().getContext().getLogger().warn("String_Node_Str",specifiedExample);
      }
    }
    return JsonNodeFactory.instance.numberNode(example);
  }
 else   if (jsonType.isNumber()) {
    Double example=12345D;
    if (specifiedExample != null) {
      try {
        example=Double.parseDouble(specifiedExample);
      }
 catch (      NumberFormatException e) {
        this.type.getContext().getContext().getLogger().warn("String_Node_Str",specifiedExample);
      }
    }
    return JsonNodeFactory.instance.numberNode(example);
  }
 else   if (jsonType.isBoolean()) {
    boolean example=!"String_Node_Str".equals(specifiedExample);
    return JsonNodeFactory.instance.booleanNode(example);
  }
 else   if (jsonType.isString()) {
    String example=specifiedExample;
    if (example == null) {
      example="String_Node_Str";
    }
    return JsonNodeFactory.instance.textNode(example);
  }
 else {
    return JsonNodeFactory.instance.objectNode();
  }
}

Fixed version (ground truth):
private JsonNode exampleNode(JsonType jsonType,String specifiedExample,String specifiedExample2,Context context){
  if (jsonType instanceof JsonClassType) {
    TypeDefinition typeDefinition=((JsonClassType)jsonType).getTypeDefinition();
    if (typeDefinition instanceof ObjectTypeDefinition) {
      ObjectNode objectNode=JsonNodeFactory.instance.objectNode();
      if (!context.stack.contains(typeDefinition.getQualifiedName().toString())) {
        context.stack.push(typeDefinition.getQualifiedName().toString());
        try {
          final ObjectTypeDefinition objTypeDef=(ObjectTypeDefinition)typeDefinition;
          build(objectNode,objTypeDef,objTypeDef,context);
        }
  finally {
          context.stack.pop();
        }
      }
      return objectNode;
    }
 else     if (typeDefinition instanceof EnumTypeDefinition) {
      String example="String_Node_Str";
      if (specifiedExample != null) {
        example=specifiedExample;
      }
 else {
        List<EnumValue> enumValues=((EnumTypeDefinition)typeDefinition).getEnumValues();
        if (enumValues.size() > 0) {
          int index=new Random().nextInt(enumValues.size());
          example=enumValues.get(index).getValue();
        }
      }
      return JsonNodeFactory.instance.textNode(example);
    }
 else {
      return exampleNode(((SimpleTypeDefinition)typeDefinition).getBaseType(),specifiedExample,specifiedExample2,context);
    }
  }
 else   if (jsonType instanceof JsonMapType) {
    ObjectNode mapNode=JsonNodeFactory.instance.objectNode();
    JsonType valueType=((JsonMapType)jsonType).getValueType();
    String key1Example="String_Node_Str";
    if (specifiedExample != null) {
      int firstSpace=JavaDoc.indexOfFirstWhitespace(specifiedExample);
      if (firstSpace >= 0) {
        key1Example=specifiedExample.substring(0,firstSpace);
        specifiedExample=specifiedExample.substring(firstSpace + 1).trim();
        if (specifiedExample.isEmpty()) {
          specifiedExample=null;
        }
      }
    }
    String key2Example="String_Node_Str";
    if (specifiedExample2 != null) {
      int firstSpace=JavaDoc.indexOfFirstWhitespace(specifiedExample2);
      if (firstSpace >= 0) {
        key1Example=specifiedExample2.substring(0,firstSpace);
        specifiedExample2=specifiedExample2.substring(firstSpace + 1).trim();
        if (specifiedExample2.isEmpty()) {
          specifiedExample2=null;
        }
      }
    }
    mapNode.set(key1Example,exampleNode(valueType,specifiedExample,specifiedExample2,context));
    Context context2=new Context();
    context2.stack=context.stack;
    context2.currentIndex=1;
    mapNode.set(key2Example,exampleNode(valueType,specifiedExample,specifiedExample2,context2));
    return mapNode;
  }
 else   if (jsonType.isArray()) {
    ArrayNode arrayNode=JsonNodeFactory.instance.arrayNode();
    if (jsonType instanceof JsonArrayType) {
      JsonNode componentNode=exampleNode(((JsonArrayType)jsonType).getComponentType(),specifiedExample,specifiedExample2,context);
      arrayNode.add(componentNode);
      Context context2=new Context();
      context2.stack=context.stack;
      context2.currentIndex=1;
      JsonNode componentNode2=exampleNode(((JsonArrayType)jsonType).getComponentType(),specifiedExample2,specifiedExample,context2);
      arrayNode.add(componentNode2);
    }
    return arrayNode;
  }
 else   if (jsonType.isWholeNumber()) {
    Long example=12345L;
    if (specifiedExample != null) {
      try {
        example=Long.parseLong(specifiedExample);
      }
 catch (      NumberFormatException e) {
        this.type.getContext().getContext().getLogger().warn("String_Node_Str",specifiedExample);
      }
    }
    return JsonNodeFactory.instance.numberNode(example);
  }
 else   if (jsonType.isNumber()) {
    Double example=12345D;
    if (specifiedExample != null) {
      try {
        example=Double.parseDouble(specifiedExample);
      }
 catch (      NumberFormatException e) {
        this.type.getContext().getContext().getLogger().warn("String_Node_Str",specifiedExample);
      }
    }
    return JsonNodeFactory.instance.numberNode(example);
  }
 else   if (jsonType.isBoolean()) {
    boolean example=!"String_Node_Str".equals(specifiedExample);
    return JsonNodeFactory.instance.booleanNode(example);
  }
 else   if (jsonType.isString()) {
    String example=specifiedExample;
    if (example == null) {
      example="String_Node_Str";
    }
    return JsonNodeFactory.instance.textNode(example);
  }
 else {
    return JsonNodeFactory.instance.objectNode();
  }
}