forcedotcom / dataloader

Salesforce Data Loader
BSD 3-Clause "New" or "Revised" License
474 stars 294 forks source link

Problems when running on dataloader on MacOS 14.4.1 #1073

Closed medeag closed 4 months ago

medeag commented 5 months ago

When opening the data loader it shows empty screen

Steps to reproduce the behavior:

  1. Click on dataloader
  2. See that screen is empty

Expected behavior The screen should provide actions.

Screenshots 555f04f7-be78-4955-99b7-3dab15e1954b

Desktop (please complete the following information):

medeag commented 5 months ago

Data loader's version is 60.0.2

ashitsalesforce commented 5 months ago

Hi @medeag ,

Have you tried changing Appearance in your Mac's System Settings? If it is "Auto" or "Dark", try "Light" for Appearance.

Screenshot 2024-04-03 at 8 19 25 AM

If that does not fix the issue, provide the console output of data loader.

medeag commented 5 months ago

It is light

Screenshot 2024-04-03 at 20 21 44

This is what i see if i run it using dataloader_console:

2024-04-03 20:22:24,819 INFO [main] config.Config createDir (Config.java:1496) - Config folder already exists: /Applications/dataloader_v60.0.2/configs 2024-04-03 20:22:24,821 INFO [main] config.Config getInstance (Config.java:1529) - Looking for file in config path: /Applications/dataloader_v60.0.2/configs/config.properties 2024-04-03 20:22:24,821 INFO [main] config.Config getInstance (Config.java:1560) - User config is found in /Applications/dataloader_v60.0.2/configs/config.properties 2024-04-03 20:22:24,824 INFO [main] config.LastRun load (LastRun.java:87) - Last run info will be saved in file: /Applications/dataloader_v60.0.2/configs/insert_lastRun.properties 2024-04-03 20:22:24,824 INFO [main] config.Config getInstance (Config.java:1567) - The controller config has been initialized

ashitsalesforce commented 5 months ago

Hi @medeag , the settings and console output are as-expected. Can you get md5 of the data loader zip file or md5 of the data loader jar file (if you have deleted the zip file)? Also, do you see the same issue with a previous release of data loader?

medeag commented 5 months ago

run md5 dataloader_v60.0.2.zip with following result 8d43c158157471d73b0208094eaf5fb4, i'll try to install previous version if this looks ok for you.

ashitsalesforce commented 5 months ago

Hi @medeag , this MD5 is right.

medeag commented 5 months ago

v60.0.1 doesn't work either

ashitsalesforce commented 5 months ago

Try Dark Appearance on your desktop. If that does not fix, try v59.0.0.

v60.0.x use the same version of Eclipse SWT, the library used to render Data Loader UI. v59.0.0 uses an earlier version of SWT.

smeeGit commented 4 months ago

@ashitsalesforce I'm having the same issue on a MBP M3 Pro - I've tried each of the v60 versions and I've tried switching system preference from Dark, to Light. As a follow up from @medeag's last response, I tried v59.0.0. I verified the MD5 was the same as was listed on the downloads page and here's a screenshot of the app loaded image

This is the "Settings" window: image

ashitsalesforce commented 4 months ago

Hi @smeeGit , thanks for experimenting and sharing the details of the issue. It is not reproducible on MacAir M1, with MacOS 14.4.1 and no one has reported similar issues before. Wondering if it has to do with M3 graphics. It will be good to know which Mac hardware @medeag has.

Can you share data loader console output as you start the app?

ashitsalesforce commented 4 months ago

Hi @smeeGit , we do not have a readily available Mac M3 to try and reproduce the issue. So, we may have to do a few experiments with your help. I am attaching a local build of Data Loader that does not do any font settings for you to try. Let us know if it addresses the issue.

Removed the patch artifacts based on the findings that the issue is with the latest Temurin JRE/JDK.

nrlakin commented 4 months ago

I am having the same issue with v60.0.2 and 59.0.0, with both an x86 max and an M2 Mac. Both are running OSX 14.4.1.

ashitsalesforce commented 4 months ago

Hi @nrlakin, M2 has been on the market for a while. So, that eliminates new hardware theory. I have a M1 with OSX 14.4.1 where both of these releases run fine. So, we can't pin it to OSX 14.4.1. Can you share the console output of the Data Loader? Perhaps there is a warning when the issue occurs.

ashitsalesforce commented 4 months ago

@medeag , @nrlakin , @smeeGit , this turns out to be an issue with the latest JRE/JDK from Eclipse/Adaptium Temurin JDK/JRE. The issue did not exist in the previous release. For example if you are using Temurin JRE 17.0.10+7, switch to Temurin JRE 17.0.9+9 or switch to another JRE/JDK altogether.

Here is a discussion reporting the issue with Eclipse RCP (Rich Client Platform) Apps (these apps use Eclipse SWT, the same library Data Loader uses for UI rendering) when using latest Temurin JDK on MacOS.

nrlakin commented 4 months ago

Thank you, @ashitsalesforce! I was using OpenJDK 17.0.10, but downgrading to 17.0.9 fixed the issue for me.

ashitsalesforce commented 4 months ago

Good to hear that the issue is resolved. I will close it.

smeeGit commented 4 months ago

Thank you @ashitsalesforce for your help! FYI - I noticed that there was a version 17.0.11, which I installed and it is working for me. Thanks again!

ashitsalesforce commented 4 months ago

The issue is fixed in PR #1100

jamesongithub commented 4 months ago

seeing this also on openjdk 21.0.2 dataloader v60.0.02

image

saw this was fixed in #1100 is there a new jar for it?

ashitsalesforce commented 4 months ago

The fix will be available with v61 release. You can either use an earlier version of JDK meanwhile (21.x) or use Data Loader v59.0.0 as a workaround.

jamesongithub commented 4 months ago

thanks for the release link. it seems to be hidden on the repo.

i tried jdk 21.0.2 and jdk 17.0.11 which each of dataloader 58.0.4, 59.0.0 and 60.0.2 and it's still not working

java --version
openjdk 17.0.11 2024-04-16
OpenJDK Runtime Environment Homebrew (build 17.0.11+0)
OpenJDK 64-Bit Server VM Homebrew (build 17.0.11+0, mixed mode, sharing)
$ java -jar dataloader-60.0.2.jar 

*************************************************************************
**                                                                     **
**              Salesforce Data Loader                                 **
**              ======================                                 **
**                                                                     **
**  Data Loader v60 is a Salesforce supported Open Source project to   **
**  help you import data to and export data from your Salesforce org.  **
**  It requires Java JRE 17 or later to run.                           **
**                                                                     **
**  Github Project Url:                                                **
**       https://github.com/forcedotcom/dataloader                     **
**  Salesforce Documentation:                                          **
**       https://help.salesforce.com/articleView?id=data_loader.htm    **
**                                                                     **
*************************************************************************

2024-04-29 16:40:04,675 INFO  [main] config.Config createDir (Config.java:1496) - Config folder already exists: /Users/jyang/dataloader/v60.0.2/configs
2024-04-29 16:40:04,676 INFO  [main] config.Config getInstance (Config.java:1529) - Looking for file in config path: /Users/jyang/dataloader/v60.0.2/configs/config.properties
2024-04-29 16:40:04,676 INFO  [main] config.Config getInstance (Config.java:1560) - User config is found in /Users/jyang/dataloader/v60.0.2/configs/config.properties
2024-04-29 16:40:04,679 INFO  [main] config.LastRun load (LastRun.java:87) - Last run info will be saved in file: /Users/jyang/dataloader/v60.0.2/configs/insert_lastRun.properties
2024-04-29 16:40:04,679 INFO  [main] config.Config getInstance (Config.java:1567) - The controller config has been initialized
ashitsalesforce commented 4 months ago

Try this patch.

jamesongithub commented 4 months ago

hmm still blank...

could it be something else?

$ md5 dataloader-60.0.2.jar 
MD5 (dataloader-60.0.2.jar) = 9b4cb8e955e3f11f3e4f022a99821540
$ java --version
openjdk 21.0.2 2024-01-16
OpenJDK Runtime Environment Homebrew (build 21.0.2)
OpenJDK 64-Bit Server VM Homebrew (build 21.0.2, mixed mode, sharing)

java -jar dataloader-60.0.2.jar 

*************************************************************************
**                                                                     **
**              Salesforce Data Loader                                 **
**              ======================                                 **
**                                                                     **
**  Data Loader v60 is a Salesforce supported Open Source project to   **
**  help you import data to and export data from your Salesforce org.  **
**  It requires Java JRE 17 or later to run.                           **
**                                                                     **
**  Github Project Url:                                                **
**       https://github.com/forcedotcom/dataloader                     **
**  Salesforce Documentation:                                          **
**       https://help.salesforce.com/articleView?id=data_loader.htm    **
**                                                                     **
*************************************************************************

2024-04-29 17:05:38,453 INFO  [main] config.Config createDir (Config.java:1519) - Config folder already exists: /Users/jyang/dataloader/v60.0.2-patch/configs
2024-04-29 17:05:38,454 INFO  [main] config.Config getInstance (Config.java:1552) - Looking for file in config path: /Users/jyang/dataloader/v60.0.2-patch/configs/config.properties
2024-04-29 17:05:38,455 INFO  [main] config.Config getInstance (Config.java:1583) - User config is found in /Users/jyang/dataloader/v60.0.2-patch/configs/config.properties
2024-04-29 17:05:38,457 INFO  [main] config.LastRun load (LastRun.java:87) - Last run info will be saved in file: /Users/jyang/dataloader/v60.0.2-patch/configs/insert_lastRun.properties
2024-04-29 17:05:38,458 INFO  [main] config.Config getInstance (Config.java:1590) - The controller config has been initialized
ashitsalesforce commented 4 months ago

The root-cause of the issue is that SWT 4.31 used by Data Loader v60.0.2 has a bug that got fixed in SWT 4.32M1. Can you check that your data loader installation folder has SWT 4.32M1 jar (swtmac_aarch64-4.32M1.jar)?

jamesongithub commented 4 months ago

ah ok it's still getting swt 4.31 even with the patch. can i configure it to download 4.32? or just manually download it?

ashitsalesforce commented 4 months ago

You can use the one I checked in.

ashitsalesforce commented 4 months ago

It fixes MANIFEST issues found in the original 4.32M1.

jamesongithub commented 4 months ago

thanks! it's working now if i use 4.32M1

it looks like the installer was still pulling in 4.31

ashitsalesforce commented 4 months ago

Good to hear. Apologies for giving you incorrect patch pointer.

jamesongithub commented 4 months ago

Good to hear. Apologies for giving you incorrect patch pointer.

no worries! thanks for your help

ashitsalesforce commented 4 months ago

Hi @jamesongithub , v61.0.0 contains the fix.

jamesongithub commented 4 months ago

Hi @jamesongithub , v61.0.0 contains the fix.

thanks @ashitsalesforce this works out of the box now.

ashitsalesforce commented 4 months ago

Thanks for verifying @jamesongithub