Program: 62437
Project: 62437
Buggy source:
@Override protected JPanel createVariablesPanel(){
  JPanel variablesBorderPanel=new JPanel();
  BoxLayout layout=new BoxLayout(variablesBorderPanel,BoxLayout.PAGE_AXIS);
  variablesBorderPanel.setLayout(layout);
  AbstractButton addVariableButton=ToolButtonFactory.createButton(UIUtils.loadImageIcon(Bundle.Icon_Add()),false);
  addVariableButton.setText(Bundle.CTL_Button_Add_Variable_Text());
  addVariableButton.setMaximumSize(new Dimension(150,controlHeight));
  addVariableButton.setAlignmentX(Component.LEFT_ALIGNMENT);
  AbstractButton addDependentVariableButton=ToolButtonFactory.createButton(UIUtils.loadImageIcon(Bundle.Icon_Add()),false);
  addDependentVariableButton.setText(Bundle.CTL_Button_Add_PDVariable_Text());
  addDependentVariableButton.setMaximumSize(new Dimension(250,controlHeight));
  addDependentVariableButton.setAlignmentX(Component.LEFT_ALIGNMENT);
  JPanel buttonsPannel=new JPanel(new SpringLayout());
  buttonsPannel.add(addVariableButton);
  buttonsPannel.add(addDependentVariableButton);
  SpringUtilities.makeCompactGrid(buttonsPannel,1,2,0,0,0,0);
  buttonsPannel.setAlignmentX(Component.LEFT_ALIGNMENT);
  variablesBorderPanel.add(buttonsPannel);
  VariablesTable varTable=new VariablesTable(newOperatorDescriptor.getVariables(),context);
  varTable.setAutoResizeMode(JTable.AUTO_RESIZE_LAST_COLUMN);
  varTable.setRowHeight(controlHeight);
  int widths[]={controlHeight,(int)(formWidth * 0.3),(int)(formWidth * 0.7) - controlHeight};
  for (int i=0; i < widths.length; i++) {
    varTable.getColumnModel().getColumn(i).setPreferredWidth(widths[i]);
  }
  JScrollPane scrollPane=new JScrollPane(varTable);
  scrollPane.setAlignmentX(Component.LEFT_ALIGNMENT);
  variablesBorderPanel.add(scrollPane);
  variablesBorderPanel.setAlignmentX(Component.LEFT_ALIGNMENT);
  Dimension variablesPanelDimension=new Dimension((formWidth - 3 * DEFAULT_PADDING) / 2 - 2 * DEFAULT_PADDING,130);
  variablesBorderPanel.setMinimumSize(variablesPanelDimension);
  variablesBorderPanel.setMaximumSize(variablesPanelDimension);
  variablesBorderPanel.setPreferredSize(variablesPanelDimension);
  addVariableButton.addActionListener(e -> {
    newOperatorDescriptor.getVariables().add(new SystemVariable("String_Node_Str","String_Node_Str"));
    varTable.revalidate();
  }
);
  addDependentVariableButton.addActionListener(e -> {
    newOperatorDescriptor.getVariables().add(new SystemDependentVariable("String_Node_Str","String_Node_Str"));
    varTable.revalidate();
  }
);
  return variablesBorderPanel;
}

Fixed version (ground truth):
@Override protected JPanel createVariablesPanel(){
  JPanel variablesBorderPanel=new JPanel();
  BoxLayout layout=new BoxLayout(variablesBorderPanel,BoxLayout.PAGE_AXIS);
  variablesBorderPanel.setLayout(layout);
  AbstractButton addVariableButton=ToolButtonFactory.createButton(UIUtils.loadImageIcon(Bundle.Icon_Add()),false);
  addVariableButton.setText(Bundle.CTL_Button_Add_Variable_Text());
  addVariableButton.setMaximumSize(new Dimension(150,controlHeight));
  addVariableButton.setAlignmentX(Component.LEFT_ALIGNMENT);
  AbstractButton addDependentVariableButton=ToolButtonFactory.createButton(UIUtils.loadImageIcon(Bundle.Icon_Add()),false);
  addDependentVariableButton.setText(Bundle.CTL_Button_Add_PDVariable_Text());
  addDependentVariableButton.setMaximumSize(new Dimension(250,controlHeight));
  addDependentVariableButton.setAlignmentX(Component.LEFT_ALIGNMENT);
  JPanel buttonsPannel=new JPanel(new SpringLayout());
  buttonsPannel.add(addVariableButton);
  buttonsPannel.add(addDependentVariableButton);
  SpringUtilities.makeCompactGrid(buttonsPannel,1,2,0,0,0,0);
  buttonsPannel.setAlignmentX(Component.LEFT_ALIGNMENT);
  variablesBorderPanel.add(buttonsPannel);
  varTable.setAutoResizeMode(JTable.AUTO_RESIZE_LAST_COLUMN);
  varTable.setRowHeight(controlHeight);
  int widths[]={controlHeight,(int)(formWidth * 0.3),(int)(formWidth * 0.7) - controlHeight};
  for (int i=0; i < widths.length; i++) {
    varTable.getColumnModel().getColumn(i).setPreferredWidth(widths[i]);
  }
  JScrollPane scrollPane=new JScrollPane(varTable);
  scrollPane.setAlignmentX(Component.LEFT_ALIGNMENT);
  variablesBorderPanel.add(scrollPane);
  variablesBorderPanel.setAlignmentX(Component.LEFT_ALIGNMENT);
  Dimension variablesPanelDimension=new Dimension((formWidth - 3 * DEFAULT_PADDING) / 2 - 2 * DEFAULT_PADDING,130);
  variablesBorderPanel.setMinimumSize(variablesPanelDimension);
  variablesBorderPanel.setMaximumSize(variablesPanelDimension);
  variablesBorderPanel.setPreferredSize(variablesPanelDimension);
  addVariableButton.addActionListener(e -> {
    newOperatorDescriptor.getVariables().add(new SystemVariable("String_Node_Str","String_Node_Str"));
    varTable.revalidate();
  }
);
  addDependentVariableButton.addActionListener(e -> {
    newOperatorDescriptor.getVariables().add(new SystemDependentVariable("String_Node_Str","String_Node_Str"));
    varTable.revalidate();
  }
);
  return variablesBorderPanel;
}