Moneydance needs to leverage JDK 11.0.3+12 LTS to remove issue with non-US Locale Date parsing (dates using text values for months)
I have written an extension that needs to parse (transaction) dates in the form dd MMM yyyy (i.e. contains a textual name for the month) for multiple Locales. Although this works just fine in Eclipse and also in Moneydance with English short month names, i18N Moneydance integration fails because Moneydance packages JDK 11.0.1+13 which will not process non-English Locales properly. Example of month names using this JDK:
-- List of short months: [Jan, Feb, Mar, Apr, May, Jun, Jul, Aug, Sep, Oct, Nov, Dec, ]
-- List of german short months: [Jan, Feb, Mar, Apr, May, Jun, Jul, Aug, Sep, Oct, Nov, Dec, ]
You can test this using the following code:
// DateFormatSymbols in default Locale
final DateFormatSymbols dfs = new DateFormatSymbols();
// DateFormatSymbols in pre defined Locale
final DateFormatSymbols german_dfs = new DateFormatSymbols(Locale.GERMAN);
String[] shortMonths = dfs.getShortMonths();
System.out.print("List of short months: ");
System.out.println(Arrays.toString(shortMonths));
String[] germanShortMonths = german_dfs.getShortMonths();
System.out.print("List of german short months: ");
System.out.println(Arrays.toString(germanShortMonths));
I have replaced the packaged JDK in the Moneydance Application with 11.0.3+12-LTS (which I verified was running my code correctly in Eclipse) by using a symlink for the 'Home' directory. This now allows the extension to work as was designed and month names for alternate Locales now works as shown below:
-- List of short months: [Jan, Feb, Mar, Apr, May, Jun, Jul, Aug, Sep, Oct, Nov, Dec, ]
-- List of german short months: [Jan., Feb., März, Apr., Mai, Juni, Juli, Aug., Sep., Okt., Nov., Dez., ]
Please, can you repackage Moneydance using JDK 11.0.3+12-LTS at a minimum (although I suspect that the bug was fixed in 11.0.2 actually). Thanks in advance.
Comments are currently closed for this discussion. You can start a new one.
Keyboard shortcuts
Generic
? | Show this help |
---|---|
ESC | Blurs the current field |
Comment Form
r | Focus the comment reply box |
---|---|
^ + ↩ | Submit the comment |
You can use Command ⌘
instead of Control ^
on Mac
1 Posted by dwg on 20 Jun, 2019 09:30 PM
I'm a fellow user.
If you believe the issue was resolved in Java 11.0.2, the latest release of Moneydance 2019.3 build 1880 uses Java 11.0.2+9
2 Posted by rapscallion on 20 Jun, 2019 09:39 PM
Hi and thanks for your note. I didn't test Java 11.0.2, so I cannot be certain.
However, I am already using 2019.3.build 1880 and when I look at the packaged JDK (at runtime) by peeking at System properties, java.version was set to Java 11.0.1+13. How did you derive the use of 11.0.2?
3 Posted by dwg on 20 Jun, 2019 09:43 PM
I opened the directory that Moneydance installed Java into and issued a "java -version" command.
4 Posted by rapscallion on 20 Jun, 2019 09:59 PM
i should say that I am running on Mac OS, you?
5 Posted by dwg on 20 Jun, 2019 10:05 PM
Windows
6 Posted by rapscallion on 17 Sep, 2019 04:40 PM
will there be any resolution to this for Mac OS?
Support Staff 7 Posted by Sean Reilly on 17 Sep, 2019 09:43 PM
Hi Mike,
Yes, I've just updated the build system so that we'll be using openjdk 13 for the next preview build. I'm still working on some behind-the-scenes changes and then will push that new preview build soon.
Thanks!
Sean
--
Sean Reilly
Developer, The Infinite Kind
https://infinitekind.com
8 Posted by rapscallion on 17 Sep, 2019 11:56 PM
Hi Sean, Thanks, much appreciated! Regards, Mike.
9 Posted by rapscallion on 26 Oct, 2019 08:03 AM
Any update on the new version availability?
10 Posted by derekkent23 on 26 Oct, 2019 11:57 AM
I am not support staff, just a user.
Preview build 2019.4(1892) is running on Java: 13 (Oracle Corporation).
Download from
https://infinitekind.com/preview
Hope this helps
System closed this discussion on 25 Jan, 2020 12:00 PM.
rapscallion re-opened this discussion on 06 Apr, 2020 03:27 PM
11 Posted by rapscallion on 06 Apr, 2020 03:34 PM
Hi Sean,
I upgraded to the latest preview Moneydance for Mac, but to my surprise the bundled JVM (console log shows 13.01...) does not appear to support the non-English locale date conversions as described earlier in this article.
As a test, I downloaded JDK 13.01 directly from Oracle and installed this on my Mac. I then renamed the vm.jdk folder in the Moneydance directory to 'oldvm.jdk' and symlinked vm.jdk to the downloaded JDK 13.01 version I got from Oracle. Low and behold, it all worked.
So I am unsure what exactly you are packaging as a JDK VM with Moneydance, but it is a problem as dates with non-English locales aren't being properly processed.
Any ideas?
Regards, Mike.
Support Staff 12 Posted by Sean Reilly on 22 Apr, 2020 02:48 PM
Hi Mike,
We use the OpenJDK because Oracle's JDK isn't available for unlimited redistribution, at least not for prices we can afford.
We use jlink to build the JVM bundled with Moneydance. I wonder if there is a certain module missing that could cause what you're seeing?
java.base,java.compiler,java.prefs,java.datatransfer,java.desktop,java.instrument,java.logging,java.management,java.security.sasl,java.naming,java.net.http,java.transaction.xa,java.se,java.security.jgss,java.scripting,java.sql,java.xml.crypto,java.sql.rowset,java.xml,jdk.crypto.ec,jdk.crypto.cryptoki,jdk.accessibility,jdk.unsupported,jdk.unsupported.desktop,jdk.jsobject,jdk.security.auth,jdk.security.jgss,jdk.xml.dom,jdk.zipfs,javafx.swing,javafx.controls,javafx.graphics,javafx.web,jdk.internal.jvmstat,jdk.charsets
Thanks,
Sean
13 Posted by rapscallion on 23 Apr, 2020 07:02 PM
Hi Sean,
I have not used jlink before, but perhaps it is missing something because according to Oracle…
"From Java 11 forward, therefore, Oracle JDK builds and OpenJDK builds <http://jdk.java.net/> will be essentially identical…"
So, I am not sure why the packaged Moneydance OpenJDK acts differently from what I downloaded, but there must be a difference somewhere.
Regards,
Mike.
System closed this discussion on 23 Jul, 2020 07:10 PM.
rapscallion re-opened this discussion on 07 Oct, 2020 12:19 PM
14 Posted by rapscallion on 07 Oct, 2020 12:26 PM
Hi Sean,
I have been using the latest version of Moneydance, but the packaged Java VM is still giving me issues because it will not parse the months correctly (as mentioned earlier in this discussion thread).
I have been using a standalone version of Java SDK as follows to workaround this problem:
1) cd /Applications/Moneydance.app/Contents/Plugns/vm.jdk/Contents
2) mv Home OldHome
3) ln -s path-to-new-Java-Home-dir Home
The issue is probably with 'what' JVM and libraries or 'how' you embed these with Moneydance. I am now using OpenJDK 14.0.2 and this works OK. It's just a pain to have to do this every time a new version of Moneydance is installed through upgrades.
Regards, Mike.
Support Staff 15 Posted by Sean Reilly on 08 Oct, 2020 09:06 AM
Hi Mike,
It looks like the packaging I did of the jvms missed out on the
java.localedata
jmodule which I'd bet caused this. An updated preview will be available ASAP with this fix.However, since there are a bunch of people who won't have this fix I'd recommend as much as possible not using text dates for UI stuff, and certainly not have anything dependent upon locale for non-UI data.
Thanks,
Sean
--
Sean Reilly
Developer, The Infinite Kind
https://infinitekind.com
16 Posted by rapscallion on 08 Oct, 2020 09:09 AM
Hi Sean,
The problem is that I am loading data from PDFs (e.g. Visa card statements) and the dates on the statement are of the form day/text-month, so I cannot change this. I parse the PDF to extract the data and depending on your locale, the month names will be different - i.e. German is different from English which is different from Dutch. So, this functionality is absolutely required.
Regards,
Mike.
Michael P. Leznar
Director | Leznar Software & Services BV
www.leznarsoftware.com
Tel: +31 6 2185 6272
Support Staff 17 Posted by Sean Reilly on 08 Oct, 2020 09:23 AM
Hi Mike,
Ah ok, I see now. So we've got a problem with everyone who already has moneydance without the locale information. I don't think there's any other option than to bundle at least some locale data in your extension.
To help with this I've attached a class that I use in moneydance to interpret dates that could be in any format. It has support for text month names but doesn't yet apply localised names, however it would be easy to add that to the month-name-to-numbers map. Hopefully this can help.
Thanks,
Sean
--
Sean Reilly
Developer, The Infinite Kind
https://infinitekind.com
18 Posted by rapscallion on 08 Oct, 2020 09:29 AM
Hi Sean,
Thanks for your email and the code. However, as I haven’t distributed my extension as yet, there is no issue for anyone but me. I can wait for the amendments to the bundled JVM in Moneydance, I don’t really want to have to add more code when the standard Java JVM code for parsing local specific dates with textual months already does it fine — it’s just that I would like you guys to package the JVM with that functionality please :)
Thanks in advance.
Regards,
Mike.
Michael P. Leznar
Director | Leznar Software & Services BV
www.leznarsoftware.com
Tel: +31 6 2185 6272
Support Staff 19 Posted by Sean Reilly on 08 Oct, 2020 10:06 PM
Hi Mike,
That sounds like a great plan to me. I've already made the change to include the locale module with our custom JVMs, so that'll definitely be in the next release.
Thanks,
Sean
--
Sean Reilly
Developer, The Infinite Kind
https://infinitekind.com
20 Posted by rapscallion on 08 Oct, 2020 10:25 PM
Hi Sean,
Thanks. Let me know when this gets released into beta and I can test it for you :)
Regards,
Mike.
Michael P. Leznar
Director | Leznar Software & Services BV
www.leznarsoftware.com
Tel: +31 6 2185 6272
21 Posted by rapscallion on 01 Jan, 2021 11:56 AM
Just an update... I cannot do this using the new Zulu JDK on a M1 equipped MacBook, as loading the JVM gives an error.
When is it likely that we will get a properly packaged Mac compatible JVM with full I18N support with Moneydance, that runs correctly on both Intel and M1 Macs to resolve this long standing issue?
22 Posted by rapscallion on 17 Mar, 2021 12:30 AM
Still waiting... just upgraded to latest Moneydance, same issue again.
System closed this discussion on 16 Jun, 2021 12:40 AM.