Hi Sergey,
On 11/02/2017 04:57 PM, Sergey Bylokhov wrote:
Some small question while I do a review of other parts.
After the fix the classes which store the listeners like
AccessibleAWTFocusHandler supports serialisation, but most of them are
used in pair with propertyListenersCount which is transient. Should we
serialize the count of listeners?
But from the other point of view all our listeners like
"componentListener", "keyListener" etc are transient and have some
special steps in Component.writeObject().
Yes, it may be necessary to to do something with propertyListenersCount
in writeObject() as well. But this may change the format compatibility.
I have created a separate bug to investigate this:
https://bugs.openjdk.java.net/browse/JDK-8190867
--Semyon
On 31/10/2017 09:05, Semyon Sadetsky wrote:
The updated webrev:
http://cr.openjdk.java.net/~ssadetsky/8189201/webrev.02/
On 10/23/2017 01:54 PM, Semyon Sadetsky wrote:
Actually ScreenMenu is fully removed in uninstallUI() (line 54 of
AquaMenuBarUI), so there is no need to make its property listener
Serializable, please, ignore the change in ScreenMenuPropertyListener.
--Semyon
On 10/23/2017 01:25 PM, Semyon Sadetsky wrote:
On 10/23/2017 12:58 PM, Sergey Bylokhov wrote:
On 23/10/2017 12:41, Semyon Sadetsky wrote:
The AquaMenuBarBorder class is L&F specific, and it should not
be serialized/deserialized. Such information(plus l&f client
properties/listeners/etc) should be removed from the component
before serialization. And during deserialization the L&F of the
target system should be applied.
That is valid concern. The webrev is updated
http://cr.openjdk.java.net/~ssadetsky/8189201/webrev.01/
The same is applicable to ScreenMenuPropertyListener as well
because it is also L&F specific.
I assume that the changes in AccessibleAWTComponentHandler/etc are
necessary because somecode installs the listeners on the
components, since the bug is not reproduced in Metal I assume that
this listeners are installed by Aqua, in this case these listeners
also should be removed from the component before serialization.
ScreenMenu is not a Swing component.
--Semyon