Closed ChMThiel closed 1 month ago
please add JDK ~version~ vendor, a crash dump/log and some info about the last few things you did with NetBeans before it happened.
As mentioned in the linked discussion, i'm not able to give you a crash dump or log becaus nothing is written... It seem the worse, the more projects are open. And Netbeans seems to aquire a lot of memory before the crash.
Product Version: Apache NetBeans IDE 22 Java: 22.0.1; OpenJDK 64-Bit Server VM 22.0.1 Runtime: OpenJDK Runtime Environment 22.0.1 (installed by Homebrew)
System: Mac OS X version 14.5 running on aarch64; UTF-8; de_DE (nb)
the JVM should leave a crash dump on the same drive the process was started from (or home folder). I am not sure if mac behaves differently, but there should be a crash file somewhere. Running NB from shell might also reveal a few additional log lines.
FlatLAF had a mac specific regression in 3.4 but we still use 3.3 so that can't be the cause https://github.com/JFormDesigner/FlatLaf/issues/826
To exclude FlatLAF, someone could test with bin/netbeans --laf Metal
To exclude that this is specific to homebrew packages, please check if this also happens with the community installers which bundle a JDK runtime which is only visible to NB.
Hi @mbien, thank you very much!
It is probably the case... I see a lot of component peers opened when process crash (only crash GUI, java process stay alive and need to be killed manually).
also, macOS topbar was corrupted every time then NetBeans crash:
And only returns to normal after restart...
I will change LAF and report here if it stops to crash (to me it is a daily routine).
There is someway to manually update FlatLAF in my NetBeans 22?
@mbien I tried your suggestion and switched preferred Look & Fell from FlatLaf-Dark to Mac Os-X. Memory-Consumption is a lot less (was about 6-8GB with FlatLaf, with Mac Os-X i'ts between 1.5-3GB) and up to now no more crashes 👍
There is someway to manually update FlatLAF in my NetBeans 22?
wouldn't bother to try to to patch a NB release, I opened an update PR https://github.com/apache/netbeans/pull/7565
here is a dev buld: https://github.com/apache/netbeans/actions/runs/9911652425/artifacts/1696152788 (expires in 7 days)
@mbien Sadly FlatLaf 3.4.1 appears to crash too... I just downloaded flatLaf demo (3.4.1) and in some seconds, with a frozen popup on theme list, WindowServer was crashed (like NetBeans 22 with FlatLaf 3.3 does).
WindowServer log:
Crashed Thread: Unknown
Exception Type:
Termination Reason: Namespace WATCHDOG, Code 1 monitoring timed out for service
(1 monitored services unresponsive): checkin with service: WindowServer (0 induced crashes) returned not alive with context:
is_alive_func returned unhealthy : 0x1|765949:63984:1|04000000:04064200:04000000
40 seconds since last successful checkin, 2599 total successful checkins since 28554 seconds ago, has not exited since first loaded
@dyorgio interesting. Thats on latest zulu 21 and Sonoma 14.5 (https://github.com/apache/netbeans/issues/6647#issuecomment-2195584964)?
cc @DevCharly
@dyorgio if you're testing the FlatLaf demo, could you try disabling the native library via the system property and see if that's affecting this? https://www.formdev.com/flatlaf/system-properties/#:~:text=menuBarEmbedded%20.&text=Specifies%20whether%20FlatLaf%20native%20library,depend%20on%20the%20native%20library.
@mbien yes, I could reproduce it every time in few seconds using latest zulu 21 and Sonoma 14.5
And stops if I disable native with this way:
java -Dflatlaf.useNativeLibrary=false -jar flatlaf-demo-3.4.1.jar
Thanks @dyorgio - good to know! Please find the location of the NetBeans userdir (see About window if you're unsure). Find etc/netbeans.conf
inside the app bundle and copy it to <userdir>/etc/netbeans.conf
. At the beginning of the default options add -J-Dflatlaf.useNativeLibrary=false
. Then restart NetBeans. Check the IDE log to make sure that change is picked up.
Does this stop the crash from happening?
@neilcsmith-net Yes, no more crashes...
How I said in another issue, to me appears to be something relative with popups and menus.
Without native library popups now are squares, with native it was rounded,
Just updated a mac mini M1 to macOS 14.5 to test this issue. Latest FlatLaf Demo works without problems for me. Tried Zulu 22.0.1 and some older JDKs (21, 11, 8; no homebrew!)
I wonder what's different on my Mac 😕
Sadly FlatLaf 3.4.1 appears to crash too... I just downloaded flatLaf demo (3.4.1) and in some seconds, with a frozen popup on theme list
@dyorgio if I understand you correctly, the FlatLaf Demo starts normally, and works (e.g. you can enter some text into a text field), but when first popup is shown, then it freezes, right? Or does the Java process crash/terminate? Does macOS show some "AppXYZ quit unexpectedly" dialog?
If the Java process crashes, there should be a file hs_err_pid*.log
(where *
is replaced with the process ID)
in working directory (e.g. current directory if you start FlatLaf Demo from command line).
How I said in another issue, to me appears to be something relative with popups and menus.
Understood. FlatLaf uses some native code to for the rounded popups. The code is the same as used in JetBrains JREs. There were no recent changes to that JetBrains code and I can't find any issue in their issue tracker.
At the moment I've no idea what's wrong...
@dyorgio @ChMThiel I've added some NSLog() calls to the code that sets the rounded popup border in FlatLaf.
Would you be so kind and run java -jar flatlaf-demo/build/libs/flatlaf-demo-3.5-SNAPSHOT.jar
from this build artifact.
Then move mouse over themes list (on right side) and wait until a tooltip is shown. This should output some messages to Terminal (and freeze/crash FlatLaf Demo). Please post output here. Thanks.
@DevCharly
When i start the demo and hover over the themes list, tooltip is shown and it chrashes after a few seconds.
Here is the console-output:
2024-07-15 10:40:23.150 java[24774:26427323] *** WARNING: References to Carbon menus are disallowed with AppKit menu system on macOS 14 and newer. Use instances of NSMenu and NSMenuItem directly instead. See https://developer.apple.com/documentation/macos-release-notes/appkit-release-notes-for-macos-14#Menus
2024-07-15 10:40:31.174 java[24774:26427397] ---- setWindowRoundedBorder BEGIN ----
2024-07-15 10:40:31.174 java[24774:26427323] nsWindow.hasShadow = YES
2024-07-15 10:40:31.174 java[24774:26427323] nsWindow.contentView.wantsLayer = YES
2024-07-15 10:40:31.175 java[24774:26427323] nsWindow.contentView.layer: <MTLLayer: 0x600001a25340>
2024-07-15 10:40:31.175 java[24774:26427323] nsWindow.contentView.layer.cornerRadius = 4.000000
2024-07-15 10:40:31.175 java[24774:26427323] nsWindow.contentView.layer.masksToBounds = YES
2024-07-15 10:40:31.175 java[24774:26427323] nsWindow.contentView.layer.borderWidth = 0.000000
2024-07-15 10:40:31.175 java[24774:26427323] nsWindow.backgroundColor = NSColor.clearColor
2024-07-15 10:40:31.175 java[24774:26427323] nsWindow.opaque = NO
2024-07-15 10:40:31.175 java[24774:26427323] nsWindow.contentView.layer removeAllAnimations
2024-07-15 10:40:31.175 java[24774:26427323] nsWindow invalidateShadow
2024-07-15 10:40:31.175 java[24774:26427323] ---- setWindowRoundedBorder END ----
2024-07-15 10:40:53.747 java[24774:26427397] ---- setWindowRoundedBorder BEGIN ----
2024-07-15 10:40:53.753 java[24774:26427323] nsWindow.hasShadow = YES
2024-07-15 10:40:53.753 java[24774:26427323] nsWindow.contentView.wantsLayer = YES
2024-07-15 10:40:53.753 java[24774:26427323] nsWindow.contentView.layer: <MTLLayer: 0x600001a25340>
2024-07-15 10:40:53.753 java[24774:26427323] nsWindow.contentView.layer.cornerRadius = 4.000000
2024-07-15 10:40:53.753 java[24774:26427323] nsWindow.contentView.layer.masksToBounds = YES
2024-07-15 10:40:53.753 java[24774:26427323] nsWindow.contentView.layer.borderWidth = 0.000000
2024-07-15 10:40:53.753 java[24774:26427323] nsWindow.backgroundColor = NSColor.clearColor
2024-07-15 10:40:53.753 java[24774:26427323] nsWindow.opaque = NO
2024-07-15 10:40:53.753 java[24774:26427323] nsWindow.contentView.layer removeAllAnimations
2024-07-15 10:40:53.753 java[24774:26427323] nsWindow invalidateShadow
2024-07-15 10:40:53.753 java[24774:26427323] ---- setWindowRoundedBorder END ----
2024-07-15 10:40:58.302 java[24774:26427397] ---- setWindowRoundedBorder BEGIN ----
2024-07-15 10:40:58.308 java[24774:26427323] nsWindow.hasShadow = YES
2024-07-15 10:40:58.308 java[24774:26427323] nsWindow.contentView.wantsLayer = YES
2024-07-15 10:40:58.308 java[24774:26427323] nsWindow.contentView.layer: <MTLLayer: 0x600001a25340>
2024-07-15 10:40:58.308 java[24774:26427323] nsWindow.contentView.layer.cornerRadius = 4.000000
2024-07-15 10:40:58.308 java[24774:26427323] nsWindow.contentView.layer.masksToBounds = YES
2024-07-15 10:40:58.308 java[24774:26427323] nsWindow.contentView.layer.borderWidth = 0.000000
2024-07-15 10:40:58.308 java[24774:26427323] nsWindow.backgroundColor = NSColor.clearColor
2024-07-15 10:40:58.308 java[24774:26427323] nsWindow.opaque = NO
2024-07-15 10:40:58.308 java[24774:26427323] nsWindow.contentView.layer removeAllAnimations
2024-07-15 10:40:58.308 java[24774:26427323] nsWindow invalidateShadow
2024-07-15 10:40:58.308 java[24774:26427323] ---- setWindowRoundedBorder END ----
2024-07-15 10:41:01.469 java[24774:26427397] ---- setWindowRoundedBorder BEGIN ----
2024-07-15 10:41:01.475 java[24774:26427323] nsWindow.hasShadow = YES
2024-07-15 10:41:01.475 java[24774:26427323] nsWindow.contentView.wantsLayer = YES
2024-07-15 10:41:01.475 java[24774:26427323] nsWindow.contentView.layer: <MTLLayer: 0x600001a25340>
2024-07-15 10:41:01.475 java[24774:26427323] nsWindow.contentView.layer.cornerRadius = 4.000000
2024-07-15 10:41:01.475 java[24774:26427323] nsWindow.contentView.layer.masksToBounds = YES
2024-07-15 10:41:01.475 java[24774:26427323] nsWindow.contentView.layer.borderWidth = 0.000000
2024-07-15 10:41:01.475 java[24774:26427323] nsWindow.backgroundColor = NSColor.clearColor
2024-07-15 10:41:01.475 java[24774:26427323] nsWindow.opaque = NO
2024-07-15 10:41:01.475 java[24774:26427323] nsWindow.contentView.layer removeAllAnimations
2024-07-15 10:41:01.475 java[24774:26427323] nsWindow invalidateShadow
2024-07-15 10:41:01.475 java[24774:26427323] ---- setWindowRoundedBorder END ----
2024-07-15 10:41:09.495 java[24774:26427397] ---- setWindowRoundedBorder BEGIN ----
2024-07-15 10:41:09.500 java[24774:26427323] nsWindow.hasShadow = YES
2024-07-15 10:41:09.500 java[24774:26427323] nsWindow.contentView.wantsLayer = YES
2024-07-15 10:41:09.500 java[24774:26427323] nsWindow.contentView.layer: <MTLLayer: 0x600001a25340>
2024-07-15 10:41:09.500 java[24774:26427323] nsWindow.contentView.layer.cornerRadius = 4.000000
2024-07-15 10:41:09.500 java[24774:26427323] nsWindow.contentView.layer.masksToBounds = YES
2024-07-15 10:41:09.500 java[24774:26427323] nsWindow.contentView.layer.borderWidth = 0.000000
2024-07-15 10:41:09.500 java[24774:26427323] nsWindow.backgroundColor = NSColor.clearColor
2024-07-15 10:41:09.500 java[24774:26427323] nsWindow.opaque = NO
2024-07-15 10:41:09.500 java[24774:26427323] nsWindow.contentView.layer removeAllAnimations
2024-07-15 10:41:09.500 java[24774:26427323] nsWindow invalidateShadow
2024-07-15 10:41:09.500 java[24774:26427323] ---- setWindowRoundedBorder END ----
2024-07-15 10:41:13.336 java[24774:26427397] ---- setWindowRoundedBorder BEGIN ----
2024-07-15 10:41:13.342 java[24774:26427323] nsWindow.hasShadow = YES
2024-07-15 10:41:13.342 java[24774:26427323] nsWindow.contentView.wantsLayer = YES
2024-07-15 10:41:13.342 java[24774:26427323] nsWindow.contentView.layer: <MTLLayer: 0x600001a25340>
2024-07-15 10:41:13.342 java[24774:26427323] nsWindow.contentView.layer.cornerRadius = 4.000000
2024-07-15 10:41:13.342 java[24774:26427323] nsWindow.contentView.layer.masksToBounds = YES
2024-07-15 10:41:13.342 java[24774:26427323] nsWindow.contentView.layer.borderWidth = 0.000000
2024-07-15 10:41:13.342 java[24774:26427323] nsWindow.backgroundColor = NSColor.clearColor
2024-07-15 10:41:13.342 java[24774:26427323] nsWindow.opaque = NO
2024-07-15 10:41:13.342 java[24774:26427323] nsWindow.contentView.layer removeAllAnimations
2024-07-15 10:41:13.343 java[24774:26427323] nsWindow invalidateShadow
2024-07-15 10:41:13.343 java[24774:26427323] ---- setWindowRoundedBorder END ----
2024-07-15 10:41:17.002 java[24774:26427397] ---- setWindowRoundedBorder BEGIN ----
2024-07-15 10:41:17.006 java[24774:26427323] nsWindow.hasShadow = YES
2024-07-15 10:41:17.006 java[24774:26427323] nsWindow.contentView.wantsLayer = YES
2024-07-15 10:41:17.006 java[24774:26427323] nsWindow.contentView.layer: <MTLLayer: 0x600001a25340>
2024-07-15 10:41:17.006 java[24774:26427323] nsWindow.contentView.layer.cornerRadius = 4.000000
2024-07-15 10:41:17.006 java[24774:26427323] nsWindow.contentView.layer.masksToBounds = YES
2024-07-15 10:41:17.006 java[24774:26427323] nsWindow.contentView.layer.borderWidth = 0.000000
2024-07-15 10:41:17.006 java[24774:26427323] nsWindow.backgroundColor = NSColor.clearColor
2024-07-15 10:41:17.006 java[24774:26427323] nsWindow.opaque = NO
2024-07-15 10:41:17.006 java[24774:26427323] nsWindow.contentView.layer removeAllAnimations
2024-07-15 10:41:17.006 java[24774:26427323] nsWindow invalidateShadow
2024-07-15 10:41:17.006 java[24774:26427323] ---- setWindowRoundedBorder END ----
2024-07-15 10:41:22.402 java[24774:26427397] ---- setWindowRoundedBorder BEGIN ----
2024-07-15 10:41:22.407 java[24774:26427323] nsWindow.hasShadow = YES
2024-07-15 10:41:22.407 java[24774:26427323] nsWindow.contentView.wantsLayer = YES
2024-07-15 10:41:22.407 java[24774:26427323] nsWindow.contentView.layer: <MTLLayer: 0x600001a25340>
2024-07-15 10:41:22.407 java[24774:26427323] nsWindow.contentView.layer.cornerRadius = 4.000000
2024-07-15 10:41:22.407 java[24774:26427323] nsWindow.contentView.layer.masksToBounds = YES
2024-07-15 10:41:22.407 java[24774:26427323] nsWindow.contentView.layer.borderWidth = 0.000000
2024-07-15 10:41:22.407 java[24774:26427323] nsWindow.backgroundColor = NSColor.clearColor
2024-07-15 10:41:22.408 java[24774:26427323] nsWindow.opaque = NO
2024-07-15 10:41:22.408 java[24774:26427323] nsWindow.contentView.layer removeAllAnimations
2024-07-15 10:41:22.408 java[24774:26427323] nsWindow invalidateShadow
2024-07-15 10:41:22.408 java[24774:26427323] ---- setWindowRoundedBorder END ----
2024-07-15 10:41:25.504 java[24774:26427397] ---- setWindowRoundedBorder BEGIN ----
2024-07-15 10:41:25.506 java[24774:26427323] nsWindow.hasShadow = YES
2024-07-15 10:41:25.506 java[24774:26427323] nsWindow.contentView.wantsLayer = YES
2024-07-15 10:41:25.506 java[24774:26427323] nsWindow.contentView.layer: <MTLLayer: 0x600001a25340>
2024-07-15 10:41:25.506 java[24774:26427323] nsWindow.contentView.layer.cornerRadius = 4.000000
2024-07-15 10:41:25.506 java[24774:26427323] nsWindow.contentView.layer.masksToBounds = YES
2024-07-15 10:41:25.506 java[24774:26427323] nsWindow.contentView.layer.borderWidth = 0.000000
2024-07-15 10:41:25.506 java[24774:26427323] nsWindow.backgroundColor = NSColor.clearColor
2024-07-15 10:41:25.506 java[24774:26427323] nsWindow.opaque = NO
2024-07-15 10:41:25.506 java[24774:26427323] nsWindow.contentView.layer removeAllAnimations
2024-07-15 10:41:25.506 java[24774:26427323] nsWindow invalidateShadow
2024-07-15 10:41:25.506 java[24774:26427323] ---- setWindowRoundedBorder END ----
Thanks.
Log shows that FlatLaf native code to enable rounded popup corners is executed successfully. There were 9 tooltips shown within ~1 minute.
And there is no hs_err_pid*.log
file in current directory?
no logfiles... seems a hard crash of OS, mouse, keyboard and screen freezes, no interaction possible...after a while system restarts
no logfiles... seems a hard crash of OS, mouse, keyboard and screen freezes, no interaction possible...after a while system restarts
😮
And you used a OpenJDK installed by Homebrew, right?
I'm not familiar with Homebrew, but as I understand the OpenJDK Formula, it downloads the OpenJDK source code and compiles it locally, using currently installed Xcode, right? IMHO a lot of thing can go wrong when compiling such a large project as OpenJDK locally...
Have you tried a binary JDK?
E.g from https://www.azul.com/downloads/?os=macos&package=jdk#zulu
or from https://jdk.java.net/22/
You can download a JDK (or JRE) .zip
or .tar.gz
, extract it anywhere (e.g. in your home dir), and run it (without installation) from command line.
Same logs here:
2024-07-15 10:51:07.754 java[11336:877228] WARNING: Secure coding is not enabled for restorable state! Enable secure coding by implementing NSApplicationDelegate.applicationSupportsSecureRestorableState: and returning YES.
2024-07-15 10:51:12.145 java[11336:877304] ---- setWindowRoundedBorder BEGIN ----
2024-07-15 10:51:12.145 java[11336:877228] nsWindow.hasShadow = YES
2024-07-15 10:51:12.146 java[11336:877228] nsWindow.contentView.wantsLayer = YES
2024-07-15 10:51:12.146 java[11336:877228] nsWindow.contentView.layer: <MTLLayer: 0x600000cdc460>
2024-07-15 10:51:12.146 java[11336:877228] nsWindow.contentView.layer.cornerRadius = 4.000000
2024-07-15 10:51:12.146 java[11336:877228] nsWindow.contentView.layer.masksToBounds = YES
2024-07-15 10:51:12.146 java[11336:877228] nsWindow.contentView.layer.borderWidth = 0.000000
2024-07-15 10:51:12.146 java[11336:877228] nsWindow.backgroundColor = NSColor.clearColor
2024-07-15 10:51:12.146 java[11336:877228] nsWindow.opaque = NO
2024-07-15 10:51:12.146 java[11336:877228] nsWindow.contentView.layer removeAllAnimations
2024-07-15 10:51:12.146 java[11336:877228] nsWindow invalidateShadow
2024-07-15 10:51:12.146 java[11336:877228] ---- setWindowRoundedBorder END ----
2024-07-15 10:51:17.667 java[11336:877304] ---- setWindowRoundedBorder BEGIN ----
2024-07-15 10:51:17.668 java[11336:877228] nsWindow.hasShadow = YES
2024-07-15 10:51:17.668 java[11336:877228] nsWindow.contentView.wantsLayer = YES
2024-07-15 10:51:17.668 java[11336:877228] nsWindow.contentView.layer: <MTLLayer: 0x600000cdc460>
2024-07-15 10:51:17.668 java[11336:877228] nsWindow.contentView.layer.cornerRadius = 4.000000
2024-07-15 10:51:17.668 java[11336:877228] nsWindow.contentView.layer.masksToBounds = YES
2024-07-15 10:51:17.668 java[11336:877228] nsWindow.contentView.layer.borderWidth = 0.000000
2024-07-15 10:51:17.668 java[11336:877228] nsWindow.backgroundColor = NSColor.clearColor
2024-07-15 10:51:17.668 java[11336:877228] nsWindow.opaque = NO
2024-07-15 10:51:17.668 java[11336:877228] nsWindow.contentView.layer removeAllAnimations
2024-07-15 10:51:17.668 java[11336:877228] nsWindow invalidateShadow
2024-07-15 10:51:17.668 java[11336:877228] ---- setWindowRoundedBorder END ----
2024-07-15 10:51:21.802 java[11336:877304] ---- setWindowRoundedBorder BEGIN ----
2024-07-15 10:51:21.805 java[11336:877228] nsWindow.hasShadow = YES
2024-07-15 10:51:21.805 java[11336:877228] nsWindow.contentView.wantsLayer = YES
2024-07-15 10:51:21.805 java[11336:877228] nsWindow.contentView.layer: <MTLLayer: 0x600000cdc460>
2024-07-15 10:51:21.805 java[11336:877228] nsWindow.contentView.layer.cornerRadius = 4.000000
2024-07-15 10:51:21.805 java[11336:877228] nsWindow.contentView.layer.masksToBounds = YES
2024-07-15 10:51:21.805 java[11336:877228] nsWindow.contentView.layer.borderWidth = 0.000000
2024-07-15 10:51:21.805 java[11336:877228] nsWindow.backgroundColor = NSColor.clearColor
2024-07-15 10:51:21.805 java[11336:877228] nsWindow.opaque = NO
2024-07-15 10:51:21.805 java[11336:877228] nsWindow.contentView.layer removeAllAnimations
2024-07-15 10:51:21.805 java[11336:877228] nsWindow invalidateShadow
2024-07-15 10:51:21.805 java[11336:877228] ---- setWindowRoundedBorder END ----
2024-07-15 10:51:35.438 java[11336:877304] ---- setWindowRoundedBorder BEGIN ----
2024-07-15 10:51:35.440 java[11336:877228] nsWindow.hasShadow = YES
2024-07-15 10:51:35.440 java[11336:877228] nsWindow.contentView.wantsLayer = YES
2024-07-15 10:51:35.440 java[11336:877228] nsWindow.contentView.layer: <MTLLayer: 0x600000cdc460>
2024-07-15 10:51:35.440 java[11336:877228] nsWindow.contentView.layer.cornerRadius = 4.000000
2024-07-15 10:51:35.440 java[11336:877228] nsWindow.contentView.layer.masksToBounds = YES
2024-07-15 10:51:35.440 java[11336:877228] nsWindow.contentView.layer.borderWidth = 0.000000
2024-07-15 10:51:35.440 java[11336:877228] nsWindow.backgroundColor = NSColor.clearColor
2024-07-15 10:51:35.441 java[11336:877228] nsWindow.opaque = NO
2024-07-15 10:51:35.441 java[11336:877228] nsWindow.contentView.layer removeAllAnimations
2024-07-15 10:51:35.441 java[11336:877228] nsWindow invalidateShadow
2024-07-15 10:51:35.441 java[11336:877228] ---- setWindowRoundedBorder END ----
2024-07-15 10:51:51.635 java[11336:877304] ---- setWindowRoundedBorder BEGIN ----
2024-07-15 10:51:51.639 java[11336:877228] nsWindow.hasShadow = YES
2024-07-15 10:51:51.639 java[11336:877228] nsWindow.contentView.wantsLayer = YES
2024-07-15 10:51:51.639 java[11336:877228] nsWindow.contentView.layer: <MTLLayer: 0x600000cdc460>
2024-07-15 10:51:51.639 java[11336:877228] nsWindow.contentView.layer.cornerRadius = 4.000000
2024-07-15 10:51:51.639 java[11336:877228] nsWindow.contentView.layer.masksToBounds = YES
2024-07-15 10:51:51.639 java[11336:877228] nsWindow.contentView.layer.borderWidth = 0.000000
2024-07-15 10:51:51.639 java[11336:877228] nsWindow.backgroundColor = NSColor.clearColor
2024-07-15 10:51:51.639 java[11336:877228] nsWindow.opaque = NO
2024-07-15 10:51:51.639 java[11336:877228] nsWindow.contentView.layer removeAllAnimations
2024-07-15 10:51:51.639 java[11336:877228] nsWindow invalidateShadow
2024-07-15 10:51:51.639 java[11336:877228] ---- setWindowRoundedBorder END ----
2024-07-15 10:52:02.694 java[11336:877304] ---- setWindowRoundedBorder BEGIN ----
2024-07-15 10:52:02.698 java[11336:877228] nsWindow.hasShadow = YES
2024-07-15 10:52:02.698 java[11336:877228] nsWindow.contentView.wantsLayer = YES
2024-07-15 10:52:02.698 java[11336:877228] nsWindow.contentView.layer: <MTLLayer: 0x600000cdc460>
2024-07-15 10:52:02.698 java[11336:877228] nsWindow.contentView.layer.cornerRadius = 4.000000
2024-07-15 10:52:02.698 java[11336:877228] nsWindow.contentView.layer.masksToBounds = YES
2024-07-15 10:52:02.698 java[11336:877228] nsWindow.contentView.layer.borderWidth = 0.000000
2024-07-15 10:52:02.698 java[11336:877228] nsWindow.backgroundColor = NSColor.clearColor
2024-07-15 10:52:02.698 java[11336:877228] nsWindow.opaque = NO
2024-07-15 10:52:02.698 java[11336:877228] nsWindow.contentView.layer removeAllAnimations
2024-07-15 10:52:02.698 java[11336:877228] nsWindow invalidateShadow
2024-07-15 10:52:02.698 java[11336:877228] ---- setWindowRoundedBorder END ----
2024-07-15 10:52:04.388 java[11336:877304] ---- setWindowRoundedBorder BEGIN ----
2024-07-15 10:52:04.395 java[11336:877228] nsWindow.hasShadow = YES
2024-07-15 10:52:04.395 java[11336:877228] nsWindow.contentView.wantsLayer = YES
2024-07-15 10:52:04.395 java[11336:877228] nsWindow.contentView.layer: <MTLLayer: 0x600000cdc460>
2024-07-15 10:52:04.395 java[11336:877228] nsWindow.contentView.layer.cornerRadius = 4.000000
2024-07-15 10:52:04.395 java[11336:877228] nsWindow.contentView.layer.masksToBounds = YES
2024-07-15 10:52:04.395 java[11336:877228] nsWindow.contentView.layer.borderWidth = 0.000000
2024-07-15 10:52:04.395 java[11336:877228] nsWindow.backgroundColor = NSColor.clearColor
2024-07-15 10:52:04.395 java[11336:877228] nsWindow.opaque = NO
2024-07-15 10:52:04.395 java[11336:877228] nsWindow.contentView.layer removeAllAnimations
2024-07-15 10:52:04.395 java[11336:877228] nsWindow invalidateShadow
2024-07-15 10:52:04.395 java[11336:877228] ---- setWindowRoundedBorder END ----
2024-07-15 10:52:10.295 java[11336:877304] ---- setWindowRoundedBorder BEGIN ----
2024-07-15 10:52:10.300 java[11336:877228] nsWindow.hasShadow = YES
2024-07-15 10:52:10.300 java[11336:877228] nsWindow.contentView.wantsLayer = YES
2024-07-15 10:52:10.300 java[11336:877228] nsWindow.contentView.layer: <MTLLayer: 0x600000cdc460>
2024-07-15 10:52:10.300 java[11336:877228] nsWindow.contentView.layer.cornerRadius = 4.000000
2024-07-15 10:52:10.300 java[11336:877228] nsWindow.contentView.layer.masksToBounds = YES
2024-07-15 10:52:10.300 java[11336:877228] nsWindow.contentView.layer.borderWidth = 0.000000
2024-07-15 10:52:10.300 java[11336:877228] nsWindow.backgroundColor = NSColor.clearColor
2024-07-15 10:52:10.300 java[11336:877228] nsWindow.opaque = NO
2024-07-15 10:52:10.300 java[11336:877228] nsWindow.contentView.layer removeAllAnimations
2024-07-15 10:52:10.301 java[11336:877228] nsWindow invalidateShadow
2024-07-15 10:52:10.301 java[11336:877228] ---- setWindowRoundedBorder END ----
2024-07-15 10:52:11.486 java[11336:877304] ---- setWindowRoundedBorder BEGIN ----
2024-07-15 10:52:11.487 java[11336:877228] nsWindow.hasShadow = YES
2024-07-15 10:52:11.487 java[11336:877228] nsWindow.contentView.wantsLayer = YES
2024-07-15 10:52:11.487 java[11336:877228] nsWindow.contentView.layer: <MTLLayer: 0x600000cdc460>
2024-07-15 10:52:11.487 java[11336:877228] nsWindow.contentView.layer.cornerRadius = 4.000000
2024-07-15 10:52:11.487 java[11336:877228] nsWindow.contentView.layer.masksToBounds = YES
2024-07-15 10:52:11.487 java[11336:877228] nsWindow.contentView.layer.borderWidth = 0.000000
2024-07-15 10:52:11.487 java[11336:877228] nsWindow.backgroundColor = NSColor.clearColor
2024-07-15 10:52:11.487 java[11336:877228] nsWindow.opaque = NO
2024-07-15 10:52:11.487 java[11336:877228] nsWindow.contentView.layer removeAllAnimations
2024-07-15 10:52:11.487 java[11336:877228] nsWindow invalidateShadow
2024-07-15 10:52:11.487 java[11336:877228] ---- setWindowRoundedBorder END ----
2024-07-15 10:52:11.944 java[11336:877304] ---- setWindowRoundedBorder BEGIN ----
2024-07-15 10:52:11.946 java[11336:877228] nsWindow.hasShadow = YES
2024-07-15 10:52:11.946 java[11336:877228] nsWindow.contentView.wantsLayer = YES
2024-07-15 10:52:11.946 java[11336:877228] nsWindow.contentView.layer: <MTLLayer: 0x600000cdc460>
2024-07-15 10:52:11.946 java[11336:877228] nsWindow.contentView.layer.cornerRadius = 4.000000
2024-07-15 10:52:11.946 java[11336:877228] nsWindow.contentView.layer.masksToBounds = YES
2024-07-15 10:52:11.946 java[11336:877228] nsWindow.contentView.layer.borderWidth = 0.000000
2024-07-15 10:52:11.946 java[11336:877228] nsWindow.backgroundColor = NSColor.clearColor
2024-07-15 10:52:11.946 java[11336:877228] nsWindow.opaque = NO
2024-07-15 10:52:11.946 java[11336:877228] nsWindow.contentView.layer removeAllAnimations
2024-07-15 10:52:11.946 java[11336:877228] nsWindow invalidateShadow
2024-07-15 10:52:11.946 java[11336:877228] ---- setWindowRoundedBorder END ----
2024-07-15 10:52:12.453 java[11336:877304] ---- setWindowRoundedBorder BEGIN ----
2024-07-15 10:52:12.454 java[11336:877228] nsWindow.hasShadow = YES
2024-07-15 10:52:12.454 java[11336:877228] nsWindow.contentView.wantsLayer = YES
2024-07-15 10:52:12.454 java[11336:877228] nsWindow.contentView.layer: <MTLLayer: 0x600000cdc460>
2024-07-15 10:52:12.454 java[11336:877228] nsWindow.contentView.layer.cornerRadius = 4.000000
2024-07-15 10:52:12.454 java[11336:877228] nsWindow.contentView.layer.masksToBounds = YES
2024-07-15 10:52:12.454 java[11336:877228] nsWindow.contentView.layer.borderWidth = 0.000000
2024-07-15 10:52:12.454 java[11336:877228] nsWindow.backgroundColor = NSColor.clearColor
2024-07-15 10:52:12.454 java[11336:877228] nsWindow.opaque = NO
2024-07-15 10:52:12.454 java[11336:877228] nsWindow.contentView.layer removeAllAnimations
2024-07-15 10:52:12.454 java[11336:877228] nsWindow invalidateShadow
2024-07-15 10:52:12.454 java[11336:877228] ---- setWindowRoundedBorder END ----
2024-07-15 10:52:12.469 java[11336:877304] ---- setWindowRoundedBorder BEGIN ----
2024-07-15 10:52:12.472 java[11336:877228] nsWindow.hasShadow = YES
2024-07-15 10:52:12.472 java[11336:877228] nsWindow.contentView.wantsLayer = YES
2024-07-15 10:52:12.472 java[11336:877228] nsWindow.contentView.layer: <MTLLayer: 0x600000cdc460>
2024-07-15 10:52:12.472 java[11336:877228] nsWindow.contentView.layer.cornerRadius = 4.000000
2024-07-15 10:52:12.472 java[11336:877228] nsWindow.contentView.layer.masksToBounds = YES
2024-07-15 10:52:12.472 java[11336:877228] nsWindow.contentView.layer.borderWidth = 0.000000
2024-07-15 10:52:12.472 java[11336:877228] nsWindow.backgroundColor = NSColor.clearColor
2024-07-15 10:52:12.472 java[11336:877228] nsWindow.opaque = NO
2024-07-15 10:52:12.472 java[11336:877228] nsWindow.contentView.layer removeAllAnimations
2024-07-15 10:52:12.472 java[11336:877228] nsWindow invalidateShadow
2024-07-15 10:52:12.472 java[11336:877228] ---- setWindowRoundedBorder END ----
2024-07-15 10:52:12.563 java[11336:877304] ---- setWindowRoundedBorder BEGIN ----
2024-07-15 10:52:12.564 java[11336:877228] nsWindow.hasShadow = YES
2024-07-15 10:52:12.564 java[11336:877228] nsWindow.contentView.wantsLayer = YES
2024-07-15 10:52:12.564 java[11336:877228] nsWindow.contentView.layer: <MTLLayer: 0x600000cdc460>
2024-07-15 10:52:12.564 java[11336:877228] nsWindow.contentView.layer.cornerRadius = 4.000000
2024-07-15 10:52:12.564 java[11336:877228] nsWindow.contentView.layer.masksToBounds = YES
2024-07-15 10:52:12.564 java[11336:877228] nsWindow.contentView.layer.borderWidth = 0.000000
2024-07-15 10:52:12.564 java[11336:877228] nsWindow.backgroundColor = NSColor.clearColor
2024-07-15 10:52:12.564 java[11336:877228] nsWindow.opaque = NO
2024-07-15 10:52:12.564 java[11336:877228] nsWindow.contentView.layer removeAllAnimations
2024-07-15 10:52:12.564 java[11336:877228] nsWindow invalidateShadow
2024-07-15 10:52:12.564 java[11336:877228] ---- setWindowRoundedBorder END ----
2024-07-15 10:52:14.240 java[11336:877304] ---- setWindowRoundedBorder BEGIN ----
2024-07-15 10:52:14.241 java[11336:877228] nsWindow.hasShadow = YES
2024-07-15 10:52:14.241 java[11336:877228] nsWindow.contentView.wantsLayer = YES
2024-07-15 10:52:14.241 java[11336:877228] nsWindow.contentView.layer: <MTLLayer: 0x600000cdc460>
2024-07-15 10:52:14.241 java[11336:877228] nsWindow.contentView.layer.cornerRadius = 4.000000
2024-07-15 10:52:14.241 java[11336:877228] nsWindow.contentView.layer.masksToBounds = YES
2024-07-15 10:52:14.241 java[11336:877228] nsWindow.contentView.layer.borderWidth = 0.000000
2024-07-15 10:52:14.241 java[11336:877228] nsWindow.backgroundColor = NSColor.clearColor
2024-07-15 10:52:14.241 java[11336:877228] nsWindow.opaque = NO
2024-07-15 10:52:14.241 java[11336:877228] nsWindow.contentView.layer removeAllAnimations
2024-07-15 10:52:14.241 java[11336:877228] nsWindow invalidateShadow
2024-07-15 10:52:14.241 java[11336:877228] ---- setWindowRoundedBorder END ----
2024-07-15 10:52:14.410 java[11336:877304] ---- setWindowRoundedBorder BEGIN ----
2024-07-15 10:52:14.412 java[11336:877228] nsWindow.hasShadow = YES
2024-07-15 10:52:14.412 java[11336:877228] nsWindow.contentView.wantsLayer = YES
2024-07-15 10:52:14.412 java[11336:877228] nsWindow.contentView.layer: <MTLLayer: 0x600000cdc460>
2024-07-15 10:52:14.412 java[11336:877228] nsWindow.contentView.layer.cornerRadius = 4.000000
2024-07-15 10:52:14.412 java[11336:877228] nsWindow.contentView.layer.masksToBounds = YES
2024-07-15 10:52:14.412 java[11336:877228] nsWindow.contentView.layer.borderWidth = 0.000000
2024-07-15 10:52:14.412 java[11336:877228] nsWindow.backgroundColor = NSColor.clearColor
2024-07-15 10:52:14.412 java[11336:877228] nsWindow.opaque = NO
2024-07-15 10:52:14.412 java[11336:877228] nsWindow.contentView.layer removeAllAnimations
2024-07-15 10:52:14.412 java[11336:877228] nsWindow invalidateShadow
2024-07-15 10:52:14.412 java[11336:877228] ---- setWindowRoundedBorder END ----
2024-07-15 10:52:16.018 java[11336:877304] ---- setWindowRoundedBorder BEGIN ----
2024-07-15 10:52:16.019 java[11336:877228] nsWindow.hasShadow = YES
2024-07-15 10:52:16.019 java[11336:877228] nsWindow.contentView.wantsLayer = YES
2024-07-15 10:52:16.019 java[11336:877228] nsWindow.contentView.layer: <MTLLayer: 0x600000cdc460>
2024-07-15 10:52:16.019 java[11336:877228] nsWindow.contentView.layer.cornerRadius = 4.000000
2024-07-15 10:52:16.019 java[11336:877228] nsWindow.contentView.layer.masksToBounds = YES
2024-07-15 10:52:16.019 java[11336:877228] nsWindow.contentView.layer.borderWidth = 0.000000
2024-07-15 10:52:16.019 java[11336:877228] nsWindow.backgroundColor = NSColor.clearColor
2024-07-15 10:52:16.019 java[11336:877228] nsWindow.opaque = NO
2024-07-15 10:52:16.019 java[11336:877228] nsWindow.contentView.layer removeAllAnimations
2024-07-15 10:52:16.019 java[11336:877228] nsWindow invalidateShadow
2024-07-15 10:52:16.019 java[11336:877228] ---- setWindowRoundedBorder END ----
2024-07-15 10:52:16.343 java[11336:877304] ---- setWindowRoundedBorder BEGIN ----
2024-07-15 10:52:16.344 java[11336:877228] nsWindow.hasShadow = YES
2024-07-15 10:52:16.344 java[11336:877228] nsWindow.contentView.wantsLayer = YES
2024-07-15 10:52:16.344 java[11336:877228] nsWindow.contentView.layer: <MTLLayer: 0x600000cdc460>
2024-07-15 10:52:16.344 java[11336:877228] nsWindow.contentView.layer.cornerRadius = 4.000000
2024-07-15 10:52:16.344 java[11336:877228] nsWindow.contentView.layer.masksToBounds = YES
2024-07-15 10:52:16.344 java[11336:877228] nsWindow.contentView.layer.borderWidth = 0.000000
2024-07-15 10:52:16.344 java[11336:877228] nsWindow.backgroundColor = NSColor.clearColor
2024-07-15 10:52:16.344 java[11336:877228] nsWindow.opaque = NO
2024-07-15 10:52:16.344 java[11336:877228] nsWindow.contentView.layer removeAllAnimations
2024-07-15 10:52:16.344 java[11336:877228] nsWindow invalidateShadow
2024-07-15 10:52:16.344 java[11336:877228] ---- setWindowRoundedBorder END ----
2024-07-15 10:52:17.642 java[11336:877304] ---- setWindowRoundedBorder BEGIN ----
2024-07-15 10:52:17.643 java[11336:877228] nsWindow.hasShadow = YES
2024-07-15 10:52:17.643 java[11336:877228] nsWindow.contentView.wantsLayer = YES
2024-07-15 10:52:17.643 java[11336:877228] nsWindow.contentView.layer: <MTLLayer: 0x600000cdc460>
2024-07-15 10:52:17.643 java[11336:877228] nsWindow.contentView.layer.cornerRadius = 4.000000
2024-07-15 10:52:17.643 java[11336:877228] nsWindow.contentView.layer.masksToBounds = YES
2024-07-15 10:52:17.643 java[11336:877228] nsWindow.contentView.layer.borderWidth = 0.000000
2024-07-15 10:52:17.643 java[11336:877228] nsWindow.backgroundColor = NSColor.clearColor
2024-07-15 10:52:17.643 java[11336:877228] nsWindow.opaque = NO
2024-07-15 10:52:17.643 java[11336:877228] nsWindow.contentView.layer removeAllAnimations
2024-07-15 10:52:17.643 java[11336:877228] nsWindow invalidateShadow
2024-07-15 10:52:17.643 java[11336:877228] ---- setWindowRoundedBorder END ----
2024-07-15 10:52:37.603 java[11336:877304] ---- setWindowRoundedBorder BEGIN ----
2024-07-15 10:52:37.607 java[11336:877228] nsWindow.hasShadow = YES
2024-07-15 10:52:37.607 java[11336:877228] nsWindow.contentView.wantsLayer = YES
2024-07-15 10:52:37.607 java[11336:877228] nsWindow.contentView.layer: <MTLLayer: 0x600000cdc460>
2024-07-15 10:52:37.607 java[11336:877228] nsWindow.contentView.layer.cornerRadius = 4.000000
2024-07-15 10:52:37.607 java[11336:877228] nsWindow.contentView.layer.masksToBounds = YES
2024-07-15 10:52:37.607 java[11336:877228] nsWindow.contentView.layer.borderWidth = 0.000000
2024-07-15 10:52:37.607 java[11336:877228] nsWindow.backgroundColor = NSColor.clearColor
2024-07-15 10:52:37.607 java[11336:877228] nsWindow.opaque = NO
2024-07-15 10:52:37.607 java[11336:877228] nsWindow.contentView.layer removeAllAnimations
2024-07-15 10:52:37.607 java[11336:877228] nsWindow invalidateShadow
2024-07-15 10:52:37.607 java[11336:877228] ---- setWindowRoundedBorder END ----
Im my case system not crash, but frozen by 15-20 seconds...
@DevCharly hs_err_pid*.log is not present because java process don't terminate, it still alive and needs to be killed manually.
...because java process don't terminate, it still alive and needs to be killed manually.
@dyorgio ok, that's good. There is a JDK tool to create thread dumps of running Java processes.
Could you please invoke jstack -l PID > dump.txt
(replace PID
with real process ID)
on the FlatLaf Demo process (after the system has been frozen)
and post it here?
@DevCharly
Maybe an important detail: My MacBook is a M3 Pro model (more gpu cores).
Process was with 1GB of RAM consumption.
Last App logs:
2024-07-15 14:32:28.252 java[12778:967954] ---- setWindowRoundedBorder BEGIN ----
2024-07-15 14:32:28.254 java[12778:967885] nsWindow.hasShadow = YES
2024-07-15 14:32:28.254 java[12778:967885] nsWindow.contentView.wantsLayer = YES
2024-07-15 14:32:28.254 java[12778:967885] nsWindow.contentView.layer: <MTLLayer: 0x600003de5260>
2024-07-15 14:32:28.254 java[12778:967885] nsWindow.contentView.layer.cornerRadius = 4.000000
2024-07-15 14:32:28.254 java[12778:967885] nsWindow.contentView.layer.masksToBounds = YES
2024-07-15 14:32:28.254 java[12778:967885] nsWindow.contentView.layer.borderWidth = 0.000000
2024-07-15 14:32:28.254 java[12778:967885] nsWindow.backgroundColor = NSColor.clearColor
2024-07-15 14:32:28.254 java[12778:967885] nsWindow.opaque = NO
2024-07-15 14:32:28.254 java[12778:967885] nsWindow.contentView.layer removeAllAnimations
2024-07-15 14:32:28.254 java[12778:967885] nsWindow invalidateShadow
2024-07-15 14:32:28.254 java[12778:967885] ---- setWindowRoundedBorder END ----
2024-07-15 14:32:28.538 java[12778:967954] ---- setWindowRoundedBorder BEGIN ----
2024-07-15 14:32:28.543 java[12778:967885] nsWindow.hasShadow = YES
2024-07-15 14:32:28.543 java[12778:967885] nsWindow.contentView.wantsLayer = YES
2024-07-15 14:32:28.543 java[12778:967885] nsWindow.contentView.layer: <MTLLayer: 0x600003eff9c0>
2024-07-15 14:32:28.543 java[12778:967885] nsWindow.contentView.layer.cornerRadius = 4.000000
2024-07-15 14:32:28.543 java[12778:967885] nsWindow.contentView.layer.masksToBounds = YES
2024-07-15 14:32:28.543 java[12778:967885] nsWindow.contentView.layer.borderWidth = 0.000000
2024-07-15 14:32:28.543 java[12778:967885] nsWindow.backgroundColor = NSColor.clearColor
2024-07-15 14:32:28.543 java[12778:967885] nsWindow.opaque = NO
2024-07-15 14:32:28.543 java[12778:967885] nsWindow.contentView.layer removeAllAnimations
2024-07-15 14:32:28.543 java[12778:967885] nsWindow invalidateShadow
2024-07-15 14:32:28.543 java[12778:967885] ---- setWindowRoundedBorder END ----
2024-07-15 14:33:09.347 java[12778:967885] HIToolbox: received notification of WindowServer event port death.
2024-07-15 14:33:09.347 java[12778:967885] port matched the WindowServer port created in BindCGSToRunLoop
2024-07-15 14:33:11.455 java[12778:967885] +[NSXPCSharedListener endpointForReply:withListenerName:replyErrorCode:]: an error occurred while attempting to obtain endpoint for listener 'ClientCallsAuxiliary': Connection interrupted
No session list!
JStack:
2024-07-15 14:34:57
Full thread dump OpenJDK 64-Bit Server VM (21.0.3+9-LTS mixed mode, sharing):
Threads class SMR info:
_java_thread_list=0x00006000010caa40, length=18, elements={
0x000000015983e000, 0x000000015983e800, 0x000000015983f000, 0x000000015983f800,
0x0000000159840000, 0x000000013a05bc00, 0x000000013a05ec00, 0x000000013a808200,
0x0000000159842a00, 0x000000013b808200, 0x000000013989fe00, 0x000000013a0ea400,
0x0000000159840800, 0x000000015987b800, 0x000000013b822000, 0x000000013b822800,
0x000000013baf1400, 0x000000036a331800
}
"Reference Handler" #9 [32259] daemon prio=10 os_prio=31 cpu=92,38ms elapsed=525,24s tid=0x000000015983e000 nid=32259 waiting on condition [0x000000016cfbe000]
java.lang.Thread.State: RUNNABLE
at java.lang.ref.Reference.waitForReferencePendingList(java.base@21.0.3/Native Method)
at java.lang.ref.Reference.processPendingReferences(java.base@21.0.3/Reference.java:246)
at java.lang.ref.Reference$ReferenceHandler.run(java.base@21.0.3/Reference.java:208)
Locked ownable synchronizers:
- None
"Finalizer" #10 [23299] daemon prio=8 os_prio=31 cpu=131,48ms elapsed=525,24s tid=0x000000015983e800 nid=23299 in Object.wait() [0x000000016d1ca000]
java.lang.Thread.State: WAITING (on object monitor)
at java.lang.Object.wait0(java.base@21.0.3/Native Method)
- waiting on <no object reference available>
at java.lang.Object.wait(java.base@21.0.3/Object.java:366)
at java.lang.Object.wait(java.base@21.0.3/Object.java:339)
at java.lang.ref.NativeReferenceQueue.await(java.base@21.0.3/NativeReferenceQueue.java:48)
at java.lang.ref.ReferenceQueue.remove0(java.base@21.0.3/ReferenceQueue.java:158)
at java.lang.ref.NativeReferenceQueue.remove(java.base@21.0.3/NativeReferenceQueue.java:89)
- locked <0x00000006e000d628> (a java.lang.ref.NativeReferenceQueue$Lock)
at java.lang.ref.Finalizer$FinalizerThread.run(java.base@21.0.3/Finalizer.java:173)
Locked ownable synchronizers:
- None
"Signal Dispatcher" #11 [31491] daemon prio=9 os_prio=31 cpu=0,11ms elapsed=525,24s tid=0x000000015983f000 nid=31491 waiting on condition [0x0000000000000000]
java.lang.Thread.State: RUNNABLE
Locked ownable synchronizers:
- None
"Service Thread" #12 [30979] daemon prio=9 os_prio=31 cpu=1,72ms elapsed=525,24s tid=0x000000015983f800 nid=30979 runnable [0x0000000000000000]
java.lang.Thread.State: RUNNABLE
Locked ownable synchronizers:
- None
"Monitor Deflation Thread" #13 [23811] daemon prio=9 os_prio=31 cpu=25,04ms elapsed=525,24s tid=0x0000000159840000 nid=23811 runnable [0x0000000000000000]
java.lang.Thread.State: RUNNABLE
Locked ownable synchronizers:
- None
"C2 CompilerThread0" #14 [24067] daemon prio=9 os_prio=31 cpu=7748,25ms elapsed=525,24s tid=0x000000013a05bc00 nid=24067 waiting on condition [0x0000000000000000]
java.lang.Thread.State: RUNNABLE
No compile task
Locked ownable synchronizers:
- None
"C1 CompilerThread0" #17 [30467] daemon prio=9 os_prio=31 cpu=1711,25ms elapsed=525,24s tid=0x000000013a05ec00 nid=30467 waiting on condition [0x0000000000000000]
java.lang.Thread.State: RUNNABLE
No compile task
Locked ownable synchronizers:
- None
"Notification Thread" #18 [30211] daemon prio=9 os_prio=31 cpu=0,02ms elapsed=525,24s tid=0x000000013a808200 nid=30211 runnable [0x0000000000000000]
java.lang.Thread.State: RUNNABLE
Locked ownable synchronizers:
- None
"Common-Cleaner" #19 [25091] daemon prio=8 os_prio=31 cpu=1,80ms elapsed=525,23s tid=0x0000000159842a00 nid=25091 waiting on condition [0x000000016e01e000]
java.lang.Thread.State: TIMED_WAITING (parking)
at jdk.internal.misc.Unsafe.park(java.base@21.0.3/Native Method)
- parking to wait for <0x00000006e000e648> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
at java.util.concurrent.locks.LockSupport.parkNanos(java.base@21.0.3/LockSupport.java:269)
at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(java.base@21.0.3/AbstractQueuedSynchronizer.java:1847)
at java.lang.ref.ReferenceQueue.await(java.base@21.0.3/ReferenceQueue.java:71)
at java.lang.ref.ReferenceQueue.remove0(java.base@21.0.3/ReferenceQueue.java:143)
at java.lang.ref.ReferenceQueue.remove(java.base@21.0.3/ReferenceQueue.java:218)
at jdk.internal.ref.CleanerImpl.run(java.base@21.0.3/CleanerImpl.java:140)
at java.lang.Thread.runWith(java.base@21.0.3/Thread.java:1596)
at java.lang.Thread.run(java.base@21.0.3/Thread.java:1583)
at jdk.internal.misc.InnocuousThread.run(java.base@21.0.3/InnocuousThread.java:186)
Locked ownable synchronizers:
- None
"Timer-0" #20 [29699] daemon prio=5 os_prio=31 cpu=1,28ms elapsed=525,21s tid=0x000000013b808200 nid=29699 in Object.wait() [0x000000016e22a000]
java.lang.Thread.State: WAITING (on object monitor)
at java.lang.Object.wait0(java.base@21.0.3/Native Method)
- waiting on <no object reference available>
at java.lang.Object.wait(java.base@21.0.3/Object.java:366)
at java.lang.Object.wait(java.base@21.0.3/Object.java:339)
at java.util.TimerThread.mainLoop(java.base@21.0.3/Timer.java:537)
- locked <0x00000006e000ce98> (a java.util.TaskQueue)
at java.util.TimerThread.run(java.base@21.0.3/Timer.java:516)
Locked ownable synchronizers:
- None
"AppKit Thread" #22 [259] daemon prio=5 os_prio=31 cpu=11304,14ms elapsed=525,17s tid=0x000000013989fe00 nid=259 runnable [0x0000000000000000]
java.lang.Thread.State: RUNNABLE
Locked ownable synchronizers:
- None
"AWT-Shutdown" #23 [38667] prio=5 os_prio=31 cpu=27,40ms elapsed=525,14s tid=0x000000013a0ea400 nid=38667 in Object.wait() [0x000000016e436000]
java.lang.Thread.State: WAITING (on object monitor)
at java.lang.Object.wait0(java.base@21.0.3/Native Method)
- waiting on <no object reference available>
at java.lang.Object.wait(java.base@21.0.3/Object.java:366)
at java.lang.Object.wait(java.base@21.0.3/Object.java:339)
at sun.awt.AWTAutoShutdown.run(java.desktop@21.0.3/AWTAutoShutdown.java:291)
- locked <0x00000006e000ee58> (a java.lang.Object)
at java.lang.Thread.runWith(java.base@21.0.3/Thread.java:1596)
at java.lang.Thread.run(java.base@21.0.3/Thread.java:1583)
Locked ownable synchronizers:
- None
"AWT-EventQueue-0" #24 [86795] prio=6 os_prio=31 cpu=109527,95ms elapsed=525,09s tid=0x0000000159840800 nid=86795 runnable [0x000000016e759000]
java.lang.Thread.State: RUNNABLE
at javax.swing.text.AbstractDocument$BranchElement.getStartOffset(java.desktop@21.0.3/AbstractDocument.java:2373)
at javax.swing.text.AbstractDocument$BranchElement.getElementIndex(java.desktop@21.0.3/AbstractDocument.java:2421)
at javax.swing.text.CompositeView.getViewIndexAtPosition(java.desktop@21.0.3/CompositeView.java:585)
at javax.swing.text.FlowView$LogicalView.getViewIndexAtPosition(java.desktop@21.0.3/FlowView.java:713)
at javax.swing.text.CompositeView.getViewIndex(java.desktop@21.0.3/CompositeView.java:503)
at javax.swing.text.TextLayoutStrategy.createView(java.desktop@21.0.3/TextLayoutStrategy.java:191)
at javax.swing.text.FlowView$FlowStrategy.layoutRow(java.desktop@21.0.3/FlowView.java:538)
at javax.swing.text.TextLayoutStrategy.layoutRow(java.desktop@21.0.3/TextLayoutStrategy.java:135)
at javax.swing.text.FlowView$FlowStrategy.layout(java.desktop@21.0.3/FlowView.java:494)
at javax.swing.text.TextLayoutStrategy.layout(java.desktop@21.0.3/TextLayoutStrategy.java:118)
at javax.swing.text.FlowView.layout(java.desktop@21.0.3/FlowView.java:209)
at javax.swing.text.BoxView.setSize(java.desktop@21.0.3/BoxView.java:398)
at javax.swing.plaf.basic.BasicTextUI$RootView.setSize(java.desktop@21.0.3/BasicTextUI.java:1823)
at javax.swing.plaf.basic.BasicTextUI.getPreferredSize(java.desktop@21.0.3/BasicTextUI.java:943)
at com.formdev.flatlaf.ui.FlatTextFieldUI.getPreferredSize(FlatTextFieldUI.java:543)
at javax.swing.JComponent.getPreferredSize(java.desktop@21.0.3/JComponent.java:1734)
at javax.swing.JTextField.getPreferredSize(java.desktop@21.0.3/JTextField.java:439)
at net.miginfocom.swing.SwingComponentWrapper.getLayoutHashCode(Unknown Source)
at net.miginfocom.swing.MigLayout.checkCache(Unknown Source)
at net.miginfocom.swing.MigLayout.getSizeImpl(Unknown Source)
at net.miginfocom.swing.MigLayout.preferredLayoutSize(Unknown Source)
- locked <0x00000006e007fde8> (a java.awt.Component$AWTTreeLock)
at java.awt.Container.preferredSize(java.desktop@21.0.3/Container.java:1826)
- locked <0x00000006e007fde8> (a java.awt.Component$AWTTreeLock)
at java.awt.Container.getPreferredSize(java.desktop@21.0.3/Container.java:1810)
at javax.swing.JComponent.getPreferredSize(java.desktop@21.0.3/JComponent.java:1736)
at com.formdev.flatlaf.ui.FlatTabbedPaneUI$FlatTabbedPaneLayout.isContentEmpty(FlatTabbedPaneUI.java:3273)
at com.formdev.flatlaf.ui.FlatTabbedPaneUI$FlatTabbedPaneScrollLayout.preferredLayoutSize(FlatTabbedPaneUI.java:3731)
at java.awt.Container.preferredSize(java.desktop@21.0.3/Container.java:1826)
- locked <0x00000006e007fde8> (a java.awt.Component$AWTTreeLock)
at java.awt.Container.getPreferredSize(java.desktop@21.0.3/Container.java:1810)
at javax.swing.JComponent.getPreferredSize(java.desktop@21.0.3/JComponent.java:1736)
at net.miginfocom.swing.SwingComponentWrapper.getLayoutHashCode(Unknown Source)
at net.miginfocom.swing.MigLayout.checkCache(Unknown Source)
at net.miginfocom.swing.MigLayout.layoutContainer(Unknown Source)
- locked <0x00000006e007fde8> (a java.awt.Component$AWTTreeLock)
at java.awt.Container.layout(java.desktop@21.0.3/Container.java:1541)
at java.awt.Container.doLayout(java.desktop@21.0.3/Container.java:1530)
at java.awt.Container.validateTree(java.desktop@21.0.3/Container.java:1725)
at java.awt.Container.validateTree(java.desktop@21.0.3/Container.java:1734)
at java.awt.Container.validateTree(java.desktop@21.0.3/Container.java:1734)
at java.awt.Container.validateTree(java.desktop@21.0.3/Container.java:1734)
at java.awt.Container.validate(java.desktop@21.0.3/Container.java:1660)
- locked <0x00000006e007fde8> (a java.awt.Component$AWTTreeLock)
at javax.swing.RepaintManager$3.run(java.desktop@21.0.3/RepaintManager.java:757)
at javax.swing.RepaintManager$3.run(java.desktop@21.0.3/RepaintManager.java:755)
at java.security.AccessController.executePrivileged(java.base@21.0.3/AccessController.java:778)
at java.security.AccessController.doPrivileged(java.base@21.0.3/AccessController.java:400)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(java.base@21.0.3/ProtectionDomain.java:87)
at javax.swing.RepaintManager.validateInvalidComponents(java.desktop@21.0.3/RepaintManager.java:754)
at javax.swing.RepaintManager$ProcessingRunnable.run(java.desktop@21.0.3/RepaintManager.java:1896)
at java.awt.event.InvocationEvent.dispatch(java.desktop@21.0.3/InvocationEvent.java:318)
at java.awt.EventQueue.dispatchEventImpl(java.desktop@21.0.3/EventQueue.java:773)
at java.awt.EventQueue$4.run(java.desktop@21.0.3/EventQueue.java:720)
at java.awt.EventQueue$4.run(java.desktop@21.0.3/EventQueue.java:714)
at java.security.AccessController.executePrivileged(java.base@21.0.3/AccessController.java:778)
at java.security.AccessController.doPrivileged(java.base@21.0.3/AccessController.java:400)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(java.base@21.0.3/ProtectionDomain.java:87)
at java.awt.EventQueue.dispatchEvent(java.desktop@21.0.3/EventQueue.java:742)
at java.awt.EventDispatchThread.pumpOneEventForFilters(java.desktop@21.0.3/EventDispatchThread.java:203)
at java.awt.EventDispatchThread.pumpEventsForFilter(java.desktop@21.0.3/EventDispatchThread.java:124)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(java.desktop@21.0.3/EventDispatchThread.java:113)
at java.awt.EventDispatchThread.pumpEvents(java.desktop@21.0.3/EventDispatchThread.java:109)
at java.awt.EventDispatchThread.pumpEvents(java.desktop@21.0.3/EventDispatchThread.java:101)
at java.awt.EventDispatchThread.run(java.desktop@21.0.3/EventDispatchThread.java:90)
Locked ownable synchronizers:
- None
"DestroyJavaVM" #25 [10499] prio=5 os_prio=31 cpu=56,05ms elapsed=525,09s tid=0x000000015987b800 nid=10499 waiting on condition [0x0000000000000000]
java.lang.Thread.State: RUNNABLE
Locked ownable synchronizers:
- None
"Java2D Queue Flusher" #26 [67331] daemon prio=10 os_prio=31 cpu=34485,39ms elapsed=525,07s tid=0x000000013b822000 nid=67331 in Object.wait() [0x000000016e966000]
java.lang.Thread.State: TIMED_WAITING (on object monitor)
at java.lang.Object.wait0(java.base@21.0.3/Native Method)
- waiting on <no object reference available>
at java.lang.Object.wait(java.base@21.0.3/Object.java:366)
at sun.java2d.metal.MTLRenderQueue$QueueFlusher.run(java.desktop@21.0.3/MTLRenderQueue.java:210)
- locked <0x00000006e000d6e8> (a sun.java2d.metal.MTLRenderQueue$QueueFlusher)
at java.lang.Thread.runWith(java.base@21.0.3/Thread.java:1596)
at java.lang.Thread.run(java.base@21.0.3/Thread.java:1583)
Locked ownable synchronizers:
- None
"Java2D Disposer" #27 [85251] daemon prio=10 os_prio=31 cpu=7,29ms elapsed=525,07s tid=0x000000013b822800 nid=85251 waiting on condition [0x000000016eb72000]
java.lang.Thread.State: WAITING (parking)
at jdk.internal.misc.Unsafe.park(java.base@21.0.3/Native Method)
- parking to wait for <0x00000006e000e168> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
at java.util.concurrent.locks.LockSupport.park(java.base@21.0.3/LockSupport.java:371)
at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionNode.block(java.base@21.0.3/AbstractQueuedSynchronizer.java:519)
at java.util.concurrent.ForkJoinPool.unmanagedBlock(java.base@21.0.3/ForkJoinPool.java:3780)
at java.util.concurrent.ForkJoinPool.managedBlock(java.base@21.0.3/ForkJoinPool.java:3725)
at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(java.base@21.0.3/AbstractQueuedSynchronizer.java:1707)
at java.lang.ref.ReferenceQueue.await(java.base@21.0.3/ReferenceQueue.java:67)
at java.lang.ref.ReferenceQueue.remove0(java.base@21.0.3/ReferenceQueue.java:158)
at java.lang.ref.ReferenceQueue.remove(java.base@21.0.3/ReferenceQueue.java:234)
at sun.java2d.Disposer.run(java.desktop@21.0.3/Disposer.java:145)
at java.lang.Thread.runWith(java.base@21.0.3/Thread.java:1596)
at java.lang.Thread.run(java.base@21.0.3/Thread.java:1583)
Locked ownable synchronizers:
- None
"TimerQueue" #28 [82183] daemon prio=5 os_prio=31 cpu=114,99ms elapsed=524,75s tid=0x000000013baf1400 nid=82183 waiting on condition [0x0000000316a06000]
java.lang.Thread.State: WAITING (parking)
at jdk.internal.misc.Unsafe.park(java.base@21.0.3/Native Method)
- parking to wait for <0x00000006e000f730> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
at java.util.concurrent.locks.LockSupport.park(java.base@21.0.3/LockSupport.java:371)
at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionNode.block(java.base@21.0.3/AbstractQueuedSynchronizer.java:519)
at java.util.concurrent.ForkJoinPool.unmanagedBlock(java.base@21.0.3/ForkJoinPool.java:3780)
at java.util.concurrent.ForkJoinPool.managedBlock(java.base@21.0.3/ForkJoinPool.java:3725)
at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(java.base@21.0.3/AbstractQueuedSynchronizer.java:1707)
at java.util.concurrent.DelayQueue.take(java.base@21.0.3/DelayQueue.java:242)
at javax.swing.TimerQueue.run(java.desktop@21.0.3/TimerQueue.java:165)
at java.lang.Thread.runWith(java.base@21.0.3/Thread.java:1596)
at java.lang.Thread.run(java.base@21.0.3/Thread.java:1583)
Locked ownable synchronizers:
- <0x00000006e02ce898> (a java.util.concurrent.locks.ReentrantLock$NonfairSync)
"Attach Listener" #49 [56859] daemon prio=9 os_prio=31 cpu=0,32ms elapsed=0,12s tid=0x000000036a331800 nid=56859 waiting on condition [0x0000000000000000]
java.lang.Thread.State: RUNNABLE
Locked ownable synchronizers:
- None
"VM Thread" os_prio=31 cpu=152,86ms elapsed=525,25s tid=0x00000001597054a0 nid=19459 runnable
"GC Thread#0" os_prio=31 cpu=208,97ms elapsed=525,28s tid=0x0000000159608260 nid=12547 runnable
"GC Thread#1" os_prio=31 cpu=216,05ms elapsed=524,68s tid=0x000000015976cf10 nid=81927 runnable
"GC Thread#2" os_prio=31 cpu=196,54ms elapsed=524,68s tid=0x000000015976d480 nid=71427 runnable
"GC Thread#3" os_prio=31 cpu=198,08ms elapsed=524,68s tid=0x000000013b06f360 nid=81411 runnable
"GC Thread#4" os_prio=31 cpu=210,19ms elapsed=524,68s tid=0x000000013b06f700 nid=80899 runnable
"GC Thread#5" os_prio=31 cpu=198,13ms elapsed=524,68s tid=0x000000013b070060 nid=71939 runnable
"GC Thread#6" os_prio=31 cpu=210,21ms elapsed=524,68s tid=0x000000013b0709c0 nid=80131 runnable
"GC Thread#7" os_prio=31 cpu=195,65ms elapsed=524,68s tid=0x00000001596d4a80 nid=72195 runnable
"GC Thread#8" os_prio=31 cpu=201,12ms elapsed=524,68s tid=0x00000001596d4ff0 nid=72707 runnable
"G1 Main Marker" os_prio=31 cpu=0,43ms elapsed=525,28s tid=0x0000000139604e20 nid=12803 runnable
"G1 Conc#0" os_prio=31 cpu=13,09ms elapsed=525,28s tid=0x00000001396057a0 nid=13315 runnable
"G1 Conc#1" os_prio=31 cpu=9,89ms elapsed=524,43s tid=0x000000013965a3b0 nid=74795 runnable
"G1 Refine#0" os_prio=31 cpu=77,97ms elapsed=525,28s tid=0x000000013a055600 nid=16387 runnable
"G1 Service" os_prio=31 cpu=13,10ms elapsed=525,28s tid=0x00000001596087d0 nid=21507 runnable
"VM Periodic Task Thread" os_prio=31 cpu=136,86ms elapsed=525,25s tid=0x0000000159609760 nid=17155 waiting on condition
JNI global refs: 308, weak refs: 106
@dyorgio thank's for the dump. I'll have a look...
Process was with 1GB of RAM consumption
That's too much. On a M1 mini it consumes 145MB after startup (Zulu 22.0.1). Moving mouse over themes list and showing some tooltips increases memory usage to 151MB. (values from "Activity Monitor" app)
@dyorgio how much memory is used after startup? And does it increase when tooltips are shown?
@DevCharly No, it only increases when process crashes WindowServer.
I updated https://github.com/apache/netbeans/pull/7565 to bundle FlatLaf 3.5 which @DevCharly just released. It disables the rounded popups on mac.
dev build for testing purposes is here: https://github.com/apache/netbeans/actions/runs/9965729754/artifacts/1708622944
Short update from my side: after spending more than a day in trying to reproduce the problem, without success, I gave up and disabled rounded popup border for macOS 14.4+ in FlatLaf 3.5. Older macOS versions still use it. Hope that a solution can be found in the future...
@DevCharly I was just comparing your native code to the Jetbrains implementation, and without really understanding the jni/cocoa specifics I was wondering why the JNI_COCOA_EXIT()
is called after return TRUE;
, it seems to me this code cannot be reached.
[nsWindow.contentView.layer removeAllAnimations];
[nsWindow invalidateShadow];
}];
return TRUE;
JNI_COCOA_EXIT()
return FALSE;
}
@remcopoelstra it is just a macro. Before compilation it is replaced by a piece of code (catch exception in this case)
@remcopoelstra JNI_COCOA_EXIT()
is not a real method invocation.
It is a macro that expands to a @catch
block.
It is defined here: https://github.com/JFormDesigner/FlatLaf/blob/d510fee7f6b3c05c323ed4560d7dde2190cefa02/flatlaf-natives/flatlaf-natives-macos/src/main/headers/JNIUtils.h#L36-L41
The resulting code looks like this:
...
return TRUE;
} @catch( NSException *ex ) {
NSLog( @"Exception: ... );
}
return FALSE;
@dyorgio @DevCharly I understand now, sorry about that. I am also not able to reproduce this on my MacOS systems so I was curious about the code.
please someone verify that updating to flatlaf 3.5 is resolving this issue: https://github.com/apache/netbeans/issues/7560#issuecomment-2232039922
I think Jetbrains might also have this (or a similar) issue:
https://rider-support.jetbrains.com/hc/en-us/community/posts/16240803882002-Rider-causing-WindowServer-to-crash-on-MacOS-Sonoma and https://youtrack.jetbrains.com/issue/JBR-6451?_gl=1*c1qods*_gcl_au*MTAyNjYwNDk0Mi4xNzIwMTA0MzM5*_ga*OTgwMDUzODExLjE3MjAxMDQzNDA.*_ga_9J976DJZ68*MTcyMTI4ODUyMC4zLjAuMTcyMTI4ODUyMC42MC4wLjA.
But I get the impression it is caused by MacOS problems, I see external monitors getting mentioned a lot:
https://www.reddit.com/r/MacOS/comments/17222mf/anyone_else_having_windowserver_crash_every_now/ and https://discussions.apple.com/thread/254325498?sortBy=best
@dyorgio @ChMThiel are you perhaps using a external monitor? And if so, could you also check without?
I also came across these stackoverflow discussions that mention WindowServer performance issues when styling a NSWindow in a certain way:
https://stackoverflow.com/questions/59309522/opaque-nswindow-and-windowserver-poor-performance and https://stackoverflow.com/questions/46175906/layer-hosted-nsview-with-lots-of-calayers-inside-windowserver-cpu-100
For me this starting to look more like a MacOS issue then a FlatLaf issue.
Apache NetBeans version
Apache NetBeans 22
What happened
see discussion in https://github.com/apache/netbeans/issues/6647
Language / Project Type / NetBeans Component
No response
How to reproduce
https://github.com/apache/netbeans/issues/6647
Did this work correctly in an earlier version?
No / Don't know
Operating System
Mac Sonoma 14.5
JDK
22.0.1
Apache NetBeans packaging
Other
Anything else
No response
Are you willing to submit a pull request?
No