Program: 29681
Project: 29681
Buggy source:
public Property propertyFromTypedObject(ExtendedTypedObject obj){
  String type=obj.getType() == null ? null : obj.getType().toString();
  String format=obj.getFormat() == null ? null : obj.getFormat().toString();
  Property output=null;
  if ("String_Node_Str".equals(type)) {
    ArrayProperty am=new ArrayProperty();
    Items items=obj.getItems();
    if (items == null) {
      System.out.println("String_Node_Str");
      Json.prettyPrint(obj);
      items=new Items();
      items.setType("String_Node_Str");
    }
    type=items.getType() == null ? null : items.getType().toString();
    format=items.getFormat() == null ? null : items.getFormat().toString();
    Property innerType=PropertyBuilder.build(type,format,null);
    if (innerType != null)     am.setItems(innerType);
 else     if (items.getRef() != null) {
      am.setItems(new RefProperty(items.getRef()));
    }
 else     am.setItems(new RefProperty(type));
    output=am;
  }
 else {
    Map<String,Object> args=new HashMap<String,Object>();
    if (obj.getEnumValues() != null && obj.getEnumValues().size() > 0) {
      args.put("String_Node_Str",obj.getEnumValues());
    }
    if (obj.getMinimum() != null) {
      args.put("String_Node_Str",Double.parseDouble(obj.getMinimum()));
    }
    if (obj.getMaximum() != null) {
      args.put("String_Node_Str",Double.parseDouble(obj.getMaximum()));
    }
    Property i=PropertyBuilder.build(type,format,args);
    if (i != null)     output=i;
 else {
      if (obj.getRef() != null)       output=new RefProperty(obj.getRef());
 else       if (type != null)       output=new RefProperty(type);
 else       output=new RefProperty("String_Node_Str");
    }
  }
  return output;
}

Fixed version (ground truth):
public Property propertyFromTypedObject(ExtendedTypedObject obj){
  String type=obj.getType() == null ? null : obj.getType().toString();
  String format=obj.getFormat() == null ? null : obj.getFormat().toString();
  Property output=null;
  if ("String_Node_Str".equals(type)) {
    ArrayProperty am=new ArrayProperty();
    Items items=obj.getItems();
    if (items == null) {
      System.out.println("String_Node_Str");
      Json.prettyPrint(obj);
      items=new Items();
      items.setType("String_Node_Str");
    }
    type=items.getType() == null ? null : items.getType().toString();
    format=items.getFormat() == null ? null : items.getFormat().toString();
    Property innerType=PropertyBuilder.build(type,format,null);
    if (innerType != null)     am.setItems(innerType);
 else     if (items.getRef() != null) {
      am.setItems(new RefProperty(items.getRef()));
    }
 else     am.setItems(new RefProperty(type));
    output=am;
  }
 else {
    Map<String,Object> args=new HashMap<String,Object>();
    if (obj.getEnumValues() != null && obj.getEnumValues().size() > 0) {
      args.put("String_Node_Str",obj.getEnumValues());
    }
    if (obj.getMinimum() != null) {
      args.put("String_Node_Str",Double.parseDouble(obj.getMinimum()));
    }
    if (obj.getMaximum() != null) {
      args.put("String_Node_Str",Double.parseDouble(obj.getMaximum()));
    }
    Property i=PropertyBuilder.build(type,format,args);
    if (i != null)     output=i;
 else {
      if (obj.getRef() != null)       output=new RefProperty(obj.getRef());
 else       if (type != null && !type.equals("String_Node_Str"))       output=new RefProperty(type);
    }
  }
  return output;
}