nus-yam/ex-repair huggingface dataset:
Program: 36450
Project: 36450
Buggy source:
/** 
 * Notification from the <code>UIManager</code> that the look and feel (L&F) has changed. Replaces the current UI object with the latest version from the <code>UIManager</code>.
 * @see JComponent#updateUI
 */
public void updateUI(){
  setUI((TableHeaderUI)UIManager.getUI(this));
  TableCellRenderer renderer=getDefaultRenderer();
  if (renderer instanceof Component) {
    SwingUtilities.updateComponentTreeUI((Component)renderer);
  }
}

Fixed version (ground truth):
/** 
 * Notification from the <code>UIManager</code> that the look and feel (L&amp;F) has changed. Replaces the current UI object with the latest version from the <code>UIManager</code>.
 * @see JComponent#updateUI
 */
public void updateUI(){
  setUI((TableHeaderUI)UIManager.getUI(this));
  TableCellRenderer renderer=getDefaultRenderer();
  if (renderer instanceof Component) {
    SwingUtilities.updateComponentTreeUI((Component)renderer);
  }
}
Program: 36451
Project: 36451
Buggy source:
/** 
 * Returns the suffix used to construct the name of the look and feel (L&F) class used to render this component.
 * @return the string "TableHeaderUI"
 * @return "TableHeaderUI"
 * @see JComponent#getUIClassID
 * @see UIDefaults#getUI
 */
public String getUIClassID(){
  return uiClassID;
}

Fixed version (ground truth):
/** 
 * Returns the suffix used to construct the name of the look and feel (L&amp;F) class used to render this component.
 * @return the string "TableHeaderUI"
 * @return "TableHeaderUI"
 * @see JComponent#getUIClassID
 * @see UIDefaults#getUI
 */
public String getUIClassID(){
  return uiClassID;
}
Program: 36452
Project: 36452
Buggy source:
/** 
 * Sets the look and feel (L&F) object that renders this component.
 * @param ui  the <code>TableHeaderUI</code> L&F object
 * @see UIDefaults#getUI
 */
public void setUI(TableHeaderUI ui){
  if (this.ui != ui) {
    super.setUI(ui);
    repaint();
  }
}

Fixed version (ground truth):
/** 
 * Sets the look and feel (L&amp;F) object that renders this component.
 * @param ui  the <code>TableHeaderUI</code> L&amp;F object
 * @see UIDefaults#getUI
 */
public void setUI(TableHeaderUI ui){
  if (this.ui != ui) {
    super.setUI(ui);
    repaint();
  }
}
Program: 36454
Project: 36454
Buggy source:
/** 
 * Provides a hint to the look and feel as to the <code>KeyEvent.VK</code> constant that can be used as a mnemonic to access the panel. A return value <= 0 indicates there is no mnemonic. <p> The return value here is a hint, it is ultimately up to the look and feel to honor the return value in some meaningful way. <p> This implementation returns 0, indicating the <code>AbstractColorChooserPanel</code> does not support a mnemonic, subclasses wishing a mnemonic will need to override this.
 * @return KeyEvent.VK constant identifying the mnemonic; <= 0 for nomnemonic
 * @see #getDisplayedMnemonicIndex
 * @since 1.4
 */
public int getMnemonic(){
  return 0;
}

Fixed version (ground truth):
/** 
 * Provides a hint to the look and feel as to the <code>KeyEvent.VK</code> constant that can be used as a mnemonic to access the panel. A return value &lt;= 0 indicates there is no mnemonic. <p> The return value here is a hint, it is ultimately up to the look and feel to honor the return value in some meaningful way. <p> This implementation returns 0, indicating the <code>AbstractColorChooserPanel</code> does not support a mnemonic, subclasses wishing a mnemonic will need to override this.
 * @return KeyEvent.VK constant identifying the mnemonic; &lt;= 0 for nomnemonic
 * @see #getDisplayedMnemonicIndex
 * @since 1.4
 */
public int getMnemonic(){
  return 0;
}
Program: 36455
Project: 36455
Buggy source:
/** 
 * Provides a hint to the look and feel as to the index of the character in <code>getDisplayName</code> that should be visually identified as the mnemonic. The look and feel should only use this if <code>getMnemonic</code> returns a value > 0. <p> The return value here is a hint, it is ultimately up to the look and feel to honor the return value in some meaningful way. For example, a look and feel may wish to render each <code>AbstractColorChooserPanel</code> in a <code>JTabbedPane</code>, and further use this return value to underline a character in the <code>getDisplayName</code>. <p> This implementation returns -1, indicating the <code>AbstractColorChooserPanel</code> does not support a mnemonic, subclasses wishing a mnemonic will need to override this.
 * @return Character index to render mnemonic for; -1 to provide novisual identifier for this panel.
 * @see #getMnemonic
 * @since 1.4
 */
public int getDisplayedMnemonicIndex(){
  return -1;
}

Fixed version (ground truth):
/** 
 * Provides a hint to the look and feel as to the index of the character in <code>getDisplayName</code> that should be visually identified as the mnemonic. The look and feel should only use this if <code>getMnemonic</code> returns a value &gt; 0. <p> The return value here is a hint, it is ultimately up to the look and feel to honor the return value in some meaningful way. For example, a look and feel may wish to render each <code>AbstractColorChooserPanel</code> in a <code>JTabbedPane</code>, and further use this return value to underline a character in the <code>getDisplayName</code>. <p> This implementation returns -1, indicating the <code>AbstractColorChooserPanel</code> does not support a mnemonic, subclasses wishing a mnemonic will need to override this.
 * @return Character index to render mnemonic for; -1 to provide novisual identifier for this panel.
 * @see #getMnemonic
 * @since 1.4
 */
public int getDisplayedMnemonicIndex(){
  return -1;
}
Program: 36456
Project: 36456
Buggy source:
/** 
 * Fetches the location of other end of a logical selection.  If there is no selection, this will be the same as dot.
 * @return the mark >= 0
 */
public abstract int getMark();

Fixed version (ground truth):
/** 
 * Fetches the location of other end of a logical selection.  If there is no selection, this will be the same as dot.
 * @return the mark &gt;= 0
 */
public abstract int getMark();
Program: 36457
Project: 36457
Buggy source:
/** 
 * Fetches the location of the caret.
 * @return the dot >= 0
 */
public abstract int getDot();

Fixed version (ground truth):
/** 
 * Fetches the location of the caret.
 * @return the dot &gt;= 0
 */
public abstract int getDot();
Program: 36458
Project: 36458
Buggy source:
/** 
 * Fetches the index within the element represented. This is the location that children were added and/or removed.
 * @return the index >= 0
 */
public int getIndex();

Fixed version (ground truth):
/** 
 * Fetches the index within the element represented. This is the location that children were added and/or removed.
 * @return the index &gt;= 0
 */
public int getIndex();
Program: 36459
Project: 36459
Buggy source:
/** 
 * Returns the offset within the document of the start of the change.
 * @return the offset >= 0
 */
public int getOffset();

Fixed version (ground truth):
/** 
 * Returns the offset within the document of the start of the change.
 * @return the offset &gt;= 0
 */
public int getOffset();
Program: 36460
Project: 36460
Buggy source:
/** 
 * Returns the length of the change.
 * @return the length >= 0
 */
public int getLength();

Fixed version (ground truth):
/** 
 * Returns the length of the change.
 * @return the length &gt;= 0
 */
public int getLength();
Program: 36461
Project: 36461
Buggy source:
/** 
 * Constructs a ListDataEvent object. If index0 is > index1, index0 and index1 will be swapped such that index0 will always be <= index1.
 * @param source  the source Object (typically <code>this</code>)
 * @param type    an int specifying {@link #CONTENTS_CHANGED},  {@link #INTERVAL_ADDED}, or   {@link #INTERVAL_REMOVED}
 * @param index0  one end of the new interval
 * @param index1  the other end of the new interval
 */
public ListDataEvent(Object source,int type,int index0,int index1){
  super(source);
  this.type=type;
  this.index0=Math.min(index0,index1);
  this.index1=Math.max(index0,index1);
}

Fixed version (ground truth):
/** 
 * Constructs a ListDataEvent object. If index0 is &gt; index1, index0 and index1 will be swapped such that index0 will always be &lt;= index1.
 * @param source  the source Object (typically <code>this</code>)
 * @param type    an int specifying {@link #CONTENTS_CHANGED},  {@link #INTERVAL_ADDED}, or   {@link #INTERVAL_REMOVED}
 * @param index0  one end of the new interval
 * @param index1  the other end of the new interval
 */
public ListDataEvent(Object source,int type,int index0,int index1){
  super(source);
  this.type=type;
  this.index0=Math.min(index0,index1);
  this.index1=Math.max(index0,index1);
}
Program: 36462
Project: 36462
Buggy source:
/** 
 * Notification from the <code>UIManager</code> that the look and feel [L&F] has changed. Replaces the current UI object with the latest version from the <code>UIManager</code>.
 * @see JComponent#updateUI
 */
public void updateUI(){
  super.updateUI();
  setForeground(null);
  setBackground(null);
}

Fixed version (ground truth):
/** 
 * Notification from the <code>UIManager</code> that the look and feel [L&amp;F] has changed. Replaces the current UI object with the latest version from the <code>UIManager</code>.
 * @see JComponent#updateUI
 */
public void updateUI(){
  super.updateUI();
  setForeground(null);
  setBackground(null);
}
Program: 36463
Project: 36463
Buggy source:
/** 
 * Moves one or more rows from the inclusive range <code>start</code> to <code>end</code> to the <code>to</code> position in the model. After the move, the row that was at index <code>start</code> will be at index <code>to</code>. This method will send a <code>tableChanged</code> notification message to all the listeners. <p> <pre> Examples of moves: <p> 1. moveRow(1,3,5); a|B|C|D|e|f|g|h|i|j|k   - before a|e|f|g|h|B|C|D|i|j|k   - after <p> 2. moveRow(6,7,1); a|b|c|d|e|f|G|H|i|j|k   - before a|G|H|b|c|d|e|f|i|j|k   - after <p> </pre>
 * @param start       the starting row index to be moved
 * @param end         the ending row index to be moved
 * @param to          the destination of the rows to be moved
 * @exception ArrayIndexOutOfBoundsException  if any of the elementswould be moved out of the table's range
 */
public void moveRow(int start,int end,int to){
  int shift=to - start;
  int first, last;
  if (shift < 0) {
    first=to;
    last=end;
  }
 else {
    first=start;
    last=to + end - start;
  }
  rotate(dataVector,first,last + 1,shift);
  fireTableRowsUpdated(first,last);
}

Fixed version (ground truth):
/** 
 * Moves one or more rows from the inclusive range <code>start</code> to <code>end</code> to the <code>to</code> position in the model. After the move, the row that was at index <code>start</code> will be at index <code>to</code>. This method will send a <code>tableChanged</code> notification message to all the listeners. <p> <pre> Examples of moves: 1. moveRow(1,3,5); a|B|C|D|e|f|g|h|i|j|k   - before a|e|f|g|h|B|C|D|i|j|k   - after 2. moveRow(6,7,1); a|b|c|d|e|f|G|H|i|j|k   - before a|G|H|b|c|d|e|f|i|j|k   - after </pre>
 * @param start       the starting row index to be moved
 * @param end         the ending row index to be moved
 * @param to          the destination of the rows to be moved
 * @exception ArrayIndexOutOfBoundsException  if any of the elementswould be moved out of the table's range
 */
public void moveRow(int start,int end,int to){
  int shift=to - start;
  int first, last;
  if (shift < 0) {
    first=to;
    last=end;
  }
 else {
    first=start;
    last=to + end - start;
  }
  rotate(dataVector,first,last + 1,shift);
  fireTableRowsUpdated(first,last);
}
Program: 36464
Project: 36464
Buggy source:
/** 
 * Returns the look and feel (L&F) object that renders this component.
 * @return the <code>TableHeaderUI</code> object that renders this component
 */
public TableHeaderUI getUI(){
  return (TableHeaderUI)ui;
}

Fixed version (ground truth):
/** 
 * Returns the look and feel (L&amp;F) object that renders this component.
 * @return the <code>TableHeaderUI</code> object that renders this component
 */
public TableHeaderUI getUI(){
  return (TableHeaderUI)ui;
}
Program: 36465
Project: 36465
Buggy source:
/** 
 * Notification from the <code>UIManager</code> that the look and feel (L&F) has changed. Replaces the current UI object with the latest version from the <code>UIManager</code>.
 * @see JComponent#updateUI
 */
public void updateUI(){
  setUI((TableHeaderUI)UIManager.getUI(this));
  TableCellRenderer renderer=getDefaultRenderer();
  if (renderer instanceof Component) {
    SwingUtilities.updateComponentTreeUI((Component)renderer);
  }
}

Fixed version (ground truth):
/** 
 * Notification from the <code>UIManager</code> that the look and feel (L&amp;F) has changed. Replaces the current UI object with the latest version from the <code>UIManager</code>.
 * @see JComponent#updateUI
 */
public void updateUI(){
  setUI((TableHeaderUI)UIManager.getUI(this));
  TableCellRenderer renderer=getDefaultRenderer();
  if (renderer instanceof Component) {
    SwingUtilities.updateComponentTreeUI((Component)renderer);
  }
}
Program: 36466
Project: 36466
Buggy source:
/** 
 * Returns the suffix used to construct the name of the look and feel (L&F) class used to render this component.
 * @return the string "TableHeaderUI"
 * @return "TableHeaderUI"
 * @see JComponent#getUIClassID
 * @see UIDefaults#getUI
 */
public String getUIClassID(){
  return uiClassID;
}

Fixed version (ground truth):
/** 
 * Returns the suffix used to construct the name of the look and feel (L&amp;F) class used to render this component.
 * @return the string "TableHeaderUI"
 * @return "TableHeaderUI"
 * @see JComponent#getUIClassID
 * @see UIDefaults#getUI
 */
public String getUIClassID(){
  return uiClassID;
}
Program: 36467
Project: 36467
Buggy source:
/** 
 * Sets the look and feel (L&F) object that renders this component.
 * @param ui  the <code>TableHeaderUI</code> L&F object
 * @see UIDefaults#getUI
 */
public void setUI(TableHeaderUI ui){
  if (this.ui != ui) {
    super.setUI(ui);
    repaint();
  }
}

Fixed version (ground truth):
/** 
 * Sets the look and feel (L&amp;F) object that renders this component.
 * @param ui  the <code>TableHeaderUI</code> L&amp;F object
 * @see UIDefaults#getUI
 */
public void setUI(TableHeaderUI ui){
  if (this.ui != ui) {
    super.setUI(ui);
    repaint();
  }
}
Program: 36469
Project: 36469
Buggy source:
/** 
 * @inheritDoc
 */
@Override public void paintBorder(SynthContext context,Graphics g,int x,int y,int w,int h){
  context.getPainter().paintCheckBoxMenuItemBorder(context,g,x,y,w,h);
}

Fixed version (ground truth):
/** 
 * {@inheritDoc}
 */
@Override public void paintBorder(SynthContext context,Graphics g,int x,int y,int w,int h){
  context.getPainter().paintCheckBoxMenuItemBorder(context,g,x,y,w,h);
}
Program: 36470
Project: 36470
Buggy source:
/** 
 * @inheritDoc
 */
@Override protected String getPropertyPrefix(){
  return "String_Node_Str";
}

Fixed version (ground truth):
/** 
 * {@inheritDoc}
 */
@Override protected String getPropertyPrefix(){
  return "String_Node_Str";
}
Program: 36471
Project: 36471
Buggy source:
/** 
 * @inheritDoc
 */
@Override public void paintBorder(SynthContext context,Graphics g,int x,int y,int w,int h){
  context.getPainter().paintCheckBoxBorder(context,g,x,y,w,h);
}

Fixed version (ground truth):
/** 
 * {@inheritDoc}
 */
@Override public void paintBorder(SynthContext context,Graphics g,int x,int y,int w,int h){
  context.getPainter().paintCheckBoxBorder(context,g,x,y,w,h);
}
Program: 36472
Project: 36472
Buggy source:
/** 
 * @inheritDoc
 */
@Override protected String getPropertyPrefix(){
  return "String_Node_Str";
}

Fixed version (ground truth):
/** 
 * {@inheritDoc}
 */
@Override protected String getPropertyPrefix(){
  return "String_Node_Str";
}
Program: 36473
Project: 36473
Buggy source:
/** 
 * @inheritDoc
 */
@Override protected void installDefaults(){
  super.installDefaults();
  updateStyle(chooser);
}

Fixed version (ground truth):
/** 
 * {@inheritDoc}
 */
@Override protected void installDefaults(){
  super.installDefaults();
  updateStyle(chooser);
}
Program: 36474
Project: 36474
Buggy source:
/** 
 * @inheritDoc
 */
@Override protected void uninstallListeners(){
  chooser.removePropertyChangeListener(this);
  super.uninstallListeners();
}

Fixed version (ground truth):
/** 
 * {@inheritDoc}
 */
@Override protected void uninstallListeners(){
  chooser.removePropertyChangeListener(this);
  super.uninstallListeners();
}
Program: 36475
Project: 36475
Buggy source:
/** 
 * @inheritDoc
 */
@Override protected void uninstallDefaults(){
  SynthContext context=getContext(chooser,ENABLED);
  style.uninstallDefaults(context);
  context.dispose();
  style=null;
  super.uninstallDefaults();
}

Fixed version (ground truth):
/** 
 * {@inheritDoc}
 */
@Override protected void uninstallDefaults(){
  SynthContext context=getContext(chooser,ENABLED);
  style.uninstallDefaults(context);
  context.dispose();
  style=null;
  super.uninstallDefaults();
}
Program: 36476
Project: 36476
Buggy source:
/** 
 * @inheritDoc
 */
@Override public void paintBorder(SynthContext context,Graphics g,int x,int y,int w,int h){
  context.getPainter().paintColorChooserBorder(context,g,x,y,w,h);
}

Fixed version (ground truth):
/** 
 * {@inheritDoc}
 */
@Override public void paintBorder(SynthContext context,Graphics g,int x,int y,int w,int h){
  context.getPainter().paintColorChooserBorder(context,g,x,y,w,h);
}
Program: 36477
Project: 36477
Buggy source:
/** 
 * @inheritDoc
 */
@Override protected void installListeners(){
  super.installListeners();
  chooser.addPropertyChangeListener(this);
}

Fixed version (ground truth):
/** 
 * {@inheritDoc}
 */
@Override protected void installListeners(){
  super.installListeners();
  chooser.addPropertyChangeListener(this);
}
Program: 36478
Project: 36478
Buggy source:
/** 
 * @inheritDoc
 */
@Override public void propertyChange(PropertyChangeEvent e){
  if (SynthLookAndFeel.shouldUpdateStyle(e)) {
    updateStyle((JColorChooser)e.getSource());
  }
}

Fixed version (ground truth):
/** 
 * {@inheritDoc}
 */
@Override public void propertyChange(PropertyChangeEvent e){
  if (SynthLookAndFeel.shouldUpdateStyle(e)) {
    updateStyle((JColorChooser)e.getSource());
  }
}
Program: 36479
Project: 36479
Buggy source:
/** 
 * @inheritDoc
 */
@Override protected AbstractColorChooserPanel[] createDefaultChoosers(){
  SynthContext context=getContext(chooser,ENABLED);
  AbstractColorChooserPanel[] panels=(AbstractColorChooserPanel[])context.getStyle().get(context,"String_Node_Str");
  context.dispose();
  if (panels == null) {
    panels=ColorChooserComponentFactory.getDefaultChooserPanels();
  }
  return panels;
}

Fixed version (ground truth):
/** 
 * {@inheritDoc}
 */
@Override protected AbstractColorChooserPanel[] createDefaultChoosers(){
  SynthContext context=getContext(chooser,ENABLED);
  AbstractColorChooserPanel[] panels=(AbstractColorChooserPanel[])context.getStyle().get(context,"String_Node_Str");
  context.dispose();
  if (panels == null) {
    panels=ColorChooserComponentFactory.getDefaultChooserPanels();
  }
  return panels;
}
Program: 36480
Project: 36480
Buggy source:
/** 
 * @inheritDoc
 */
@Override protected ComboBoxEditor createEditor(){
  return new SynthComboBoxEditor();
}

Fixed version (ground truth):
/** 
 * {@inheritDoc}
 */
@Override protected ComboBoxEditor createEditor(){
  return new SynthComboBoxEditor();
}
Program: 36481
Project: 36481
Buggy source:
/** 
 * @inheritDoc
 */
@Override public void paintBorder(SynthContext context,Graphics g,int x,int y,int w,int h){
  context.getPainter().paintComboBoxBorder(context,g,x,y,w,h);
}

Fixed version (ground truth):
/** 
 * {@inheritDoc}
 */
@Override public void paintBorder(SynthContext context,Graphics g,int x,int y,int w,int h){
  context.getPainter().paintComboBoxBorder(context,g,x,y,w,h);
}
Program: 36482
Project: 36482
Buggy source:
/** 
 * @inheritDoc Overridden to ensure that ButtonHandler is created prior to any of the other installXXX methods, since several of them reference buttonHandler.
 */
@Override public void installUI(JComponent c){
  buttonHandler=new ButtonHandler();
  super.installUI(c);
}

Fixed version (ground truth):
/** 
 * {@inheritDoc}Overridden to ensure that ButtonHandler is created prior to any of the other installXXX methods, since several of them reference buttonHandler.
 */
@Override public void installUI(JComponent c){
  buttonHandler=new ButtonHandler();
  super.installUI(c);
}
Program: 36483
Project: 36483
Buggy source:
/** 
 * @inheritDoc
 */
@Override protected void installListeners(){
  comboBox.addPropertyChangeListener(this);
  comboBox.addMouseListener(buttonHandler);
  editorFocusHandler=new EditorFocusHandler(comboBox);
  super.installListeners();
}

Fixed version (ground truth):
/** 
 * {@inheritDoc}
 */
@Override protected void installListeners(){
  comboBox.addPropertyChangeListener(this);
  comboBox.addMouseListener(buttonHandler);
  editorFocusHandler=new EditorFocusHandler(comboBox);
  super.installListeners();
}
Program: 36484
Project: 36484
Buggy source:
/** 
 * @inheritDoc
 */
@Override protected JButton createArrowButton(){
  SynthArrowButton button=new SynthArrowButton(SwingConstants.SOUTH);
  button.setName("String_Node_Str");
  button.setModel(buttonHandler);
  return button;
}

Fixed version (ground truth):
/** 
 * {@inheritDoc}
 */
@Override protected JButton createArrowButton(){
  SynthArrowButton button=new SynthArrowButton(SwingConstants.SOUTH);
  button.setName("String_Node_Str");
  button.setModel(buttonHandler);
  return button;
}
Program: 36485
Project: 36485
Buggy source:
/** 
 * @inheritDoc
 */
@Override protected ListCellRenderer createRenderer(){
  return new SynthComboBoxRenderer();
}

Fixed version (ground truth):
/** 
 * {@inheritDoc}
 */
@Override protected ListCellRenderer createRenderer(){
  return new SynthComboBoxRenderer();
}
Program: 36486
Project: 36486
Buggy source:
/** 
 * @inheritDoc
 */
@Override protected void uninstallListeners(){
  editorFocusHandler.unregister();
  comboBox.removePropertyChangeListener(this);
  comboBox.removeMouseListener(buttonHandler);
  buttonHandler.pressed=false;
  buttonHandler.over=false;
  super.uninstallListeners();
}

Fixed version (ground truth):
/** 
 * {@inheritDoc}
 */
@Override protected void uninstallListeners(){
  editorFocusHandler.unregister();
  comboBox.removePropertyChangeListener(this);
  comboBox.removeMouseListener(buttonHandler);
  buttonHandler.pressed=false;
  buttonHandler.over=false;
  super.uninstallListeners();
}
Program: 36487
Project: 36487
Buggy source:
/** 
 * @inheritDoc
 */
@Override protected void uninstallDefaults(){
  SynthContext context=getContext(comboBox,ENABLED);
  style.uninstallDefaults(context);
  context.dispose();
  style=null;
}

Fixed version (ground truth):
/** 
 * {@inheritDoc}
 */
@Override protected void uninstallDefaults(){
  SynthContext context=getContext(comboBox,ENABLED);
  style.uninstallDefaults(context);
  context.dispose();
  style=null;
}
Program: 36488
Project: 36488
Buggy source:
/** 
 * @inheritDoc
 */
@Override protected ComboPopup createPopup(){
  SynthComboPopup p=new SynthComboPopup(comboBox);
  p.addPopupMenuListener(buttonHandler);
  return p;
}

Fixed version (ground truth):
/** 
 * {@inheritDoc}
 */
@Override protected ComboPopup createPopup(){
  SynthComboPopup p=new SynthComboPopup(comboBox);
  p.addPopupMenuListener(buttonHandler);
  return p;
}
Program: 36489
Project: 36489
Buggy source:
/** 
 * @inheritDoc
 */
@Override public void uninstallUI(JComponent c){
  if (popup instanceof SynthComboPopup) {
    ((SynthComboPopup)popup).removePopupMenuListener(buttonHandler);
  }
  super.uninstallUI(c);
  buttonHandler=null;
}

Fixed version (ground truth):
/** 
 * {@inheritDoc}
 */
@Override public void uninstallUI(JComponent c){
  if (popup instanceof SynthComboPopup) {
    ((SynthComboPopup)popup).removePopupMenuListener(buttonHandler);
  }
  super.uninstallUI(c);
  buttonHandler=null;
}
Program: 36490
Project: 36490
Buggy source:
/** 
 * @inheritDoc
 */
@Override public Dimension getMaximumSize(JComponent c){
  if (c.getComponentCount() > 0 && c.getLayout() != null) {
    return null;
  }
  AbstractButton b=(AbstractButton)c;
  SynthContext ss=getContext(c);
  Dimension size=ss.getStyle().getGraphicsUtils(ss).getMaximumSize(ss,ss.getStyle().getFont(ss),b.getText(),getSizingIcon(b),b.getHorizontalAlignment(),b.getVerticalAlignment(),b.getHorizontalTextPosition(),b.getVerticalTextPosition(),b.getIconTextGap(),b.getDisplayedMnemonicIndex());
  ss.dispose();
  return size;
}

Fixed version (ground truth):
/** 
 * {@inheritDoc}
 */
@Override public Dimension getMaximumSize(JComponent c){
  if (c.getComponentCount() > 0 && c.getLayout() != null) {
    return null;
  }
  AbstractButton b=(AbstractButton)c;
  SynthContext ss=getContext(c);
  Dimension size=ss.getStyle().getGraphicsUtils(ss).getMaximumSize(ss,ss.getStyle().getFont(ss),b.getText(),getSizingIcon(b),b.getHorizontalAlignment(),b.getVerticalAlignment(),b.getHorizontalTextPosition(),b.getVerticalTextPosition(),b.getIconTextGap(),b.getDisplayedMnemonicIndex());
  ss.dispose();
  return size;
}
Program: 36491
Project: 36491
Buggy source:
/** 
 * @inheritDoc
 */
@Override public void paintBorder(SynthContext context,Graphics g,int x,int y,int w,int h){
  context.getPainter().paintButtonBorder(context,g,x,y,w,h);
}

Fixed version (ground truth):
/** 
 * {@inheritDoc}
 */
@Override public void paintBorder(SynthContext context,Graphics g,int x,int y,int w,int h){
  context.getPainter().paintButtonBorder(context,g,x,y,w,h);
}
Program: 36492
Project: 36492
Buggy source:
/** 
 * @inheritDoc
 */
@Override protected void installListeners(AbstractButton b){
  super.installListeners(b);
  b.addPropertyChangeListener(this);
}

Fixed version (ground truth):
/** 
 * {@inheritDoc}
 */
@Override protected void installListeners(AbstractButton b){
  super.installListeners(b);
  b.addPropertyChangeListener(this);
}
Program: 36493
Project: 36493
Buggy source:
/** 
 * @inheritDoc
 */
@Override public Dimension getMinimumSize(JComponent c){
  if (c.getComponentCount() > 0 && c.getLayout() != null) {
    return null;
  }
  AbstractButton b=(AbstractButton)c;
  SynthContext ss=getContext(c);
  Dimension size=ss.getStyle().getGraphicsUtils(ss).getMinimumSize(ss,ss.getStyle().getFont(ss),b.getText(),getSizingIcon(b),b.getHorizontalAlignment(),b.getVerticalAlignment(),b.getHorizontalTextPosition(),b.getVerticalTextPosition(),b.getIconTextGap(),b.getDisplayedMnemonicIndex());
  ss.dispose();
  return size;
}

Fixed version (ground truth):
/** 
 * {@inheritDoc}
 */
@Override public Dimension getMinimumSize(JComponent c){
  if (c.getComponentCount() > 0 && c.getLayout() != null) {
    return null;
  }
  AbstractButton b=(AbstractButton)c;
  SynthContext ss=getContext(c);
  Dimension size=ss.getStyle().getGraphicsUtils(ss).getMinimumSize(ss,ss.getStyle().getFont(ss),b.getText(),getSizingIcon(b),b.getHorizontalAlignment(),b.getVerticalAlignment(),b.getHorizontalTextPosition(),b.getVerticalTextPosition(),b.getIconTextGap(),b.getDisplayedMnemonicIndex());
  ss.dispose();
  return size;
}
Program: 36494
Project: 36494
Buggy source:
/** 
 * @inheritDoc
 */
@Override public void propertyChange(PropertyChangeEvent e){
  if (SynthLookAndFeel.shouldUpdateStyle(e)) {
    updateStyle((AbstractButton)e.getSource());
  }
}

Fixed version (ground truth):
/** 
 * {@inheritDoc}
 */
@Override public void propertyChange(PropertyChangeEvent e){
  if (SynthLookAndFeel.shouldUpdateStyle(e)) {
    updateStyle((AbstractButton)e.getSource());
  }
}
Program: 36495
Project: 36495
Buggy source:
/** 
 * @inheritDoc
 */
@Override protected void installDefaults(AbstractButton b){
  updateStyle(b);
  LookAndFeel.installProperty(b,"String_Node_Str",Boolean.TRUE);
}

Fixed version (ground truth):
/** 
 * {@inheritDoc}
 */
@Override protected void installDefaults(AbstractButton b){
  updateStyle(b);
  LookAndFeel.installProperty(b,"String_Node_Str",Boolean.TRUE);
}
Program: 36496
Project: 36496
Buggy source:
/** 
 * @inheritDoc
 */
@Override protected void uninstallListeners(AbstractButton b){
  super.uninstallListeners(b);
  b.removePropertyChangeListener(this);
}

Fixed version (ground truth):
/** 
 * {@inheritDoc}
 */
@Override protected void uninstallListeners(AbstractButton b){
  super.uninstallListeners(b);
  b.removePropertyChangeListener(this);
}
Program: 36497
Project: 36497
Buggy source:
/** 
 * @inheritDoc
 */
@Override protected void uninstallDefaults(AbstractButton b){
  SynthContext context=getContext(b,ENABLED);
  style.uninstallDefaults(context);
  context.dispose();
  style=null;
}

Fixed version (ground truth):
/** 
 * {@inheritDoc}
 */
@Override protected void uninstallDefaults(AbstractButton b){
  SynthContext context=getContext(b,ENABLED);
  style.uninstallDefaults(context);
  context.dispose();
  style=null;
}
Program: 36498
Project: 36498
Buggy source:
/** 
 * @inheritDoc
 */
@Override public int getBaseline(JComponent c,int width,int height){
  if (c == null) {
    throw new NullPointerException("String_Node_Str");
  }
  if (width < 0 || height < 0) {
    throw new IllegalArgumentException("String_Node_Str");
  }
  AbstractButton b=(AbstractButton)c;
  String text=b.getText();
  if (text == null || "String_Node_Str".equals(text)) {
    return -1;
  }
  Insets i=b.getInsets();
  Rectangle viewRect=new Rectangle();
  Rectangle textRect=new Rectangle();
  Rectangle iconRect=new Rectangle();
  viewRect.x=i.left;
  viewRect.y=i.top;
  viewRect.width=width - (i.right + viewRect.x);
  viewRect.height=height - (i.bottom + viewRect.y);
  SynthContext context=getContext(b);
  FontMetrics fm=context.getComponent().getFontMetrics(context.getStyle().getFont(context));
  context.getStyle().getGraphicsUtils(context).layoutText(context,fm,b.getText(),b.getIcon(),b.getHorizontalAlignment(),b.getVerticalAlignment(),b.getHorizontalTextPosition(),b.getVerticalTextPosition(),viewRect,iconRect,textRect,b.getIconTextGap());
  View view=(View)b.getClientProperty(BasicHTML.propertyKey);
  int baseline;
  if (view != null) {
    baseline=BasicHTML.getHTMLBaseline(view,textRect.width,textRect.height);
    if (baseline >= 0) {
      baseline+=textRect.y;
    }
  }
 else {
    baseline=textRect.y + fm.getAscent();
  }
  context.dispose();
  return baseline;
}

Fixed version (ground truth):
/** 
 * {@inheritDoc}
 */
@Override public int getBaseline(JComponent c,int width,int height){
  if (c == null) {
    throw new NullPointerException("String_Node_Str");
  }
  if (width < 0 || height < 0) {
    throw new IllegalArgumentException("String_Node_Str");
  }
  AbstractButton b=(AbstractButton)c;
  String text=b.getText();
  if (text == null || "String_Node_Str".equals(text)) {
    return -1;
  }
  Insets i=b.getInsets();
  Rectangle viewRect=new Rectangle();
  Rectangle textRect=new Rectangle();
  Rectangle iconRect=new Rectangle();
  viewRect.x=i.left;
  viewRect.y=i.top;
  viewRect.width=width - (i.right + viewRect.x);
  viewRect.height=height - (i.bottom + viewRect.y);
  SynthContext context=getContext(b);
  FontMetrics fm=context.getComponent().getFontMetrics(context.getStyle().getFont(context));
  context.getStyle().getGraphicsUtils(context).layoutText(context,fm,b.getText(),b.getIcon(),b.getHorizontalAlignment(),b.getVerticalAlignment(),b.getHorizontalTextPosition(),b.getVerticalTextPosition(),viewRect,iconRect,textRect,b.getIconTextGap());
  View view=(View)b.getClientProperty(BasicHTML.propertyKey);
  int baseline;
  if (view != null) {
    baseline=BasicHTML.getHTMLBaseline(view,textRect.width,textRect.height);
    if (baseline >= 0) {
      baseline+=textRect.y;
    }
  }
 else {
    baseline=textRect.y + fm.getAscent();
  }
  context.dispose();
  return baseline;
}
Program: 36499
Project: 36499
Buggy source:
/** 
 * @inheritDoc
 */
@Override public Dimension getPreferredSize(JComponent c){
  if (c.getComponentCount() > 0 && c.getLayout() != null) {
    return null;
  }
  AbstractButton b=(AbstractButton)c;
  SynthContext ss=getContext(c);
  Dimension size=ss.getStyle().getGraphicsUtils(ss).getPreferredSize(ss,ss.getStyle().getFont(ss),b.getText(),getSizingIcon(b),b.getHorizontalAlignment(),b.getVerticalAlignment(),b.getHorizontalTextPosition(),b.getVerticalTextPosition(),b.getIconTextGap(),b.getDisplayedMnemonicIndex());
  ss.dispose();
  return size;
}

Fixed version (ground truth):
/** 
 * {@inheritDoc}
 */
@Override public Dimension getPreferredSize(JComponent c){
  if (c.getComponentCount() > 0 && c.getLayout() != null) {
    return null;
  }
  AbstractButton b=(AbstractButton)c;
  SynthContext ss=getContext(c);
  Dimension size=ss.getStyle().getGraphicsUtils(ss).getPreferredSize(ss,ss.getStyle().getFont(ss),b.getText(),getSizingIcon(b),b.getHorizontalAlignment(),b.getVerticalAlignment(),b.getHorizontalTextPosition(),b.getVerticalTextPosition(),b.getIconTextGap(),b.getDisplayedMnemonicIndex());
  ss.dispose();
  return size;
}
Program: 36500
Project: 36500
Buggy source:
/** 
 * @inheritDoc
 */
@Override public void paintBorder(SynthContext context,Graphics g,int x,int y,int w,int h){
  context.getPainter().paintCheckBoxMenuItemBorder(context,g,x,y,w,h);
}

Fixed version (ground truth):
/** 
 * {@inheritDoc}
 */
@Override public void paintBorder(SynthContext context,Graphics g,int x,int y,int w,int h){
  context.getPainter().paintCheckBoxMenuItemBorder(context,g,x,y,w,h);
}
Program: 36501
Project: 36501
Buggy source:
/** 
 * @inheritDoc
 */
@Override protected String getPropertyPrefix(){
  return "String_Node_Str";
}

Fixed version (ground truth):
/** 
 * {@inheritDoc}
 */
@Override protected String getPropertyPrefix(){
  return "String_Node_Str";
}
Program: 36502
Project: 36502
Buggy source:
/** 
 * @inheritDoc
 */
@Override public void paintBorder(SynthContext context,Graphics g,int x,int y,int w,int h){
  context.getPainter().paintCheckBoxBorder(context,g,x,y,w,h);
}

Fixed version (ground truth):
/** 
 * {@inheritDoc}
 */
@Override public void paintBorder(SynthContext context,Graphics g,int x,int y,int w,int h){
  context.getPainter().paintCheckBoxBorder(context,g,x,y,w,h);
}
Program: 36503
Project: 36503
Buggy source:
/** 
 * @inheritDoc
 */
@Override protected String getPropertyPrefix(){
  return "String_Node_Str";
}

Fixed version (ground truth):
/** 
 * {@inheritDoc}
 */
@Override protected String getPropertyPrefix(){
  return "String_Node_Str";
}
Program: 36504
Project: 36504
Buggy source:
/** 
 * @inheritDoc
 */
@Override protected void installDefaults(){
  super.installDefaults();
  updateStyle(chooser);
}

Fixed version (ground truth):
/** 
 * {@inheritDoc}
 */
@Override protected void installDefaults(){
  super.installDefaults();
  updateStyle(chooser);
}
Program: 36505
Project: 36505
Buggy source:
/** 
 * @inheritDoc
 */
@Override protected void uninstallListeners(){
  chooser.removePropertyChangeListener(this);
  super.uninstallListeners();
}

Fixed version (ground truth):
/** 
 * {@inheritDoc}
 */
@Override protected void uninstallListeners(){
  chooser.removePropertyChangeListener(this);
  super.uninstallListeners();
}
Program: 36506
Project: 36506
Buggy source:
/** 
 * @inheritDoc
 */
@Override protected void uninstallDefaults(){
  SynthContext context=getContext(chooser,ENABLED);
  style.uninstallDefaults(context);
  context.dispose();
  style=null;
  super.uninstallDefaults();
}

Fixed version (ground truth):
/** 
 * {@inheritDoc}
 */
@Override protected void uninstallDefaults(){
  SynthContext context=getContext(chooser,ENABLED);
  style.uninstallDefaults(context);
  context.dispose();
  style=null;
  super.uninstallDefaults();
}
Program: 36507
Project: 36507
Buggy source:
/** 
 * @inheritDoc
 */
@Override public void paintBorder(SynthContext context,Graphics g,int x,int y,int w,int h){
  context.getPainter().paintColorChooserBorder(context,g,x,y,w,h);
}

Fixed version (ground truth):
/** 
 * {@inheritDoc}
 */
@Override public void paintBorder(SynthContext context,Graphics g,int x,int y,int w,int h){
  context.getPainter().paintColorChooserBorder(context,g,x,y,w,h);
}
Program: 36508
Project: 36508
Buggy source:
/** 
 * @inheritDoc
 */
@Override protected void installListeners(){
  super.installListeners();
  chooser.addPropertyChangeListener(this);
}

Fixed version (ground truth):
/** 
 * {@inheritDoc}
 */
@Override protected void installListeners(){
  super.installListeners();
  chooser.addPropertyChangeListener(this);
}
Program: 36509
Project: 36509
Buggy source:
/** 
 * @inheritDoc
 */
@Override public void propertyChange(PropertyChangeEvent e){
  if (SynthLookAndFeel.shouldUpdateStyle(e)) {
    updateStyle((JColorChooser)e.getSource());
  }
}

Fixed version (ground truth):
/** 
 * {@inheritDoc}
 */
@Override public void propertyChange(PropertyChangeEvent e){
  if (SynthLookAndFeel.shouldUpdateStyle(e)) {
    updateStyle((JColorChooser)e.getSource());
  }
}
Program: 36510
Project: 36510
Buggy source:
/** 
 * @inheritDoc
 */
@Override protected AbstractColorChooserPanel[] createDefaultChoosers(){
  SynthContext context=getContext(chooser,ENABLED);
  AbstractColorChooserPanel[] panels=(AbstractColorChooserPanel[])context.getStyle().get(context,"String_Node_Str");
  context.dispose();
  if (panels == null) {
    panels=ColorChooserComponentFactory.getDefaultChooserPanels();
  }
  return panels;
}

Fixed version (ground truth):
/** 
 * {@inheritDoc}
 */
@Override protected AbstractColorChooserPanel[] createDefaultChoosers(){
  SynthContext context=getContext(chooser,ENABLED);
  AbstractColorChooserPanel[] panels=(AbstractColorChooserPanel[])context.getStyle().get(context,"String_Node_Str");
  context.dispose();
  if (panels == null) {
    panels=ColorChooserComponentFactory.getDefaultChooserPanels();
  }
  return panels;
}
Program: 36511
Project: 36511
Buggy source:
/** 
 * @inheritDoc
 */
@Override protected ComboBoxEditor createEditor(){
  return new SynthComboBoxEditor();
}

Fixed version (ground truth):
/** 
 * {@inheritDoc}
 */
@Override protected ComboBoxEditor createEditor(){
  return new SynthComboBoxEditor();
}
Program: 36512
Project: 36512
Buggy source:
/** 
 * @inheritDoc
 */
@Override public void paintBorder(SynthContext context,Graphics g,int x,int y,int w,int h){
  context.getPainter().paintComboBoxBorder(context,g,x,y,w,h);
}

Fixed version (ground truth):
/** 
 * {@inheritDoc}
 */
@Override public void paintBorder(SynthContext context,Graphics g,int x,int y,int w,int h){
  context.getPainter().paintComboBoxBorder(context,g,x,y,w,h);
}
Program: 36513
Project: 36513
Buggy source:
/** 
 * @inheritDoc Overridden to ensure that ButtonHandler is created prior to any of the other installXXX methods, since several of them reference buttonHandler.
 */
@Override public void installUI(JComponent c){
  buttonHandler=new ButtonHandler();
  super.installUI(c);
}

Fixed version (ground truth):
/** 
 * {@inheritDoc}Overridden to ensure that ButtonHandler is created prior to any of the other installXXX methods, since several of them reference buttonHandler.
 */
@Override public void installUI(JComponent c){
  buttonHandler=new ButtonHandler();
  super.installUI(c);
}
Program: 36514
Project: 36514
Buggy source:
/** 
 * @inheritDoc
 */
@Override protected void installListeners(){
  comboBox.addPropertyChangeListener(this);
  comboBox.addMouseListener(buttonHandler);
  editorFocusHandler=new EditorFocusHandler(comboBox);
  super.installListeners();
}

Fixed version (ground truth):
/** 
 * {@inheritDoc}
 */
@Override protected void installListeners(){
  comboBox.addPropertyChangeListener(this);
  comboBox.addMouseListener(buttonHandler);
  editorFocusHandler=new EditorFocusHandler(comboBox);
  super.installListeners();
}
Program: 36515
Project: 36515
Buggy source:
/** 
 * @inheritDoc
 */
@Override protected JButton createArrowButton(){
  SynthArrowButton button=new SynthArrowButton(SwingConstants.SOUTH);
  button.setName("String_Node_Str");
  button.setModel(buttonHandler);
  return button;
}

Fixed version (ground truth):
/** 
 * {@inheritDoc}
 */
@Override protected JButton createArrowButton(){
  SynthArrowButton button=new SynthArrowButton(SwingConstants.SOUTH);
  button.setName("String_Node_Str");
  button.setModel(buttonHandler);
  return button;
}
Program: 36516
Project: 36516
Buggy source:
/** 
 * @inheritDoc
 */
@Override protected ListCellRenderer createRenderer(){
  return new SynthComboBoxRenderer();
}

Fixed version (ground truth):
/** 
 * {@inheritDoc}
 */
@Override protected ListCellRenderer createRenderer(){
  return new SynthComboBoxRenderer();
}
Program: 36517
Project: 36517
Buggy source:
/** 
 * @inheritDoc
 */
@Override protected void uninstallListeners(){
  editorFocusHandler.unregister();
  comboBox.removePropertyChangeListener(this);
  comboBox.removeMouseListener(buttonHandler);
  buttonHandler.pressed=false;
  buttonHandler.over=false;
  super.uninstallListeners();
}

Fixed version (ground truth):
/** 
 * {@inheritDoc}
 */
@Override protected void uninstallListeners(){
  editorFocusHandler.unregister();
  comboBox.removePropertyChangeListener(this);
  comboBox.removeMouseListener(buttonHandler);
  buttonHandler.pressed=false;
  buttonHandler.over=false;
  super.uninstallListeners();
}
Program: 36518
Project: 36518
Buggy source:
/** 
 * @inheritDoc
 */
@Override protected void uninstallDefaults(){
  SynthContext context=getContext(comboBox,ENABLED);
  style.uninstallDefaults(context);
  context.dispose();
  style=null;
}

Fixed version (ground truth):
/** 
 * {@inheritDoc}
 */
@Override protected void uninstallDefaults(){
  SynthContext context=getContext(comboBox,ENABLED);
  style.uninstallDefaults(context);
  context.dispose();
  style=null;
}
Program: 36519
Project: 36519
Buggy source:
/** 
 * @inheritDoc
 */
@Override protected ComboPopup createPopup(){
  SynthComboPopup p=new SynthComboPopup(comboBox);
  p.addPopupMenuListener(buttonHandler);
  return p;
}

Fixed version (ground truth):
/** 
 * {@inheritDoc}
 */
@Override protected ComboPopup createPopup(){
  SynthComboPopup p=new SynthComboPopup(comboBox);
  p.addPopupMenuListener(buttonHandler);
  return p;
}
Program: 36520
Project: 36520
Buggy source:
/** 
 * @inheritDoc
 */
@Override public void uninstallUI(JComponent c){
  if (popup instanceof SynthComboPopup) {
    ((SynthComboPopup)popup).removePopupMenuListener(buttonHandler);
  }
  super.uninstallUI(c);
  buttonHandler=null;
}

Fixed version (ground truth):
/** 
 * {@inheritDoc}
 */
@Override public void uninstallUI(JComponent c){
  if (popup instanceof SynthComboPopup) {
    ((SynthComboPopup)popup).removePopupMenuListener(buttonHandler);
  }
  super.uninstallUI(c);
  buttonHandler=null;
}
Program: 36523
Project: 36523
Buggy source:
/** 
 * Returns a (transparent) specification of this parameter object.  {@code paramSpec} identifies the specification class in whichthe parameters should be returned. It could, for example, be {@code DSAParameterSpec.class}, to indicate that the parameters should be returned in an instance of the  {@code DSAParameterSpec} class.
 * @param paramSpec the specification class in whichthe parameters should be returned.
 * @return the parameter specification.
 * @exception InvalidParameterSpecException if the requested parameterspecification is inappropriate for this parameter object, or if this parameter object has not been initialized.
 */
public final <T extends AlgorithmParameterSpec>T getParameterSpec(Class<T> paramSpec) throws InvalidParameterSpecException {
  if (this.initialized == false) {
    throw new InvalidParameterSpecException("String_Node_Str");
  }
  return paramSpi.engineGetParameterSpec(paramSpec);
}

Fixed version (ground truth):
/** 
 * Returns a (transparent) specification of this parameter object.  {@code paramSpec} identifies the specification class in whichthe parameters should be returned. It could, for example, be {@code DSAParameterSpec.class}, to indicate that the parameters should be returned in an instance of the  {@code DSAParameterSpec} class.
 * @param < T > the type of the parameter specification to be returrned
 * @param paramSpec the specification class in whichthe parameters should be returned.
 * @return the parameter specification.
 * @exception InvalidParameterSpecException if the requested parameterspecification is inappropriate for this parameter object, or if this parameter object has not been initialized.
 */
public final <T extends AlgorithmParameterSpec>T getParameterSpec(Class<T> paramSpec) throws InvalidParameterSpecException {
  if (this.initialized == false) {
    throw new InvalidParameterSpecException("String_Node_Str");
  }
  return paramSpi.engineGetParameterSpec(paramSpec);
}
Program: 36524
Project: 36524
Buggy source:
/** 
 * Returns a (transparent) specification of this parameters object.  {@code paramSpec} identifies the specification class in whichthe parameters should be returned. It could, for example, be {@code DSAParameterSpec.class}, to indicate that the parameters should be returned in an instance of the  {@code DSAParameterSpec} class.
 * @param paramSpec the specification class in whichthe parameters should be returned.
 * @return the parameter specification.
 * @exception InvalidParameterSpecException if the requested parameterspecification is inappropriate for this parameter object.
 */
protected abstract <T extends AlgorithmParameterSpec>T engineGetParameterSpec(Class<T> paramSpec) throws InvalidParameterSpecException ;

Fixed version (ground truth):
/** 
 * Returns a (transparent) specification of this parameters object.  {@code paramSpec} identifies the specification class in whichthe parameters should be returned. It could, for example, be {@code DSAParameterSpec.class}, to indicate that the parameters should be returned in an instance of the  {@code DSAParameterSpec} class.
 * @param < T > the type of the parameter specification to be returned
 * @param paramSpec the specification class in whichthe parameters should be returned.
 * @return the parameter specification.
 * @exception InvalidParameterSpecException if the requested parameterspecification is inappropriate for this parameter object.
 */
protected abstract <T extends AlgorithmParameterSpec>T engineGetParameterSpec(Class<T> paramSpec) throws InvalidParameterSpecException ;