<AWT Dev> <AWT dev>[10] Review request for JDK-8165863:[macosx] stack overflow in java/awt/Component/SetEnabledPerformance/SetEnabledPerformance.java

Philip Race philip.race at oracle.com
Fri Aug 4 14:12:10 UTC 2017


I don't know why but we do have recursion here :
     at 
java.awt.AWTEventMulticaster.componentMoved(java.desktop at 9ea/AWTEventMulticaster.java:177)
     at 
java.awt.AWTEventMulticaster.componentMoved(java.desktop at 9ea/AWTEventMulticaster.java:177)
     at 
java.awt.AWTEventMulticaster.componentMoved(java.desktop at 9ea/AWTEventMulticaster.java:177)
STATUS:Failed.`main' threw exception: java.lang.StackOverflowError

At the first line of this method :
     /**
      * Handles the componentMoved event by invoking the
      * componentMoved methods on listener-a and listener-b.
      * @param e the component event
      */
     public void componentMoved(ComponentEvent e) {
         ((ComponentListener)a).componentMoved(e);
         ((ComponentListener)b).componentMoved(e);
     }

That recursion surely should not be happening and I then don't know what 
breaks the recursion.
Maybe it isn't broken. May be the test gets to dispose() before then - 
once the stack size
is increased.

Whatever the cause the proposed fix seems to be missing the real problem.

-phil.

On 8/4/17, 6:55 AM, Sergey Bylokhov wrote:
> Hi, Manajit.
> The code in the test and the code in the JButton does not have any 
> recursion and use only loops. All buttons itself are stored in the 
> heap not on the stack. Can you please clarify, where in our code the 
> default size of the stack is too small?
>
> On 04.08.2017 4:40, Manajit Halder wrote:
>> Hi All,
>>
>> Kindly review the fix for JDK10.
>>
>> Bug:
>> https://bugs.openjdk.java.net/browse/JDK-8165863
>>
>> Webrev:
>> http://cr.openjdk.java.net/~mhalder/8165863/webrev.00/
>>
>> Root cause:
>> The problem was due to default JVM stack size, which was not enough 
>> for the creation of 10001 JButtons.
>>
>> Fix:
>> Increased the JVM stack size to 2048k for this test case using JVM 
>> flag -Xss.
>>
>> Regards,
>> Manajit
>>
>
>


More information about the awt-dev mailing list