- edited description
ExportToCsv2Cmd.export NullPointerException
I’m getting a NullPointerException
error while trying to export transactions using export.csv2
.
Exporting with export.json
fails with the same exception.
Exporting with export.csv
exports successfully.
I'm running Microsoft Money Plus Deluxe 17.0.120.3817
Let me know if I can help debug this.
$ java --version
java 13 2019-09-17
Java(TM) SE Runtime Environment (build 13+33)
Java HotSpot(TM) 64-Bit Server VM (build 13+33, mixed mode, sharing)
$ java -jar sunriise-export-0.0.2-SNAPSHOT-exec.jar export.csv2 MYMONEY.mny MYPASSWORD exports
2020-01-23 16:54:05,287 [INFO ] [main] ExportToCsv2Cmd.export(ExportToCsv2Cmd.java:54) – dbFile=MYMONEY.mny
2020-01-23 16:54:05,292 [INFO ] [main] ExportToCsv2Cmd.export(ExportToCsv2Cmd.java:55) – outDir=exports
2020-01-23 16:54:05,295 [INFO ] [main] AbstractExportTo.initThreadPool(AbstractExportTo.java:45) – ThreadPool is NOT enable.
2020-01-23 16:54:05,301 [INFO ] [main] MnyDb.openDb(MnyDb.java:420) – # Opening dbFile=MYMONEY.mny, readOnly=true, encrypted=true
2020-01-23 16:54:05,473 [INFO ] [main] AbstractExportToDir.startExportToDir(AbstractExportToDir.java:99) – > startExport, outDir=exports
2020-01-23 16:54:05,717 [WARN ] [main] TableAccountUtils.deserialize(TableAccountUtils.java:405) – Invalid EnumInvestmentSubType=UNKNOWN, mnyType=14, accountName=MYBANK - IRA, Wife Roth
2020-01-23 16:54:05,719 [WARN ] [main] TableAccountUtils.deserialize(TableAccountUtils.java:405) – Invalid EnumInvestmentSubType=UNKNOWN, mnyType=14, accountName=MYBANK - IRA, My Roth
2020-01-23 16:54:05,727 [WARN ] [main] TableAccountUtils.deserialize(TableAccountUtils.java:405) – Invalid EnumInvestmentSubType=UNKNOWN, mnyType=14, accountName=ANOTHER BANK - IRA, Wife Roth
2020-01-23 16:54:05,738 [INFO ] [main] MnyDb.close(MnyDb.java:223) – Closing dbFile=MYMONEY.mny
2020-01-23 16:54:05,745 [INFO ] [main] ExportToCsv2Cmd.export(ExportToCsv2Cmd.java:71) – < DONE
Exception in thread "main" java.lang.reflect.InvocationTargetException
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:567)
at org.springframework.boot.loader.MainMethodRunner.run(MainMethodRunner.java:48)
at org.springframework.boot.loader.Launcher.launch(Launcher.java:87)
at org.springframework.boot.loader.Launcher.launch(Launcher.java:51)
at org.springframework.boot.loader.PropertiesLauncher.main(PropertiesLauncher.java:597)
Caused by: java.lang.NullPointerException
at com.hungle.sunriise.dbutil.TableAccountUtils.deserialize(TableAccountUtils.java:403)
at com.hungle.sunriise.dbutil.TableAccountUtils.getAccounts(TableAccountUtils.java:311)
at com.hungle.sunriise.dbutil.TableAccountUtils.getAccounts(TableAccountUtils.java:295)
at com.hungle.sunriise.dbutil.TableAccountUtils.getMap(TableAccountUtils.java:657)
at com.hungle.sunriise.util.MnyContextUtils.initMnyContext(MnyContextUtils.java:86)
at com.hungle.sunriise.util.MnyContextUtils.createMnyContext(MnyContextUtils.java:55)
at com.hungle.sunriise.account.AbstractAccountVisitor._visit(AbstractAccountVisitor.java:242)
at com.hungle.sunriise.export.AbstractExportToDir.exportToDir(AbstractExportToDir.java:83)
at com.hungle.sunriise.export.AbstractExportToDir.export(AbstractExportToDir.java:59)
at com.hungle.sunriise.export.AbstractExportTo.export(AbstractExportTo.java:196)
at com.hungle.sunriise.export.cvs2.ExportToCsv2Cmd.export(ExportToCsv2Cmd.java:67)
at com.hungle.sunriise.export.cvs2.ExportToCsv2Cmd.main(ExportToCsv2Cmd.java:43)
at app.ExportToCsv2.main(ExportToCsv2.java:16)
at app.ModuleExportMain.main(ModuleExportMain.java:59)
... 8 more
$ cat sunriise-log.txt
2020-01-23 16:54:05,287 [INFO ] [main] ExportToCsv2Cmd.export(ExportToCsv2Cmd.java:54) – dbFile=MYMONEY.mny
2020-01-23 16:54:05,292 [INFO ] [main] ExportToCsv2Cmd.export(ExportToCsv2Cmd.java:55) – outDir=exports
2020-01-23 16:54:05,295 [INFO ] [main] AbstractExportTo.initThreadPool(AbstractExportTo.java:45) – ThreadPool is NOT enable.
2020-01-23 16:54:05,301 [INFO ] [main] MnyDb.openDb(MnyDb.java:420) – # Opening dbFile=MYMONEY.mny, readOnly=true, encrypted=true
2020-01-23 16:54:05,473 [INFO ] [main] AbstractExportToDir.startExportToDir(AbstractExportToDir.java:99) – > startExport, outDir=exports
2020-01-23 16:54:05,717 [WARN ] [main] TableAccountUtils.deserialize(TableAccountUtils.java:405) – Invalid EnumInvestmentSubType=UNKNOWN, mnyType=14, accountName=MYBANK - IRA, Wife Roth
2020-01-23 16:54:05,719 [WARN ] [main] TableAccountUtils.deserialize(TableAccountUtils.java:405) – Invalid EnumInvestmentSubType=UNKNOWN, mnyType=14, accountName=MYBANK - IRA, My Roth
2020-01-23 16:54:05,727 [WARN ] [main] TableAccountUtils.deserialize(TableAccountUtils.java:405) – Invalid EnumInvestmentSubType=UNKNOWN, mnyType=14, accountName=ANOTHER BANK - IRA, Wife Roth
2020-01-23 16:54:05,738 [INFO ] [main] MnyDb.close(MnyDb.java:223) – Closing dbFile=MYMONEY.mny
2020-01-23 16:54:05,745 [INFO ] [main] ExportToCsv2Cmd.export(ExportToCsv2Cmd.java:71) – < DONE
I get the same exception using sunriise-export-0.0.1-SNAPSHOT-exec.jar
.
Thanks!
Lance
Comments (24)
-
reporter -
reporter - edited description
-
Getting similar error on csv export. Running Microsoft MOney DEluxe Version 14.0.120.1105
…
2021-03-02 20:53:33,458 [INFO ] [pool-2-thread-1] ExportToDirTask.run(ExportToDirTask.java:88) û took 1 second
2021-03-02 20:53:33,474 [INFO ] [pool-2-thread-1] ExportToDirTask.run(ExportToDirTask.java:89) û < DONE, exported to dir=C:\sunriise.\exports\csv
Exception in thread "pool-2-thread-1" java.lang.NullPointerException: Cannot invoke "java.lang.Integer.compareTo(java.lang.Integer)" because "id" is null
at com.hungle.sunriise.prices.OldGetLatestSecurityPricesUtils.getSecurityLatestPriceByCollecting(OldGetLatestSecurityPricesUtils.java:107)
at com.hungle.sunriise.prices.OldGetLatestSecurityPricesUtils.getSecurityLatestPrice(OldGetLatestSecurityPricesUtils.java:49)
at com.hungle.sunriise.util.BalanceUtils.collectSecurityHolding(BalanceUtils.java:278)
at com.hungle.sunriise.util.BalanceUtils.calculateInvestmentBalance(BalanceUtils.java:201)
at com.hungle.sunriise.util.BalanceUtils.calculateAndSetInvestmentBalance(BalanceUtils.java:195)
at com.hungle.sunriise.util.BalanceUtils.calculateAndSetBalance(BalanceUtils.java:78)
at com.hungle.sunriise.dbutil.TableAccountUtils.addTransactionsToAccount(TableAccountUtils.java:545)
at com.hungle.sunriise.account.AbstractAccountVisitor._visitAccount(AbstractAccountVisitor.java:292)
at com.hungle.sunriise.account.AbstractAccountVisitor._visit(AbstractAccountVisitor.java:238)
at com.hungle.sunriise.export.AbstractExportToDir.exportToDir(AbstractExportToDir.java:80)
at com.hungle.sunriise.export.AbstractExportToDir.export(AbstractExportToDir.java:59)
at com.hungle.sunriise.export.AbstractExportTo.export(AbstractExportTo.java:191)
at com.hungle.sunriise.export.ui.ExportToDirTask.run(ExportToDirTask.java:70)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1130)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:630)
at java.base/java.lang.Thread.run(Thread.java:832)
2021-03-02 20:53:33,707 [INFO ] [AWT-EventQueue-0] MnyExporterFrame$4.run(MnyExporterFrame.java:265) û Wrote to diskUsage file=C:\sunriise.\exports\ourmoneytest-du.csv
2021-03-02 20:53:33,707 [INFO ] [AWT-EventQueue-0] MnyExporterFrame$4.run(MnyExporterFrame.java:269) û < calculateDiskUsage -
reporter I'm revisiting this with
sunriise-export-0.0.2-SNAPSHOT
and the issue persists. Again,export.csv2
andexport.json
fail whileexport.csv
is successful.I have 32 years of data in Microsoft Money and would very much like to be able to export it!
2023-01-10 01:36:20,951 [INFO ] [main] ExportToCsv2Cmd.export(ExportToCsv2Cmd.java:53) – dbFile=/opt/app/mnydata/mymoney.mny 2023-01-10 01:36:20,961 [INFO ] [main] ExportToCsv2Cmd.export(ExportToCsv2Cmd.java:54) – outDir=/opt/app/mnydata 2023-01-10 01:36:20,963 [INFO ] [main] AbstractExportTo.initThreadPool(AbstractExportTo.java:45) – ThreadPool is NOT enable. 2023-01-10 01:36:20,977 [INFO ] [main] MnyDb.openDb(MnyDb.java:380) – # Opening dbFile=/opt/app/mnydata/mymoney.mny, readOnly=true, encrypted=true 2023-01-10 01:36:21,101 [INFO ] [main] AbstractExportToDir.startExportToDir(AbstractExportToDir.java:96) – > startExport, outDir=/opt/app/mnydata 2023-01-10 01:36:21,296 [WARN ] [main] TableAccountUtils.deserialize(TableAccountUtils.java:443) – Invalid EnumInvestmentSubType=UNKNOWN, mnyType=14, accountName=My Roth IRA 2023-01-10 01:36:21,308 [INFO ] [main] MnyDb.close(MnyDb.java:206) – Closing dbFile=/opt/app/mnydata/mymoney.mny 2023-01-10 01:36:21,330 [INFO ] [main] ExportToCsv2Cmd.export(ExportToCsv2Cmd.java:70) – < DONE Exception in thread "main" java.lang.reflect.InvocationTargetException at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:116) at java.base/java.lang.reflect.Method.invoke(Method.java:578) at org.springframework.boot.loader.MainMethodRunner.run(MainMethodRunner.java:48) at org.springframework.boot.loader.Launcher.launch(Launcher.java:87) at org.springframework.boot.loader.Launcher.launch(Launcher.java:51) at org.springframework.boot.loader.PropertiesLauncher.main(PropertiesLauncher.java:597) Caused by: java.lang.NullPointerException: Cannot invoke "java.lang.Integer.intValue()" because "mnyType" is null at com.hungle.sunriise.dbutil.TableAccountUtils.deserialize(TableAccountUtils.java:441) at com.hungle.sunriise.dbutil.TableAccountUtils.getAccounts(TableAccountUtils.java:349) at com.hungle.sunriise.dbutil.TableAccountUtils.getAccounts(TableAccountUtils.java:333) at com.hungle.sunriise.dbutil.TableAccountUtils.getMap(TableAccountUtils.java:708) at com.hungle.sunriise.util.MnyContextUtils.initMnyContext(MnyContextUtils.java:96) at com.hungle.sunriise.util.MnyContextUtils.createMnyContext(MnyContextUtils.java:57) at com.hungle.sunriise.account.AbstractAccountVisitor._visit(AbstractAccountVisitor.java:219) at com.hungle.sunriise.export.AbstractExportToDir.exportToDir(AbstractExportToDir.java:81) at com.hungle.sunriise.export.AbstractExportToDir.export(AbstractExportToDir.java:60) at com.hungle.sunriise.export.AbstractExportTo.export(AbstractExportTo.java:191) at com.hungle.sunriise.export.cvs2.ExportToCsv2Cmd.export(ExportToCsv2Cmd.java:66) at com.hungle.sunriise.export.cvs2.ExportToCsv2Cmd.main(ExportToCsv2Cmd.java:42) at app.ExportToCsv2.main(ExportToCsv2.java:15) at app.ModuleExportMain.main(ModuleExportMain.java:65) at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:104) ... 5 more
I'm using the latest openjdk in a container now.
% java -version openjdk version "21-ea" 2023-09-19 OpenJDK Runtime Environment (build 21-ea+4-184) OpenJDK 64-Bit Server VM (build 21-ea+4-184, mixed mode, sharing)
-
Hi all,
First I am really sorry about missing these issues. I was relying on email notification and I guess they all got flag as spam so I’ve not seen them.
I will take a quick look. My quick guess is that you have an account type that the current codes does not know about. In general, I have to guess on the account type and I think you have an account type that I’ve yet to ran across.
-
reporter After a few hours of trial and error, I'm happy to report I made a successful run of
export.csv2
! I have 212 accounts so it took some timeThe account causing the
"mnyType" is null
error was the "Investments to Watch" account Money created automatically three decades ago. I deleted this account and the csv export ran to completion. (I first unchecked the "Watch account" setting for that account but it did not remedy the failure.)The json export still fails, but with a new error, which I'll post in a separate issue.
Here are the
WARN
messages I received.One of these for each "Roth IRA" investment account. I cannot discern in the accounts' Settings page what makes them different from the dozens of other "normal IRA" accounts I have setup....
TableAccountUtils.deserialize(TableAccountUtils.java:443) – Invalid EnumInvestmentSubType=UNKNOWN, mnyType=14, accountName=My Roth IRA
A couple of these:
BalanceUtils.getCashAccountValue(BalanceUtils.java:408) – getCashAccountValue - relatedToAccount is null. account=Investment Account 1
A few of these:
TableTransactionUtils.createInvestmentTransaction(TableTransactionUtils.java:387) – Cannot find investmentTransaction for id=15773, investmentActivity=Return of Capital
A few of these:
TableTransactionUtils.createInvestmentTransaction(TableTransactionUtils.java:387) – Cannot find investmentTransaction for id=43611, investmentActivity=ACTIVITY_UNKNOWN
If you can add some detailed debug messages for these issues, I’ll happily run it again!
-
After a few hours of trial and error, I'm happy to report I made a successful run of
export.csv2
! I have 212 accounts so it took some time ..Nice!
The account causing the
"mnyType" is null
error was the "Investments to Watch"Thanks for that info. I will create sample test for that.
One of these for each "Roth IRA" investment account.
I will try to find if I can create a test account for “Roth IRA”
For the rest of the warnings, I will try to find the places where they occured and will try to spit out more useful info.
Agains thanks for the detail report.
Best,
-
Re: the NPE exception causing by “Investment to Watch” account.
I can’t quite duplicate it. It looks like in your file (somehow that account as a null value for the column to represent the investment subtype). In my sample.mny file my “Investment to Watch” has a non-null value of -1
2023-01-10 23:37:06,575 [INFO ] [AWT-EventQueue-0] TableAccountUtils.deserialize(TableAccountUtils.java:441) – XXX - COL_INVESTMENT_SUB_TYPE, name=Investments to Watch, mnyType=-1
But I will add a guard for the next build.
-
Re: ‘TableAccountUtils.deserialize(TableAccountUtils.java:443) – Invalid EnumInvestmentSubType=UNKNOWN, mnyType=14, accountName=My Roth IRA’
I only know about the following subtype
public enum EnumInvestmentSubType { // 0: 403(b) // 1: 401k // 2: IRA // 3: Keogh /** The _403b. */ _403b(0), /** The _401k. */ _401k(1), /** The ira. */ IRA(2), /** The keogh. */ KEOGH(3), /** The retirement. */ RETIREMENT(11), /** Not applicable. */ NOT_APPLICABLE(-1), /** The unknown. */ UNKNOWN(-2),;
I think it should not cause issue per se (as far as I can tell). It just mean it will identify that investment account type as
UNKNOWN
.I will see if I can create an account type that has the internal ID 14.
-
Looking at money diaglog
I think I’ve only seen the a few types from that list so anything else not currently identified in the above
EnumInvestmentSubType
will be identified as UNKNOWN. There is no documentation on this so I only know what I actually see in my mny files. So now we know 14 is Roth IRA. -
Re:
BalanceUtils.getCashAccountValue(BalanceUtils.java:408) – getCashAccountValue - relatedToAccount is null. account=Investment Account 1
I think that simply mean account “Investment Account 1” does not have a associated Cash Account. Can you confirm if that is the case?
-
The two warnings
TableTransactionUtils.createInvestmentTransaction(TableTransactionUtils.java:387) – Cannot find investmentTransaction for id=15773, investmentActivity=Return of Capital
TableTransactionUtils.createInvestmentTransaction(TableTransactionUtils.java:387) – Cannot find investmentTransaction for id=43611, investmentActivity=ACTIVITY_UNKNOWN
money uses a bunch of bitmap in certain columns to try to convey type information. Most of this I have to guess: guessing how to decode a masking map is not a “most straight-forward” to say the least ;-)
To give you a flavor, this is what I do to guess if an account type is of type “Investment”
public boolean isInvestment() { // bit 4 == investment trn (need to figure out how to tell what // kind--other grftt bits?) int mask = (1 << 4); return isSet(flag, mask); }
In this case, I have guess those transaction is of type Investment and I tried to look up such transaction and not able to do so. Let me think on how to best proceed next to get the right data from you.
-
reporter I think that simply mean account “Investment Account 1” does not have a associated Cash Account. Can you confirm if that is the case?
Yes, neither investment account has an associated cash account. Both accounts have their "Track cash transactions" setting unchecked, and their "Cash Transactions" links are greyed out.
(As an aside, I do find this fact unusual. I notice that their "Buy" transactions have a blank "Transfer from" which I can't imagine would have been the case. Both accounts were created in 1995, and this file has been through a lot of Money upgrades over the years, so who knows what happened!)
-
reporter Cannot find investmentTransaction for id=15773, investmentActivity=Return of Capital
All the "Return of Capital" transactions look like proper account transfers in the csv export. In the account ledger they have an Activity of “Return of Capital” with no associated category. For example, transaction
15773
(given category "income" in the csv export) is counterpart to transaction15774
that transfers from the investment account to its cash account. I wonder what "investmentTransaction" it is unable to find?Cannot find investmentTransaction for id=43611, investmentActivity=ACTIVITY_UNKNOWN
All of the "ACTIVITY_UNKNOWN" transactions also look like proper account transfers in the csv export. In the account ledger they have an Activity of "Other Income" with an associated category. For example, transaction
43611
has category "Capital Gains" and is counterpart to transaction43612
that transfers from an investment account to its cash account.Perhaps related to the lookup failure- one of the "ACTIVITY_UNKNOWN" transactions has an incorrect name in the
account
field. Theaccountid
is correct (166) butaccount
is set to that ofaccountid
161. -
reporter Here are two other oddities I have noticed in my exported data...
- All my non-blank
number
field values are prefixed with a0
or1
. Checks begin with a0
followed by a series of spaces (eg.0 2792
) and ATM transactions are prefixed with1
(eg.1ATM
). - I have 5 transactions, each for a different "loan" account from the mid-1990's, whose date is
10000/02/28
. (The json value is"10000-02-28T00:00:00.000+0000"
). They all have very lowid
values (between 4 and 28) which does not seem legitimate. None appear in the account transaction ledger. In fact, best I can tell, if the account has 40 transactions, the one with the bad date is the 41st.)
- All my non-blank
-
Hi Lance, can I ask you to try something new. There is a GUI tool that can be used to display the content of a mny file. The tool is called accountviewer.
My idea is to see if this tool also show the same error you are seeing the export (extra prefix 0/1 and bad date 10000 …) so that we can triage if the problem with the CVS output or actual with the “internal model”.
I hope it is straightforward to run but if you have issue, please post here. Again please use JDK 11 (for now)
-
reporter Unfortunately, both the the odd
number
anddate
do appear in accountviewer.For the odd dates, I have 7 loan accounts - 2 mortgages and 5 "regular" loans. All 5 regular loans have the odd dated transaction at the end.
Unrelated to the above, but may point to a different future issue, running the accountviewer from your new
dist-sunriise-test
repo fails with an exception, using both Oracle Java 11 JDK and Java 17 JDK on my Windows 11 machine.C:\Users\lance\Downloads>java -version java version "11.0.17" 2022-10-18 LTS Java(TM) SE Runtime Environment 18.9 (build 11.0.17+10-LTS-269) Java HotSpot(TM) 64-Bit Server VM 18.9 (build 11.0.17+10-LTS-269, mixed mode) C:\Users\lance\Downloads>java -jar sunriise-accountviewer-0.0.2-SNAPSHOT-exec.jar Exception in thread "main" java.lang.ClassNotFoundException: com.hungle.sunriise.accountviewer.AccountViewer at java.base/java.net.URLClassLoader.findClass(URLClassLoader.java:476) at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:588) at org.springframework.boot.loader.LaunchedURLClassLoader.loadClass(LaunchedURLClassLoader.java:92) at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:521) at org.springframework.boot.loader.MainMethodRunner.run(MainMethodRunner.java:46) at org.springframework.boot.loader.Launcher.launch(Launcher.java:87) at org.springframework.boot.loader.Launcher.launch(Launcher.java:51) at org.springframework.boot.loader.PropertiesLauncher.main(PropertiesLauncher.java:598)
I can successfully run
export
.C:\Users\lance\Downloads>java -jar sunriise-export-0.0.2-SNAPSHOT-exec.jar 2023-01-12 12:08:35,726 [INFO ] [main] MnyExporterFrame.addToolsMenu(MnyExporterFrame.java:573) û > addToolsMenu
-
Exception in thread "main" java.lang.ClassNotFoundException: com.hungle.sunriise.accountviewer.AccountViewer
Thanks for catching that. Will fix.
-
All 5 regular loans have the odd dated transaction at the end.
For the entries that have the odd dates, how does money display the date?
-
reporter None of the odd dated transactions appear in the account transaction ledger. They’re all just an extra transaction at the end of the export. Here’s the Money ledger for the account above.
-
reporter I tried to create a Money file that only contains the accounts with odd dates, but Money won’t let me delete three of my accounts, saying “This operation cannot be performed.” I ran a Standard Repair on the file and that didn’t help. Very odd that it can’t delete them!
-
None of the odd dated transactions appear in the account transaction ledger.
Interesting … Hmm .. let me give this some thoughts to see what we can do to get more info to take the next steps.
-
but Money won’t let me delete three of my accounts, saying “This operation cannot be performed.” I ran a Standard Repair on the file and that didn’t help. Very odd that it can’t delete them!
Not to scare you ;-) but I think that might be an indication that there are something not quite right with your mny file internal database structure. I think the best advice I can give at this point is to make sure to have good backup.
-
reporter Given how many times Money “upgraded” its database over the years, I’d be surprised if it wasn’t goofed up a bit I don’t notice any issues with day-to-day use though, so that’s reassuring.
Using mdb-explorer to review the
TRN
table, I notice that all mydtSent
,dtCleared
anddtPost
(mostly) are also that funny dateMon Feb 28 00:00:00 EST 10000
. Perhaps Money setsdt
to this "null date" for transactions it can't delete but wants to ignore? Here's a screenshot of offending transactionID=24
shown above.
- Log in to comment