The fix looks good to me.

Thanks,
Alexandr.

On 7/7/2016 12:44 PM, Ajit Ghaisas wrote:

Hi,

Thanks Alex for pointing out there might be more components showing similar behavior.

Two more components are identified which may cause this recursion in UpdateUI() method – JTree and JTable.

Now, total 5 components ( JComboBox, JList, JTree, JTable and JTableHeader) are fixed.

    Please review the updated webrev :

http://cr.openjdk.java.net/~aghaisas/6567433/webrev.01/ <http://cr.openjdk.java.net/%7Eaghaisas/6567433/webrev.01/>

Regards,

Ajit

*From:*Alexandr Scherbatiy
*Sent:* Tuesday, July 05, 2016 5:55 PM
*To:* Ajit Ghaisas; Rajeev Chamyal; swing-dev@openjdk.java.net
*Subject:* Re: [9] Fix for JDK-6567433 : JComponent.updateUI() may create StackOverflowError

On 7/5/2016 2:51 PM, Ajit Ghaisas wrote:

    Hi,

    Bug :

    https://bugs.openjdk.java.net/browse/JDK-6567433

        Calling updateUI() on JList, JComboBox and JTableHeader can
    create StackOverflowErrors.
        For example -

        JList.updateUI() invokes updateUI() on its Cellrenderer via
    SwingUtilities.updateComponentTreeUI().
        If the cellrenderer is a parent of this JList the method
    recurses endless causing StackOverflowError.

    Fix :

         Added a recursion guard to JComboBox, JList and JTableHeader
    classes.

         With this fix, UpdateUI() method in these classes does not
    result in recursion.

    Webrev :

    http://cr.openjdk.java.net/~aghaisas/6567433/webrev.00/
    <http://cr.openjdk.java.net/%7Eaghaisas/6567433/webrev.00/>


Could the same issue affect another Swing components which allow to set a cell renderer, like JTree?

  Thanks,
  Alexandr.

        Request you to review.

    Regards,

    Ajit


Reply via email to