Open Apteryks opened 1 week ago
Using adb and logcat to grab the logs off the device, I could see:
10-08 15:34:40.943 10031 13387 E CsvTransactionsExporter: Error while exporting transactions to CSV
10-08 15:34:40.943 10031 13387 E CsvTransactionsExporter: java.lang.ArithmeticException: Division by zero
10-08 15:34:40.943 10031 13387 E CsvTransactionsExporter: at java.math.BigDecimal.divide(BigDecimal.java:1024)
10-08 15:34:40.943 10031 13387 E CsvTransactionsExporter: at org.gnucash.android.model.Money.div(Money.kt:360)
10-08 15:34:40.943 10031 13387 E CsvTransactionsExporter: at org.gnucash.android.export.csv.CsvTransactionsExporter.writeSplitsToCsv(CsvTransactionsExporter.kt:98)
10-08 15:34:40.943 10031 13387 E CsvTransactionsExporter: at org.gnucash.android.export.csv.CsvTransactionsExporter.generateExport(CsvTransactionsExporter.kt:121)
10-08 15:34:40.943 10031 13387 E CsvTransactionsExporter: at org.gnucash.android.export.csv.CsvTransactionsExporter.generateExport(CsvTransactionsExporter.kt:52)
10-08 15:34:40.943 10031 13387 E CsvTransactionsExporter: at org.gnucash.android.export.ExportAsyncTask.doInBackground(ExportAsyncTask.java:138)
10-08 15:34:40.943 10031 13387 E CsvTransactionsExporter: at org.gnucash.android.export.ExportAsyncTask.doInBackground(ExportAsyncTask.java:90)
10-08 15:34:40.943 10031 13387 E CsvTransactionsExporter: at android.os.AsyncTask$2.call(AsyncTask.java:304)
10-08 15:34:40.943 10031 13387 E CsvTransactionsExporter: at java.util.concurrent.FutureTask.run(FutureTask.java:237)
10-08 15:34:40.943 10031 13387 E CsvTransactionsExporter: at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:243)
10-08 15:34:40.943 10031 13387 E CsvTransactionsExporter: at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1133)
10-08 15:34:40.943 10031 13387 E CsvTransactionsExporter: at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:607)
10-08 15:34:40.943 10031 13387 E CsvTransactionsExporter: at java.lang.Thread.run(Thread.java:762)
10-08 15:34:40.948 10031 13387 E ExportAsyncTask: Error exporting: Failed to generate export GnuCash transactions CSV - Division by zero
10-08 15:34:40.948 10031 13387 E ExportAsyncTask: org.gnucash.android.export.Exporter$ExporterException: Failed to generate export GnuCash transactions CSV - Division by zero
10-08 15:34:40.948 10031 13387 E ExportAsyncTask: at org.gnucash.android.export.csv.CsvTransactionsExporter.generateExport(CsvTransactionsExporter.kt:127)
10-08 15:34:40.948 10031 13387 E ExportAsyncTask: at org.gnucash.android.export.csv.CsvTransactionsExporter.generateExport(CsvTransactionsExporter.kt:52)
10-08 15:34:40.948 10031 13387 E ExportAsyncTask: at org.gnucash.android.export.ExportAsyncTask.doInBackground(ExportAsyncTask.java:138)
10-08 15:34:40.948 10031 13387 E ExportAsyncTask: at org.gnucash.android.export.ExportAsyncTask.doInBackground(ExportAsyncTask.java:90)
10-08 15:34:40.948 10031 13387 E ExportAsyncTask: at android.os.AsyncTask$2.call(AsyncTask.java:304)
10-08 15:34:40.948 10031 13387 E ExportAsyncTask: at java.util.concurrent.FutureTask.run(FutureTask.java:237)
10-08 15:34:40.948 10031 13387 E ExportAsyncTask: at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:243)
10-08 15:34:40.948 10031 13387 E ExportAsyncTask: at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1133)
10-08 15:34:40.948 10031 13387 E ExportAsyncTask: at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:607)
10-08 15:34:40.948 10031 13387 E ExportAsyncTask: at java.lang.Thread.run(Thread.java:762)
10-08 15:34:40.948 10031 13387 E ExportAsyncTask: Caused by: java.lang.ArithmeticException: Division by zero
10-08 15:34:40.948 10031 13387 E ExportAsyncTask: at java.math.BigDecimal.divide(BigDecimal.java:1024)
10-08 15:34:40.948 10031 13387 E ExportAsyncTask: at org.gnucash.android.model.Money.div(Money.kt:360)
10-08 15:34:40.948 10031 13387 E ExportAsyncTask: at org.gnucash.android.export.csv.CsvTransactionsExporter.writeSplitsToCsv(CsvTransactionsExporter.kt:98)
10-08 15:34:40.948 10031 13387 E ExportAsyncTask: at org.gnucash.android.export.csv.CsvTransactionsExporter.generateExport(CsvTransactionsExporter.kt:121)
10-08 15:34:40.948 10031 13387 E ExportAsyncTask: ... 9 more
Seems to be the same underlying problem as reported in https://github.com/GnuCash-Pocket/gnucash-android/issues/98
So the line failing is this one: https://github.com/GnuCash-Pocket/gnucash-android/blob/0d42424e31fa34754fe104140fe9dce8466fb283/app/src/main/java/org/gnucash/android/export/csv/CsvTransactionsExporter.kt#L98
writer.writeEndToken(split.quantity!!.div(split.value!!).formattedStringWithoutSymbol())
where I assume split.value!!
is zero for some reason.
The error appears also for the Quicken Interchange Format (qif).
Steps to reproduce the behaviour
With my GnuCash file loaded:
Export
buttonExpected behaviour
Creates a .csv file with transactions in.
Actual behaviour
Prints a
There are no transactions available to export
message and writes a 0 byte (empty) file.Software specifications