On 6/8/2016 5:37 PM, Sergey Bylokhov wrote:
On 08.06.16 10:12, Semyon Sadetsky wrote:
Since method equals() is not specified in the FTP class, you cannot make
any assumption how it is implemented, it may return true for different
classes instances. So in the test the policy untouchability should be
checked by ==, without any additional assumptions about the equals()
method implementation.
Above I describe that the different instances of the same policy is
fine, because this is the same policy. Also I do not get it why the
equals is not specified, you can open specification of Object.equals()
and read it.
Yes, but the Object#equlas() does not prohibit different class instances
to be equal. The purpose of the test is to prove that existing
component's FTP instances remain untouchable during the default FTP
change regardless of the specific FTP implementation. This may be tested
only by == operator. Or please provide a scenario when they are allowed
be replaced by some equivalent FTP's.
I know. But this is not needed because it does not produce any valuable
information for a normal test execution (when it is passed).
Why? It is useful to know what policy is used when the test passed.
Because the main purpose of the test is to automatically compare FTPs,
so this verbose output is not necessary and this extra printout
duplicates printout in case the test is failed.
That is what I asked. For what purpose this dummy content is added?
Can
you clarify that?
This is an emulation of the common dialog used by the application
which have some components which can be focused inside.
By the same reason why JDialog, JWindow and JFrame are added, it
increase the coverage if any side affects exists.
JDialog, JWindow and JFrame are focus traversal cycle roots by default,
but those "dummy" components are not, i.e. their FTPs are not used and
are nulls by default.
So could you point to the code related to the handling of the default
FTP change, that is additionally covered by the test due to those
"dummy" components?
Please answer the above question to avoid incoherence in the discussion.
--Semyon
On 5/30/2016 7:39 PM, Sergey Bylokhov wrote:
Hello.
Please review the fix for jdk9.
The test DefaultPolicyChange_Swing.java has two issues:
- It uses invokeLater(), so the test usually pass before the
code is
executed on the EDT, because the main thread completes before.
- The test fetches the FocusTraversalPolicy from the current
KeyboardFocusManager. But default FocusTraversalPolicy can be
changed
during the Swing initialization(JDK-7125044). The test should save
the
state before setDefaultFocusTraversalPolicy() but after the Swing
initialization, and validate that the FocusTraversalPolicy was not
changed for windows which were already shown.
The fix proposed in the CR is applied + small
cleanup(regtesthelpers
removed and InvokeAndWait is used instead of InvokeLater+realSync)
Bug: https://bugs.openjdk.java.net/browse/JDK-8004693
Webrev can be found at:
http://cr.openjdk.java.net/~serb/8004693/webrev.01