Program: 120169
Project: 120169
Buggy source:
@Override public void addComponents(boolean forceRedraw){
  if (conSchema()) {
    disposeChildren();
    curRowSize=0;
    List<? extends IElementParameter> listParam=((Connection)elem).getSource().getElementParameters();
    generator.initController(this);
    for (    IElementParameter cur : listParam) {
      if (cur.getCategory() == this.section) {
        if ((cur.getFieldType() == EParameterFieldType.SCHEMA_TYPE) && (cur.getContext().equals(((Connection)elem).getConnectorName()))) {
          AbstractElementPropertySectionController contorller=generator.getController(EParameterFieldType.SCHEMA_TYPE,this);
          contorller.createControl(composite,cur,1,1,0,null);
        }
      }
    }
    if (((Connection)elem).getLineStyle().hasConnectionCategory(IConnectionCategory.DATA)) {
      FormData data=new FormData();
      data.left=new FormAttachment(0,ITabbedPropertyConstants.HSPACE);
      data.right=new FormAttachment(100,-ITabbedPropertyConstants.HSPACE);
      data.top=new FormAttachment(0,curRowSize + ITabbedPropertyConstants.VSPACE);
      data.width=300;
      int tableHeight=160;
      data.height=tableHeight;
      IMetadataTable outputMetaTable=((Connection)elem).getMetadataTable();
      if (outputMetaTable != null && this.section == EComponentCategory.BASIC) {
        metadataTableEditor=new MetadataTableEditor(outputMetaTable,"String_Node_Str" + ((Connection)elem).getSource().getElementName() + "String_Node_Str");
        metadataTableEditorView=new MetadataTableEditorView(composite,SWT.NONE,metadataTableEditor,true,false,true,false);
        MetadataDialog.initializeMetadataTableView(metadataTableEditorView,((Connection)elem).getSource(),outputMetaTable);
        metadataTableEditorView.initGraphicComponents();
        metadataTableEditorView.getExtendedTableViewer().setCommandStack(getCommandStack());
        CustomTableManager.addCustomManagementToTable(metadataTableEditorView,true);
        Composite compositeEditorView=metadataTableEditorView.getMainComposite();
        compositeEditorView.setLayoutData(data);
        curRowSize=tableHeight + ITabbedPropertyConstants.VSPACE + curRowSize;
      }
    }
    super.addComponents(forceRedraw,false,curRowSize);
  }
 else   if (conIf()) {
    super.addComponents(forceRedraw);
  }
 else   if (resumingIf()) {
    super.addComponents(forceRedraw);
  }
 else {
    disposeChildren();
  }
}

Fixed version (ground truth):
@Override public void addComponents(boolean forceRedraw){
  if (conSchema()) {
    disposeChildren();
    curRowSize=0;
    List<? extends IElementParameter> listParam=((Connection)elem).getSource().getElementParameters();
    generator.initController(this);
    for (    IElementParameter cur : listParam) {
      if (cur.getCategory() == this.section) {
        if ((cur.getFieldType() == EParameterFieldType.SCHEMA_TYPE) && (cur.getContext().equals(((Connection)elem).getConnectorName()))) {
          AbstractElementPropertySectionController contorller=generator.getController(EParameterFieldType.SCHEMA_TYPE,this);
          contorller.createControl(composite,cur,1,1,0,null);
        }
      }
    }
    if (((Connection)elem).getLineStyle().hasConnectionCategory(IConnectionCategory.DATA)) {
      IMetadataTable outputMetaTable=((Connection)elem).getMetadataTable();
      if (outputMetaTable != null && this.section == EComponentCategory.BASIC) {
        metadataTableEditor=new MetadataTableEditor(outputMetaTable,"String_Node_Str" + ((Connection)elem).getSource().getElementName() + "String_Node_Str");
        metadataTableEditorView=new MetadataTableEditorView(composite,SWT.NONE,metadataTableEditor,true,false,true,false);
        MetadataDialog.initializeMetadataTableView(metadataTableEditorView,((Connection)elem).getSource(),outputMetaTable);
        metadataTableEditorView.initGraphicComponents();
        metadataTableEditorView.getExtendedTableViewer().setCommandStack(getCommandStack());
        CustomTableManager.addCustomManagementToTable(metadataTableEditorView,true);
        Composite compositeEditorView=metadataTableEditorView.getMainComposite();
        Table table=metadataTableEditorView.getTable();
        FormData data=new FormData();
        data.left=new FormAttachment(0,ITabbedPropertyConstants.HSPACE);
        data.right=new FormAttachment(100,-ITabbedPropertyConstants.HSPACE);
        data.top=new FormAttachment(0,curRowSize + ITabbedPropertyConstants.VSPACE);
        data.width=300;
        int tableHeight=160;
        int maxTableHeight=table.getHeaderHeight() + 22 * table.getItemHeight();
        int rows=outputMetaTable.getListColumns().size();
        int currentHeightEditor=table.getHeaderHeight() + rows * table.getItemHeight() + 50;
        if (currentHeightEditor > tableHeight) {
          tableHeight=currentHeightEditor;
        }
        if (currentHeightEditor > maxTableHeight) {
          tableHeight=maxTableHeight;
        }
        data.height=tableHeight;
        compositeEditorView.setLayoutData(data);
        curRowSize=tableHeight + ITabbedPropertyConstants.VSPACE + curRowSize;
      }
    }
    super.addComponents(forceRedraw,false,curRowSize);
  }
 else   if (conIf()) {
    super.addComponents(forceRedraw);
  }
 else   if (resumingIf()) {
    super.addComponents(forceRedraw);
  }
 else {
    disposeChildren();
  }
}