Hi,

Gentle reminder for review.

 

Regards,

Ambarish

 

From: Ambarish Rapte 
Sent: Monday, February 01, 2016 7:19 PM
To: Semyon Sadetsky; Prasanta Sadhukhan; awt-dev@openjdk.java.net
Subject: <AWT Dev> Review Request for 8025001: setFocusTraversalPolicy() to 
ContainerOrderFocusTraversalPolicy results in an infinite loop

 

Hi All,

 

                Please review the fix for jdk9,

                Bug: https://bugs.openjdk.java.net/browse/JDK-8025001

Webrev: http://cr.openjdk.java.net/~arapte/8025001/webrev.00/

 

 

Issue:

                ContainerOrderFocusTraversalPolicy.getComponentAfter()  returns 
the same component on each call,

which results in an infinite loop in the test provided in bug.

 

 

Cause:

By default, ContainerOrderFocusTraversalPolicy implicitly transfers focus 
down-cycle.

That is, during normal forward focus traversal, the Component traversed after a 
focus-cycle-root

will be the focus-cycle-root's default Component to focus.

 

For a scenarios for above behavior, i.e.

When focus-cycle-root & focus-cycle-root's default Component are the same 
component in traversal cycle.

If getComponentAfter()  is called with focus-cycle-root, it returns 
focus-cycle-root itself.

 

 

Fix:

                Added a check to verify if the getComponentDownCycle() returns 
same component as the one passed to it.

                Then do not return this component and continue traversing.

 

 

Verification:

                Verified that FocusTraversal tests PASS.

                DefaultFocusTraversalPolicy is directly inherited from 
ContainerOrderFocusTraversalPolicy.

                DefaultFocusTraversalPolicy also behaves well with above change.

 

 

Thanks,

Ambarish

 

Reply via email to