RFR: 8190329: [macos] Swing InterOp Platform.exit() crash [v2]
Prasanta Sadhukhan
psadhukhan at openjdk.org
Fri Aug 30 07:28:24 UTC 2024
On Thu, 29 Aug 2024 23:01:08 GMT, Kevin Rushforth <kcr at openjdk.org> wrote:
>> Do we want to use cached version for this case?
>> `[NSApp isMemberOfClass:[NSApplication class]] && overrideDelegate`
>
> Hmm. Probably not. We don't really expect that anyone will ever set the (undocumented) env variable that will set the `overrideDelegate` flag, but it might be safest to only use the cached env if `[NSApp isKindOfClass:[NSApplicationAWT class]]`.
>
> If so, one way to do this would be to change line 129 to:
>
>
> [ThreadUtilities setApplicationOwner:[NSApp isKindOfClass:[NSApplicationAWT class]]];
>
>
> Or keep track of a second flag, something like this:
>
>
> BOOL isApplicationOwner = NO;
> if (NSApp != nil) {
> if ([NSApp isMemberOfClass:[NSApplication class]] && overrideDelegate) shouldInstall = YES;
> if ([NSApp isKindOfClass:[NSApplicationAWT class]]) {
> shouldInstall = YES;
> isApplicationOwner = YES;
> }
> }
> [ThreadUtilities setApplicationOwner:isApplicationOwner];
Updated PR to cache JNIEnv only for NSApplicationAWT instance
-------------
PR Review Comment: https://git.openjdk.org/jdk/pull/20688#discussion_r1738101573
More information about the client-libs-dev
mailing list