Container.remove issue
Philip Race
philip.race at oracle.com
Wed Nov 8 18:49:54 UTC 2023
The AppContext.remove() call just removes an entry from a map and
doesn't affect the UI.
And anyway the caution is about application code doing something.
-phil.
On 11/7/23 3:31 PM, Alan Snyder wrote:
>> On Nov 7, 2023, at 2:57 PM, Philip Race <philip.race at oracle.com> wrote:
>>
>> I don't have a definite answer to your question, and for sure AWT docs may be a bit lacking,
>> but there's also a lot of them so an answer may be buried somewhere.
>>
>> Not sure if you are saying you are in fact running "arbitrary code" in removeNotify() but
>> I don't think that would be a good idea. You can observe in there but I'm not sure
>> you should "do" anything. Also per the docs you need to call the superclass method as the first line.
>>
>> There's this old bug report https://bugs.openjdk.org/browse/JDK-4074274 which might be useful to read.
>>
>> -phil.
>>
>
> Interesting, but In this case, it is JTextComponent that is “doing something”.
>
> public void removeNotify() {
> super.removeNotify();
> if (getFocusedComponent() == this) {
> AppContext.getAppContext().remove(FOCUSED_COMPONENT);
> }
> }
>
> Is there similar advice not to “do something” in a focus event listener?
>
> I’m not seeing an argument against using some “defensive programming” in Container.remove.
>
> It would be odd if some application depended upon removing a different component.
>
> Alan
>
More information about the client-libs-dev
mailing list