Program: 118895
Project: 118895
Buggy source:
@SuppressWarnings("String_Node_Str") private void addPropertyParameters(final List<ElementParameter> listParam,final INode node,boolean advanced){
  ElementParameter param;
  EComponentCategory category=advanced ? EComponentCategory.ADVANCED : EComponentCategory.BASIC;
  ComponentProperties props=ComponentsUtils.getComponentProperties(getName());
  Form form=props.getForm(advanced ? "String_Node_Str" : "String_Node_Str");
  List<Widget> formWidgets=(List<Widget>)form.getWidgets();
  for (  Widget widget : formWidgets) {
    param=new ElementParameter(node);
    param.setCategory(category);
    param.setName(widget.getName());
    param.setDisplayName(widget.getDisplayName());
    SchemaElement se=null;
    NamedThing[] widgetProperties=widget.getProperties();
    if (widgetProperties[0] instanceof SchemaElement)     se=(SchemaElement)widgetProperties[0];
    param.setFieldType(EParameterFieldType.CHECK);
switch (widget.getWidgetType()) {
case DEFAULT:
      if (se == null)       throw new RuntimeException("String_Node_Str");
switch (se.getType()) {
case BOOLEAN:
      break;
case BYTE_ARRAY:
    break;
case DATE:
  break;
case DATETIME:
break;
case DECIMAL:
break;
case DOUBLE:
break;
case DYNAMIC:
break;
case ENUM:
break;
case FLOAT:
break;
case INT:
break;
case SCHEMA:
break;
case STRING:
break;
default :
break;
}
break;
case BUTTON:
break;
case COMPONENT_REFERENCE:
break;
case NAME_SELECTION_AREA:
break;
case NAME_SELECTION_REFERENCE:
break;
case SCHEMA_EDITOR:
break;
case SCHEMA_REFERENCE:
param.setFieldType(EParameterFieldType.SCHEMA_TYPE);
break;
default :
break;
}
param.setNumRow(widget.getRow());
if (se != null) {
param.setRequired(se.isRequired());
param.setValue(props.getValue(se));
Collection values=se.getPossibleValues();
}
param.setShow(widget.isVisible());
param.setReadOnly(false);
listParam.add(param);
}
}

Fixed version (ground truth):
@SuppressWarnings("String_Node_Str") private void addPropertyParameters(final List<ElementParameter> listParam,final INode node,boolean advanced){
  ElementParameter param;
  EComponentCategory category=advanced ? EComponentCategory.ADVANCED : EComponentCategory.BASIC;
  ComponentProperties props=ComponentsUtils.getComponentProperties(getName());
  Form form=props.getForm(advanced ? "String_Node_Str" : "String_Node_Str");
  List<Widget> formWidgets=form.getWidgets();
  for (  Widget widget : formWidgets) {
    param=new ElementParameter(node);
    param.setCategory(category);
    param.setName(widget.getName());
    param.setDisplayName(widget.getDisplayName());
    SchemaElement se=null;
    NamedThing[] widgetProperties=widget.getProperties();
    if (widgetProperties[0] instanceof SchemaElement) {
      se=(SchemaElement)widgetProperties[0];
    }
    EParameterFieldType fieldType=null;
switch (widget.getWidgetType()) {
case DEFAULT:
      if (se == null) {
        throw new RuntimeException("String_Node_Str");
      }
switch (se.getType()) {
case BOOLEAN:
      fieldType=EParameterFieldType.CHECK;
    break;
case BYTE_ARRAY:
  fieldType=EParameterFieldType.TEXT;
break;
case DATE:
fieldType=EParameterFieldType.DATE;
break;
case DATETIME:
fieldType=EParameterFieldType.DATE;
break;
case DECIMAL:
fieldType=EParameterFieldType.TEXT;
break;
case DOUBLE:
fieldType=EParameterFieldType.TEXT;
break;
case DYNAMIC:
fieldType=EParameterFieldType.TEXT;
break;
case ENUM:
fieldType=EParameterFieldType.CLOSED_LIST;
break;
case FLOAT:
fieldType=EParameterFieldType.TEXT;
break;
case INT:
fieldType=EParameterFieldType.TEXT;
break;
case SCHEMA:
fieldType=EParameterFieldType.SCHEMA_TYPE;
break;
case STRING:
fieldType=EParameterFieldType.TEXT;
break;
default :
fieldType=EParameterFieldType.TEXT;
break;
}
break;
case BUTTON:
break;
case COMPONENT_REFERENCE:
break;
case NAME_SELECTION_AREA:
break;
case NAME_SELECTION_REFERENCE:
break;
case SCHEMA_EDITOR:
break;
case SCHEMA_REFERENCE:
param.setFieldType(EParameterFieldType.SCHEMA_TYPE);
break;
default :
break;
}
param.setFieldType(fieldType);
param.setNumRow(widget.getRow());
if (se != null) {
param.setRequired(se.isRequired());
param.setValue(props.getValue(se));
Collection values=se.getPossibleValues();
}
param.setShow(widget.isVisible());
param.setReadOnly(false);
listParam.add(param);
}
}