Program: 60667
Project: 60667
Buggy source:
@Override protected void populateItem(final ListItem<ConnConfProperty> item){
  final ConnConfProperty property=item.getModelObject();
  final Label label=new Label("String_Node_Str",property.getSchema().getDisplayName() == null || property.getSchema().getDisplayName().isEmpty() ? property.getSchema().getName() : property.getSchema().getDisplayName());
  item.add(label);
  final FieldPanel field;
  boolean required=false;
  if (GUARDED_STRING.equalsIgnoreCase(property.getSchema().getType())) {
    field=new AjaxPasswordFieldPanel("String_Node_Str",label.getDefaultModelObjectAsString(),new Model(),true);
    ((PasswordTextField)field.getField()).setResetPassword(false);
    required=property.getSchema().isRequired();
  }
 else   if (BOOLEAN.equalsIgnoreCase(property.getSchema().getType())) {
    field=new AjaxCheckBoxPanel("String_Node_Str",label.getDefaultModelObjectAsString(),new Model(),true);
  }
 else {
    field=new AjaxTextFieldPanel("String_Node_Str",label.getDefaultModelObjectAsString(),new Model(),true);
    required=property.getSchema().isRequired();
  }
  field.setTitle(property.getSchema().getHelpMessage());
  if (required) {
    field.addRequiredLabel();
  }
  if (STRING_ARRAY.equalsIgnoreCase(property.getSchema().getType())) {
    field.removeRequiredLabel();
    item.add(new MultiValueSelectorPanel<String>("String_Node_Str",new PropertyModel<List<String>>(property,"String_Node_Str"),String.class,field));
  }
 else {
    field.setNewModel(property.getValues());
    item.add(field);
  }
  final AjaxCheckBoxPanel overridable=new AjaxCheckBoxPanel("String_Node_Str","String_Node_Str",new PropertyModel(property,"String_Node_Str"),true);
  item.add(overridable);
  connectorTO.getConfiguration().add(property);
}

Fixed version (ground truth):
@Override protected void populateItem(final ListItem<ConnConfProperty> item){
  final ConnConfProperty property=item.getModelObject();
  final Label label=new Label("String_Node_Str",property.getSchema().getDisplayName() == null || property.getSchema().getDisplayName().isEmpty() ? property.getSchema().getName() : property.getSchema().getDisplayName());
  item.add(label);
  final FieldPanel field;
  boolean required=false;
  boolean isArray=false;
  if (GUARDED_STRING.equalsIgnoreCase(property.getSchema().getType()) || GUARDED_BYTE_ARRAY.equalsIgnoreCase(property.getSchema().getType())) {
    field=new AjaxPasswordFieldPanel("String_Node_Str",label.getDefaultModelObjectAsString(),new Model(),true);
    ((PasswordTextField)field.getField()).setResetPassword(false);
    required=property.getSchema().isRequired();
  }
 else {
    Class propertySchemaClass;
    try {
      propertySchemaClass=ClassUtils.forName(property.getSchema().getType(),ClassUtils.getDefaultClassLoader());
    }
 catch (    Exception e) {
      LOG.error("String_Node_Str",e);
      propertySchemaClass=String.class;
    }
    if (NUMBER.contains(propertySchemaClass)) {
      field=new AjaxNumberFieldPanel("String_Node_Str",label.getDefaultModelObjectAsString(),new Model(),ClassUtils.resolvePrimitiveIfNecessary(propertySchemaClass),true);
      required=property.getSchema().isRequired();
    }
 else     if (Boolean.class.equals(propertySchemaClass) || boolean.class.equals(propertySchemaClass)) {
      field=new AjaxCheckBoxPanel("String_Node_Str",label.getDefaultModelObjectAsString(),new Model(),true);
    }
 else {
      field=new AjaxTextFieldPanel("String_Node_Str",label.getDefaultModelObjectAsString(),new Model(),true);
      required=property.getSchema().isRequired();
    }
    if (String[].class.equals(propertySchemaClass)) {
      isArray=true;
    }
  }
  field.setTitle(property.getSchema().getHelpMessage());
  if (isArray) {
    field.removeRequiredLabel();
    if (property.getValues().isEmpty()) {
      property.getValues().add(null);
    }
    item.add(new MultiValueSelectorPanel<String>("String_Node_Str",new PropertyModel<List<String>>(property,"String_Node_Str"),String.class,field));
  }
 else {
    if (required) {
      field.addRequiredLabel();
    }
    field.setNewModel(property.getValues());
    item.add(field);
  }
  final AjaxCheckBoxPanel overridable=new AjaxCheckBoxPanel("String_Node_Str","String_Node_Str",new PropertyModel(property,"String_Node_Str"),true);
  item.add(overridable);
  connectorTO.getConfiguration().add(property);
}