-
Notifications
You must be signed in to change notification settings - Fork 144
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
MacOS 14.3 M2: RCP application blank screen with Temurin 17.0.10 #1012
Comments
Could you please try with latest 4.31 nightly build? |
One addition I quickly wanted to see if this bug is also the case if I use the shipped JDK just j in version 17.0.10. I'm not sure if it has to do with the same problem, but now I have a log file: I just wanted to mention it, but as said, maybe it has nothing to do with the bug of this issue. |
Tried it with Version: 2024-03 M1 (4.31.0 M1) / Build id: 20240111-1612 Same problem, with Temurin 17.0.10 the screen in blank, with Temurin 17.0.9 everything seems to work as expected. |
Yes exaclty the first image I've got with our real RCP application, I just wanted to create an issue on a simple reproducable way, what is the reason why I tried it with a base RCP application too. I started once again and now I've got a log, but not sure if this has something to do with it, maybe it is also because of some config changes... |
I think it also works with Linux (latest linux mint 21.3). I have an internal coworker which shortly tried our application with Temurin 17.0.10 at it seems to work fine. |
I can confirm this. Launching a child Eclipse or an RCP app with Temurin JDK 17.0.10+7 leads to a totally blank app. MacBook M2 |
The log just makes it sound like some bundle was not included in the launch configuration. It looks like the leaf cause is this failure:
But how that's related to the JRE version is entirely unclear. Could you maybe try to add the bundle explicitly? |
Note that my screenshot with an empty RCP application is taken without any log errors. After switching back to Temurin 17.0.9 with the exact same workspace setup, the application looks good. |
Same here. I'm using vanilla Eclipse SDK from here. |
So one very strange thing here is that Eclipse itself works fine, just not an RCP application. There is no clue or theory for how that is possible, and I can't reproduce it because I'm on Windows so I cannot help in this regard. 😱 |
|
Tested on macOS Ventura and it's OK. So seems to be a combination of:
Plain SWT Snippets are OK and work as expected when launched from Eclipse. |
Same problem with Temurin 21.0.2+13 (but OK with 21.0.1+12). |
Is that something related to "signing" of the app, may be some old signing algorithms / keys etc were revoked in new JVM's? |
I don't think so. These JDKs work fine if you use them to run Eclipse or an RCP app directly. The problem is when launching a child Eclipse / RCP app from Eclipse to run/debug it. The menus are rendered but not the app's contents. |
I don't know how we can proceed to solve this one. The situation as it stands means that if someone is running macOS Sonoma and has one of these versions of the Temurin JDK installed (currently 17.0.10+7 and 21.0.2+13) they will be able to run Eclipse OK but they will not be able to debug launch a working child instance of Eclipse or an RCP application. FWIW simple steps to reproduce (on macOS Sonoma):
|
FYI, to reproduce using the installer one can install anything with 17.0.10 or 21.0.2 which will also use that as the JRE in that installed IDE: It just seems bizarre that the IDE itself works (does it?) yet something is failing in the launched application (but not in SWT snippets), and nothing is in the log as an indicator... I assume the failure is in any launch, not just a debug launch but also a run launch? |
Yes the IDE itself works. Problem is only the launched app. SWT Snippets are OK too.
Yep, I tried that. |
Divide and conquer. Possible issues could be in
So one should try to reduce the problem to smallest possible example and see which partis responsible here.
Since I don't have Mac, I can't help further ... |
When Eclipse or an RCP app is run from desktop it runs from the launcher binary file ( On Mac, a child Eclipse launches using the The latest Mac Eclipse launcher binary is built using Mac SDK 13 while these versions of Temurin are built using Mac SDK 14. (You can determine this with the command I think this is the problem. We can rule out the Eclipse IDE by copying the launch config's command line and editing it to get rid of extra stuff. For me:
Running the above in Terminal give a blank Eclipse window. |
One thing that would support this is that actually everything seems to "exist", but is simply not rendered correctly. You can see that the cursor changes on buttons, you can click buttons, open context menus etc. For example, you can open another dialog:
I've tried these options, but they did not change anything. Unfortunately I can currently not invest much into investigating this issue, since I work on Windows and only have Mac for SWT/Platform UI validation tasks. |
The current Eclipse launcher binary is built using macOS SDK 13 ( |
We can rule out e4 css code because I set up child Eclipse to not use themes and same problem. |
From further testing I'm pretty certain the difference is because the I replaced just the |
OK, I'm going to summarise the situation based on the assumption that the problem is arising because of Temurin using macOS SDK 14 to create the
Worthy of investigation is why SWT Snippets are running OK. |
@SyntevoAlex and @tmssngr I wonder if you could help to test something? The SmartGit app uses its own launcher binary ( |
- Add a new selector setClipsToBounds - Set this selector to true in Widget#drawRect - See #1012
This seems to be fixed in the latest I-Build after PR #1081 was merged I also tested the latest I-Build on aarch64 by replacing the If anyone is able to test the latest I-Build, please do. |
Thanks for all of your work! I quickly tested the snippet here: #1012 (comment) Seems to work fine 👍 |
@ivy-lli Thanks for testing. 👍 A more realistic test is to launch a child Eclipse instance with the latest Temurin Java as target. |
I've also tried my initial report scenario, the example rcp:
Result: It seems to work now again with both JRE's |
Thanks again for testing! |
Should this one be closed now? |
This issue shouldn't affect OpenJDK as their binaries are not compiled/linked to macOS 14.
Use the latest I-builds of Eclipse or SWT. |
This is not completely fixed. I'm seeing blank areas when using a Tabbed Properties control: It should look like this: The fix applied in #1081 is not enough. If we apply it to public NSView(long id) {
super(id);
OS.objc_msgSend(id, OS.sel_setClipsToBounds_, true);
} But as explained in #1081 (comment) we can't add it there. I think that unless we apply the fix in a place where it catches all cases we'll continue to see this bug re-appear. @lshanmug Can you please advise? |
- OS.objc_msgSend(id, OS.sel_setClipsToBounds_, true) needs to be applied in two more cases - See eclipse-platform#1012
New PR: #1232 |
- OS.objc_msgSend(id, OS.sel_setClipsToBounds_, true) needs to be applied in two more cases - See #1012
Also seeing this with Eclipse (but scroll down, how I got it working with a lower Temurin JDK)
and
and
For sake of reproduction:
But it works with JDK Temurin 17.0.9+9I did not have this problem on my Macbook Pro M1. When I use this JDK Temurin 17.0.9+9 on my M3, it works 🥳 Summary:
|
@chrisrueger This should all be fixed in Eclipse 4.32. If you are still seeing a blank UI when running a child Eclipse instance then perhaps your target Eclipse SDK version is an earlier version? |
Yes that is the case. Bndtools so far always uses an earlier version. There is an open issue at bnd bndtools/bnd#5815 So then i think i am fine with my workaround to uses temurin 17.0.9+9 and i will talk with the bnd team about it. |
Another alternative is to use a non-Temurin target JDK (OpenJDK, Azul, etc) that has not been built/linked linked to macOS 14 SDK. |
To find out which macOS SDK the JDK has been linked to:
Temurin 17.0.11+9 gives the following output and you can see the
Azul JDK gives the following output and you can see the
|
It seems we can stay on older Eclipse 4.25 but use a higher SWT version which has fixed the SWT bug (see eclipse-platform/eclipse.platform.swt#1012). Signed-off-by: Christoph Rueger <chrisrueger@gmail.com>
It seems we can stay on older Eclipse 4.25 but use a higher SWT version which has fixed the SWT bug (see eclipse-platform/eclipse.platform.swt#1012). Signed-off-by: Christoph Rueger <chrisrueger@gmail.com>
Describe the bug
Since the update to Temurin 17.0.10 (from Temurin 17.0.9), my started Eclipse RCP application shows only an empty screen.
To Reproduce
-> Empty application
-> Application with sample content
I can also provide the workspace via a GitHub repo, but it is not more than the wizard for new RCP Applications created.
Expected behavior
The Eclipse RCP application should also show the sample content
Screenshots
Temurin 17.0.10:
Temurin 17.0.9:
Environment:
Additional OS info (e.g. OS version, Linux Desktop, etc)
OS: MacOS Sonoma 14.3
Platform: MacBook Pro M2, 2023
JRE/JDK version
Temurin 17.0.10:
Temurin 17.0.9:
Version since
Tested with 4.30
Workaround (or) Additional context
I didn't see any log, crash, or something like that.
I also already opened an issue at the Temurin site: adoptium/adoptium-support#1008
The text was updated successfully, but these errors were encountered: