On Fri, 10 Dec 2021 17:03:49 GMT, Liam Miller-Cushon <cus...@openjdk.org> wrote:
>> This change updates the serialized objects used by >> `java/awt/dnd/BadSerializationTest/BadSerializationTest.java` using a >> similar approach to the previous fix in >> [JDK-8039082](https://bugs.openjdk.java.net/browse/JDK-8039082). > > Liam Miller-Cushon has updated the pull request incrementally with one > additional commit since the last revision: > > Add a few more missing calls to LookAndFeel.uninstallColors I've been contemplating about what is being done in this PR… It feels wrong. > > As of the usefulness of the serializations tests in Swing - it is a good > > coverage of the cleaning code in the L&fs. Each L&F should clean all its > > data when the app switch one LF to another, but if old L&F forget to > > cleanup then the app will get a memory leak. Swing explicitly warns, “Serialized objects of this class will not be compatible with future Swing releases.” Don't break this rule in this test? A component is serialized using one version of the JDK and is deserialized in another version of the JDK and even on another platform. > This test doesn't switch L&Fs .. if it wasn't for mac defaulting to Aqua > they'd all be using Metal. > > So _this is an accidental by-product_, not the goal of the test. It looks so. If the L&Fs are expected to clean up when uninstalled, it should be tested thoroughly for all the components and Look-and-Feels. Only this way we can be sure the properties get reset. While working on this code review, Liam has found and fixed quite a few places where clean-up wasn't done properly. > And that goal be met by the test writing out the serialized objects and > reading them back all at "test time", can't it ? > > Seems to me right now we are stumbling over cases where what is serialized is > inappropriate for persistent serialization. Taking into account the above comments, this test could be simplified to write out the objects and then read them in. No persistent serialization which is _explicitly_ unsupported. To be clear, I think the proposed change is good on its own: it adds convenience methods to clean up UI properties when a L&F is uninstalled, it adds the clean-up where it was missing. But it doesn't fit into the fix of this test failure. This work should be an enhancement performed under another bugid. ------------- PR: https://git.openjdk.java.net/jdk/pull/6603