Code Monkey home page Code Monkey logo

jgnash's Introduction

jGnash Logo

jGnash README

jGnash is a free (no strings attached!) personal finance manager with many of the same features as commercially-available software. It was created in order to make tracking personal finances easy, but also provides the functionality needed by advanced users. jGnash is cross-platform and will run on any operating system that has a current Java Runtime Environment (e.g., Linux, Mac OS X, and Microsoft Windows).

  • jGnash requires Java 11 or newer and is compatible with the open source OpenJDK Platform, and the Oracle JVM as well.

See the Requirements section below for more details.

About jGnash

jGnash Features

  • Operates on any operating system with Java 11 or newer installed

  • Double Entry Accounting with reconciliation tools

  • OFX, QFX, mt940, and QIF import capabilities

  • Investment Accounts and automatic import of Stocks, Bond, and Funds price history

  • Nestable accounts with automatic rollup of totals and intelligent handling of mixed currencies

  • Reminders with automatic transaction entry

  • Intelligent handling of multiple currencies and exchange rates with automatic online exchange rate updates

  • Printable reports with PDF and spreadsheet export capability

  • XML, Binary, and multiple relational database file formats

  • Supports concurrent multiple users over a network

To learn more about the features of jGnash, visit the jGnash Website.

The jGnash download includes a user manual to help get you started with the basics if you are new to tracking finances. It also covers some of the more subtle features, command line options, and shortcuts that are not immediately obvious.

The latest version of jGnash uses OpenJFX for the user interface. This replaces the old version that used Java Swing for the user interface. Experienced jGnash users will notice interface improvements. For example, try using the vertical and horizontal scroll wheels in a date picker, and the collapsible transaction forms.

Donations

Donations are always welcome and appreciated. This helps to defer the cost of computer hardware and internet access.

PayPal

Support

The jGnash Help Group is always a good source if you need help and is the prefered method of contact. Your first post to the group will be moderated to filter spam.

Please use the search tool to check for similar questions.

The preferred method of reporting bugs is to use the Github Issue tracker.

Requirements

1. Java

Java 11 or newer is required to run jGnash. Unless you have a specific need for a newer version, Java 11 is currently recommended.

Use of a prebuilt installer is recommended.

Note
When performing a manual installation of Java, The JAVA_HOME Environment Variable must be set. Also, the Java bin directory must be added to the execution path.
Note
If you have multiple versions of Java installed on your system, The JAVA_HOME Environment Variable must be set to Java 11 or newer and the related Java bin directory must be the only version in the execution path. Mixing JVM and JDK versions will confuse the bootloader.

Use of an OpenJDK package is recommended over use of Oracle JDK due to licensing requirements

2. OpenJFX

jGnash uses OpenJFX for the user interface, but will automatically download and place the needed components within the lib directly of the jGnash installation. Portions of the OpenJFX components are OS specific and cannot be shared between different operating systems.

3. Supported Operating Systems: Windows, Linux, or Mac OS X.

Microsoft Windows

  • any Windows release that can run the required version of Java

Linux

  • any Linux distribution that can run the required version of Java

Note
jGnash is not compatible with GCJ pre-installed on older Linux distributions. You will need to install OpenJDK 11 for jGnash to operate correctly.

Mac OS X

  • Mac OS X 10.8.3 or later

  • can run the required version of Java

Be sure to read the section about installing on Mac OS X to create the startup script.

Download jGnash

You can download jGnash from the jGnash Download Page. Download button

To Install jGnash

  1. Install the latest version of Java 11 if you don’t already have it installed. jGnash has been tested and is know to work on Java 12 through 14.

    • Developers will want the complete Java Development Kit (see build instructions below.)

  2. Unzip all files into a directory of your choice leaving the directory structure unchanged.

Windows Installation:

Some Windows users with restricted rights may experience write access issues (Access is denied exception) with jGnash downloading the JavaFX dependencies.

Unzipping and placing jGnash into %AppData%\jGnash will ensure the users has proper write access.

Mac OS X Installation:

  1. Copy the jGnash folder to /Applications and remove the version extension so that the final path looks like /Applications/jGnash.

  2. Create an AppleScript that will run the application:

    1. Open the AppleScript Editor.

    2. Create the following script:

      try
          do shell script "/Applications/jGnash/jGnash"
      end try
    3. Save it as an Application called jGnash.app in /Applications/jGnash

  3. Instead of step 2, you can set the /Applications/jGnash/jGnash file to Open with…​ Terminal.app (the Terminal application).

To Run:

Executable files are provided for Windows and UN*X users at the root of the installation directory. (These are .exe and bash shell files, respectively). Mac OS X users will have created application launch files per the Mac installation instructions.

Note
jGnash will need to be restarted after the first launch of a new version. Operating System specific files are download and a restart is required for correct operation.
  • Windows: Simply double-click on the jGnash.exe file.

  • UN*X / MacOS: Start jGnash with the provided jGnash Bash script. If jGnash fails to launch, check your file permissions and make sure they are set to be executable or use an unzip tool that preserves file permissions.

An example for UN*X users is shown below assuming you have changed to the installation directory:

./jGnash

Mac OS X: Run the application file you created per the Mac installation instructions.

Building and Development

Travis-CI Build Status Build Status

Development List

The Google Groups jGnash Developer list is the best place to start if you have questions or ideas. Initial posts will are moderated to prevent spam.

Development Tools

The IDE used for the development of jGnash is IntelliJ IDEA, but any IDE that supports a Gradle build environment should work.

IntelliJIDEA Logo

Building jGnash:

Gradle is used as the primary build system for jGnash. The Gradle Wrapper is included (gradlew shell and .bat files) so that you do not need to install Gradle. The Wrapper will automatically download the necessary dependencies.

Note
Depending on your OS (almost always Windows and OSX) the JCE Unlimited Strength Jurisdiction Policy Files for Java are needed for the unit tests to complete correctly. If you do not want to install these files or are restricted by your locale, modify the test build or disable tests. jGnash uses encryption for client / server communication and unit tests are performed to prevent regressions.

To build jGnash you’ll need the following software installed and correctly configured on your system:

OpenJDK 11 or later.

If you are building with a recent 64bit Linux system, you may need to enable Multilib/32 Bit support capabilities. Otherwise, the Gradle build may fail when building the windows executables.

To create the distribution zip file, start at the main directory and run the gradle task to clean and create the distribution:

Building on Windows:

gradlew clean distZip

Building on UN*X or Mac OS X:

./gradlew clean distZip

This will run the Gradle tasks necessary to execute core tests and create the distribution file. The distributable zip file will be produced at the root of the build directory called jGnash-version-bin.zip.

jgnash's People

Contributors

alexwerz avatar ccavanaugh avatar cheezecat avatar karakays avatar kevinzhwl avatar kumarpranay avatar leeboardtools avatar marceloabelda avatar msgilligan avatar pchurzin avatar sschuberth avatar t-pa avatar valnaumov avatar weedyseadragon avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

jgnash's Issues

MacOSX new install cannot load AbstractAuthenticator

MacOSX 10.13.1
java -version

java version "1.8.0_60"
Java(TM) SE Runtime Environment (build 1.8.0_60-b27)
Java HotSpot(TM) 64-Bit Server VM (build 25.60-b23, mixed mode)

Steps to reproduce

  1. Downloaded a new archive jgnash-2.33.1-bin.zip from the download site.
  2. Copied extracted contents to /Applications
  3. Ran java -classpath /Applications/jGnash-2.33.1/lib -jar /Applications/jGnash-2.33.1/lib/jgnash-fx-2.33.1.jar (I tried the swing version too, but same error)

Exception in thread "JavaFX Application Thread" Exception in thread "main" java.lang.reflect.InvocationTargetException
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:497)
at sun.launcher.LauncherHelper$FXHelper.main(LauncherHelper.java:767)
Caused by: java.lang.NullPointerException
at com.sun.javafx.application.LauncherImpl.launchApplicationWithArgs(LauncherImpl.java:383)
at com.sun.javafx.application.LauncherImpl.launchApplication(LauncherImpl.java:328)
... 5 more
java.lang.NoClassDefFoundError: jgnash/net/AbstractAuthenticator
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:760)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:467)
at java.net.URLClassLoader.access$100(URLClassLoader.java:73)
at java.net.URLClassLoader$1.run(URLClassLoader.java:368)
at java.net.URLClassLoader$1.run(URLClassLoader.java:362)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:361)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:348)
at com.sun.javafx.application.LauncherImpl.lambda$launchApplicationWithArgs$157(LauncherImpl.java:352)
at com.sun.javafx.application.PlatformImpl.lambda$runAndWait$176(PlatformImpl.java:326)
at com.sun.javafx.application.PlatformImpl.lambda$null$174(PlatformImpl.java:295)
at java.security.AccessController.doPrivileged(Native Method)
at com.sun.javafx.application.PlatformImpl.lambda$runLater$175(PlatformImpl.java:294)
at com.sun.glass.ui.InvokeLaterDispatcher$Future.run(InvokeLaterDispatcher.java:95)
Caused by: java.lang.ClassNotFoundException: jgnash.net.AbstractAuthenticator
at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
... 20 more

Where are my investments?

Show investment report

Actual Behavior not showing ANY account!!!

image

Steps to Reproduce the Problem

  1. Reports
  2. Accounts
  3. Portfolio

Specifications

  • jGnash Version: all
  • Operating System: w10
  • Java Version

Reconcile Statement Date should be able to default to "last day of month"

Expected Behavior

For accounts with "end of month" statements, default Reconcile Statement Date should be last day of the month, not the Statement Date of the previous reconcile. For example, if you reconcile with a Statement Date of Oct. 31, then Nov. 30, the default Dec Statement Date should be Dec. 31, not Dec. 30.

Unsure if this could be accomplished via remembering that 31 was the last manual chosen date, or if accounts need a special flag to indicate they receive end of month statements.

Actual Behavior

Reconciling with a Statement Date of Nov 30 will lead to a default Statement date of Dec 30.

Steps to Reproduce the Problem

I think this is an accurate description of the problem, but I'm not certain how best to reproduce on demand either...

  1. Choose an account with unreconciled transactions in the previous month, which has 30 days (e.g. November)
  2. Press Reconcile button
  3. Choose Nov 30 as Statement Date
  4. Reconcile as normal
  5. In January, choose same account and press Reconcile again - note that Dec 30 is chosen as Statement Date rather than Dec 31

Specifications

  • jGnash Version: 2.36.1
  • Operating System: Linux Mint 18.3
  • Java Version:
openjdk version "1.8.0_191"
OpenJDK Runtime Environment (build 1.8.0_191-8u191-b12-0ubuntu0.16.04.1-b12)
OpenJDK 64-Bit Server VM (build 25.191-b12, mixed mode)

Version 3.5.0 won't start on Windows

Expected Behavior

jGnash starts when double-clicking jGnash.exe on Windows 10.

Previous version works correctly.

Actual Behavior

Nothing happens.

Steps to Reproduce the Problem

  1. Download and extract jGnash 3.5.0
  2. Double-click jGnash.exe

Specifications

  • jGnash Version: 3.5.0
  • Operating System: Windows 10
  • Java Version:
C:\Users\lbakken> java -version
openjdk version "13.0.2" 2020-01-14
OpenJDK Runtime Environment AdoptOpenJDK (build 13.0.2+8)
OpenJDK 64-Bit Server VM AdoptOpenJDK (build 13.0.2+8, mixed mode, sharing)
C:\Users\lbakken> dir Env:\JAVA_HOME

Name                           Value
----                           -----
JAVA_HOME                      C:\Program Files\AdoptOpenJDK\jdk-13.0.2.8-hotspot\

javafx not being downloaded to a location jGnash can find

Expected Behavior

jGnash should immediately be able to run on Linux Mint 18.3 (Ubuntu 16.04) without Java shenanigans.

Actual Behavior

Have to manually copy javafx .jars around to get things running.

Maybe the startup scripts need to put ~/lib in the Java classpath?

Steps to Reproduce the Problem

  1. Unpack jGnash
  2. run bin/bootloader - javafx jars will be downloaded
  3. run bin/bootloader - error about not finding javafx classes
  4. copy jars in ~/lib to jGnash lib folder (not move, as that will prompt a re-download)
  5. now bin/bootloader will start jGnash

Specifications

  • jGnash Version: 3.1.0
  • Operating System: Linux Mint 18.3 (Ubuntu 16.04)
  • Java Version: 8

Exe launcher fails when JDK 11 is present

Actual Behavior

jGnashFx.exe does not launch the app starting 2.35.0, although the bat script does.

Specifications

  • jGnash Version: starting 2.35.0
  • Operating System: Windows 10
  • Java Version: 1.8.0_181

JDK 11.0.1 is also installed on the system. If I rename the JDK folder, it works. Could you point to what has changed in the packaging process in 2.35.0?

I hope to see a bundled JRE with the app with the comming of Java 9. I don't mind extra 100MB.

Building error (Windows 10)

drag@DESKTOP-8KA05HT MINGW64 /c/Work/java/jgnash (master)
$ mvn package
[INFO] Scanning for projects...
[INFO] ------------------------------------------------------------------------
[INFO] Reactor Build Order:
[INFO]
[INFO] jGnash
[INFO] jGnash Bayes
[INFO] jGnash Help
[INFO] jGnash Resources
[INFO] jGnash Core
[INFO] jGnash Report Core
[INFO] jGnash Convert
[INFO] jGnash Plugin
[INFO] JIDE Software
[INFO] jGnash Swing
[INFO] jGnash JavaFx
[INFO] mt940 Plugin
[INFO] jGnash Test Plugin
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] Building jGnash 2.25.0
[INFO] ------------------------------------------------------------------------
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] Building jGnash Bayes 2.25.0
[INFO] ------------------------------------------------------------------------
[INFO]
[INFO] --- maven-resources-plugin:2.6:resources (default-resources) @ jgnash-bayes ---
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] skip non existing resourceDirectory C:\Work\java\jgnash\jgnash-bayes\src\main\resources
[INFO]
[INFO] --- maven-compiler-plugin:3.3:compile (default-compile) @ jgnash-bayes ---
[INFO] Nothing to compile - all classes are up to date
[INFO]
[INFO] --- maven-resources-plugin:2.6:testResources (default-testResources) @ jgnash-bayes ---
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] skip non existing resourceDirectory C:\Work\java\jgnash\jgnash-bayes\src\test\resources
[INFO]
[INFO] --- maven-compiler-plugin:3.3:testCompile (default-testCompile) @ jgnash-bayes ---
[INFO] Nothing to compile - all classes are up to date
[INFO]
[INFO] --- maven-surefire-plugin:2.12.4:test (default-test) @ jgnash-bayes ---
[INFO] Surefire report directory: C:\Work\java\jgnash\jgnash-bayes\target\surefire-reports

-------------------------------------------------------
 T E S T S
-------------------------------------------------------
Running jgnash.bayes.BayesClassifierTest
Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.094 sec

Results :

Tests run: 1, Failures: 0, Errors: 0, Skipped: 0

[INFO]
[INFO] --- maven-jar-plugin:2.4:jar (default-jar) @ jgnash-bayes ---
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] Building jGnash Help 2.25.0
[INFO] ------------------------------------------------------------------------
[INFO]
[INFO] --- asciidoctor-maven-plugin:1.5.3:process-asciidoc (generate-pdf-doc) @ jgnash-help ---
io/console not supported; tty will not be manipulated
▒▒▒ 19, 2016 12:20:22 PM org.asciidoctor.internal.JRubyAsciidoctor renderFile
SEVERE: (RuntimeError) asciidoctor: FAILED: required gem 'rouge' is not installed. Processing aborted.
[INFO] ------------------------------------------------------------------------
[INFO] Reactor Summary:
[INFO]
[INFO] jGnash ............................................. SUCCESS [  0.004 s]
[INFO] jGnash Bayes ....................................... SUCCESS [  4.539 s]
[INFO] jGnash Help ........................................ FAILURE [ 20.300 s]
[INFO] jGnash Resources ................................... SKIPPED
[INFO] jGnash Core ........................................ SKIPPED
[INFO] jGnash Report Core ................................. SKIPPED
[INFO] jGnash Convert ..................................... SKIPPED
[INFO] jGnash Plugin ...................................... SKIPPED
[INFO] JIDE Software ...................................... SKIPPED
[INFO] jGnash Swing ....................................... SKIPPED
[INFO] jGnash JavaFx ...................................... SKIPPED
[INFO] mt940 Plugin ....................................... SKIPPED
[INFO] jGnash Test Plugin ................................. SKIPPED
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 25.266 s
[INFO] Finished at: 2016-09-19T12:20:22+03:00
[INFO] Final Memory: 69M/471M
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.asciidoctor:asciidoctor-maven-plugin:1.5.3:process-asciidoc (generate-pdf-doc) on project jgnash-help: Execution generate-pdf-doc of goal org.asciidoctor:asciidoctor-maven-plugin:1.5.3:process-asciidoc failed: org.jruby.exceptions.RaiseException: (RuntimeError) asciidoctor: FAILED: required gem 'rouge' is not installed. Processing aborted. -> [Help 1]
[ERROR]
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR]
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/PluginExecutionException
[ERROR]
[ERROR] After correcting the problems, you can resume the build with the command
[ERROR]   mvn <goals> -rf :jgnash-help

drag@DESKTOP-8KA05HT MINGW64 /c/Work/java/jgnash (master)
$ java -version
java version "1.8.0_101"
Java(TM) SE Runtime Environment (build 1.8.0_101-b13)
Java HotSpot(TM) 64-Bit Server VM (build 25.101-b13, mixed mode)

drag@DESKTOP-8KA05HT MINGW64 /c/Work/java/jgnash (master)
$ ant -v
Apache Ant(TM) version 1.9.7 compiled on April 9 2016
Trying the default build file: build.xml
Buildfile: build.xml does not exist!
Build failed

drag@DESKTOP-8KA05HT MINGW64 /c/Work/java/jgnash (master)
$ mvn -v
Apache Maven 3.3.9 (bb52d8502b132ec0a5a3f4c09453c07478323dc5; 2015-11-10T18:41:47+02:00)
Maven home: C:\Program Files\Java\maven
Java version: 1.8.0_101, vendor: Oracle Corporation
Java home: C:\Program Files\Java\jdk1.8.0_101\jre
Default locale: ru_RU, platform encoding: Cp1251
OS name: "windows 10", version: "10.0", arch: "amd64", family: "dos"

NPE when closing jGnash v3.0.1

Specifications

  • jGnash Version: 3.0.1
  • Operating System: MacOS 10.14.4
  • Java Version:
    java version "11.0.2" 2019-01-15 LTS
    Java(TM) SE Runtime Environment 18.9 (build 11.0.2+9-LTS)
    Java HotSpot(TM) 64-Bit Server VM 18.9 (build 11.0.2+9-LTS, mixed mode)

Description

Opened the software. Made new entries and reconciled one account and then hit the "Close" button. Got an NPE on the console. Now the file would not close no matter how many times I hit the close button. Had to abort. Work was not lost luckily.

Console Output

[2019-04-03 08:19:54] [SEVERE ] {jgnash.uifx.StaticUIMethods$ExceptionHandler uncaughtException} null
java.lang.NullPointerException
at java.base/java.util.Objects.requireNonNull(Objects.java:221)
at jgnash.uifx.views.recurring.RecurringViewController.showReminderDialog(RecurringViewController.java:228)
at jgnash.uifx.views.recurring.RecurringViewController$1.lambda$run$0(RecurringViewController.java:204)
at jgnash.uifx.util.JavaFXUtils.lambda$_runLater$0(JavaFXUtils.java:114)
at com.sun.javafx.application.PlatformImpl.lambda$runLater$10(PlatformImpl.java:428)
at java.base/java.security.AccessController.doPrivileged(Native Method)
at com.sun.javafx.application.PlatformImpl.lambda$runLater$11(PlatformImpl.java:427)
at com.sun.glass.ui.InvokeLaterDispatcher$Future.run(InvokeLaterDispatcher.java:96)

2.33.1 can't open my bxds or xml file

I've tried out 2.33 and 2.33.1, but neither can open the .bxds file that 2.32 (and previous versions) have no trouble opening. I've tried saving the file as .xml, but the newer versions still won't open it. I don't see any errors in the console, either:

lbakken@MESSIAEN ~/Development/src/home-finances/jGnash-2.33.1 (master *%=)
$ ./jGnashFx
Sep 01, 2017 7:27:37 AM jgnash.plugin.PluginFactory getDefaultPluginDirectory
INFO: Plugin path: /Users/lbakken/Development/src/home-finances/jGnash-2.33.1/plugins/
Sep 01, 2017 7:27:37 AM jgnash.plugin.PluginFactory getUserPluginDirectory
INFO: Plugin path: /Users/lbakken/.jgnash/plugins/
Sep 01, 2017 7:27:37 AM jgnash.plugin.PluginFactory startPlugins
INFO: Starting plugin: MT940 Import
Sep 01, 2017 7:27:42 AM jgnash.uifx.views.main.MainView lambda$checkForLatestRelease$9
INFO: Version check performed
Sep 01, 2017 7:28:15 AM jgnash.plugin.PluginFactory stopPlugins
INFO: Stopping plugin: MT940 Import

Aha, I just tried "regular" jGnash2 instead of the FX version, and I do see errors on startup. I've attached a screenshot as well as the stack trace.

jgnash-2 33 1-screenshot

jgnash-2.33.1-startup.txt

Date entry field doesn't accommodate longer date format

Expected Behavior

show the whole date, regardless of date format. i.e., expand the date entry field when necessary.

Actual Behavior

the date gets visually truncated. the value is there, the input still works properly.

screenshot from 2018-10-29 17-53-16

Steps to Reproduce the Problem

  1. open jGnash (Fx)
  2. in the Tools menu, change default date format to yyyy-MM-dd
  3. try to enter a new transaction
  4. observe that the date value of 2018-10-30 only shows up as 2018-10- (and a few of the left-most pixels of the 3)

Specifications

  • jGnash Version: 2.36.0 Fx
  • Operating System: Ubuntu 18.04.1 LTS
  • Java Version:
    openjdk version "1.8.0_181"
    OpenJDK Runtime Environment (build 1.8.0_181-8u181-b13-0ubuntu0.18.04.1-b13)
    OpenJDK 64-Bit Server VM (build 25.181-b13, mixed mode)

Build errors - missing packages

Could this build error have something to do with the recent naming of packages?

Task :jgnash-fx:compileJava
~/Repositories/jgnash/jgnash-fx/src/main/java/jgnash/uifx/views/register/RegisterActions.java:33: error: package jgnash.convert.out.csv does not exist
import jgnash.convert.out.csv.CsvExport;
^
~/Repositories/jgnash/jgnash-fx/src/main/java/jgnash/uifx/views/register/RegisterActions.java:34: error: package jgnash.convert.out.ofx does not exist
import jgnash.convert.out.ofx.OfxExport;
^
~/Repositories/jgnash/jgnash-fx/src/main/java/jgnash/uifx/views/register/RegisterActions.java:35: error: package jgnash.convert.out.ssf does not exist
import jgnash.convert.out.ssf.AccountExport;
^
~/Repositories/jgnash/jgnash-fx/src/main/java/jgnash/uifx/views/register/RegisterActions.java:183: error: cannot find symbol
OfxExport export = new OfxExport(account, startDate, endDate, file);
^
symbol: class OfxExport
~/Repositories/jgnash/jgnash-fx/src/main/java/jgnash/uifx/views/register/RegisterActions.java:183: error: cannot find symbol
OfxExport export = new OfxExport(account, startDate, endDate, file);
^
symbol: class OfxExport
~/Repositories/jgnash/jgnash-fx/src/main/java/jgnash/uifx/views/register/RegisterActions.java:186: error: cannot find symbol
AccountExport.exportAccount(account, RegisterFactory.getColumnNames(account.getAccountType()),
^
symbol: variable AccountExport
~/Repositories/jgnash/jgnash-fx/src/main/java/jgnash/uifx/views/register/RegisterActions.java:189: error: cannot find symbol
CsvExport.exportAccount(account, startDate, endDate, file);
^
symbol: variable CsvExport
7 errors

Task :jgnash-fx:compileJava FAILED

gradle 4.9 build
OSX 10.11.6
java version "1.8.0_112"
Java(TM) SE Runtime Environment (build 1.8.0_112-b16)
Java HotSpot(TM) 64-Bit Server VM (build 25.112-b16, mixed mode)

jGncash says "a new version is available" and never starts up.

Launched the fx version of jgnash today and that showed me a popup telling there is an update available.
jgnash

After I close it the program hangs in task bar and don't show it's window even if click on it. I'm on Win10 LTSB 64. Java HotSpot(TM) 64-Bit Server VM (build 25.112-b15, mixed mode). jGnash 2.26.1

Build release binaries using jpackage

Use the jpackage util (still in pre-release but working well for me) from JDK 14.

If the app is converted to JPMS modules (see #85) we could use the Badass JLink Plugin (which is also working all for me on another project.) Otherwise we could use the Badass Runtime Plugin (which I haven't used but is by the same author as the Badass JLink Plugin.)

What are your thoughts? I might be up for making a PR for you to consider.

Quicken categories.qif uncaught exception

I am trying to transfer historical data from Quicken 2015 into jGnash version 2.32.0
My Quicken accounts transferred with no difficulty
I imported transactions for a quicken account without difficulty although they were treated as one sided transactions (which means I need to eventually edit each one manually)

Given that Quicken categories are treated in jGnash as Accounts, I was hoping that importing a categories.qif file would create Expense or Income Accounts in jGnash. However when I attempted an import on Ubuntu Linux there was no prompt for date format and I received an uncaught exception:
java.lang.NullPointerException
at java.util.regex.Matcher.getTextLength(Matcher.java:1283)
at java.util.regex.Matcher.reset(Matcher.java:309)
at java.util.regex.Matcher.(Matcher.java:229)
at java.util.regex.Pattern.matcher(Pattern.java:1093)
at java.util.regex.Pattern.split(Pattern.java:1206)
at java.util.regex.Pattern.split(Pattern.java:1273)
at jgnash.convert.imports.qif.QifTransaction.determineDateFormat(QifTransaction.java:87)
at jgnash.convert.imports.qif.QifAccount.getTransactions(QifAccount.java:43)
at jgnash.convert.imports.qif.QifParser.parsePartialFile(QifParser.java:171)
at jgnash.convert.imports.qif.QifParser.parsePartialFile(QifParser.java:98)
at jgnash.convert.imports.qif.QifImport.doPartialParse(QifImport.java:108)
at jgnash.ui.actions.ImportQifAction.importQif(ImportQifAction.java:137)
at jgnash.ui.actions.ImportQifAction.actionPerformed(ImportQifAction.java:195)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2022)
at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2348)
at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:402)
at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259)
at javax.swing.AbstractButton.doClick(AbstractButton.java:376)
at javax.swing.plaf.basic.BasicMenuItemUI.doClick(BasicMenuItemUI.java:833)
at javax.swing.plaf.basic.BasicMenuItemUI$Handler.mouseReleased(BasicMenuItemUI.java:877)
at java.awt.Component.processMouseEvent(Component.java:6533)
at javax.swing.JComponent.processMouseEvent(JComponent.java:3324)
at java.awt.Component.processEvent(Component.java:6298)
at java.awt.Container.processEvent(Container.java:2236)
at java.awt.Component.dispatchEventImpl(Component.java:4889)
at java.awt.Container.dispatchEventImpl(Container.java:2294)
at java.awt.Component.dispatchEvent(Component.java:4711)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4888)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4525)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4466)
at java.awt.Container.dispatchEventImpl(Container.java:2280)
at java.awt.Window.dispatchEventImpl(Window.java:2746)
at java.awt.Component.dispatchEvent(Component.java:4711)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:758)
at java.awt.EventQueue.access$500(EventQueue.java:97)
at java.awt.EventQueue$3.run(EventQueue.java:709)
at java.awt.EventQueue$3.run(EventQueue.java:703)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:80)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:90)
at java.awt.EventQueue$4.run(EventQueue.java:731)
at java.awt.EventQueue$4.run(EventQueue.java:729)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:80)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:728)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)

Can't open existing h2.db

Expected Behavior

Able to open the DB successfully

Actual Behavior

"Invalid password or tried to open the wrong file type"

Steps to Reproduce the Problem

  1. Open existing H2 DB with new version 2.34.1
  2. "Invalid password or tried to open the wrong file type"

Specifications

  • jGnash Version: 2.34.1
  • Operating System: Windows 10
  • Java Version 1.8

Balance column not resized automatically.

When I insert a new slip into account, "Balance" column width is not resized accordingly. So when I enter an amount that has more positions in number than existing entries last digits are omitted (replaced with "..."). "Withdrawal" and "Balance" columns can't be resized with mouse also.
col_resize

Wrong currency symbol in Debit/Credit colums of the transactions list (jGnash 3.0.0)

Expected Behavior

An account has its currency set to something else other than the locale currency. When transactions are listed, the currency symbol in the credit/debit columns is from the locale. The Balance column correctly shows the account's currency symbol

Actual Behavior

All columns should show the account's currency instead of from the locale.

Specifications

  • jGnash Version: 3.0.0
  • Operating System: MacOS 10.14.3
  • Java Version: Oracle JDK 11

ConcurrentModificationException creating budget

Expected Behavior

After choosing to have the Liabilities section of the budget shown (in the budget properties) this section would appear.

Actual Behavior

jGnash throws a ConcurrentModificationException after the "show liabilities" is enabled in the budget properties dialogue.
java.util.ConcurrentModificationException: java.util.ConcurrentModificationException
at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
at java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:488)
at java.base/java.util.concurrent.ForkJoinTask.getThrowableException(ForkJoinTask.java:587)
at java.base/java.util.concurrent.ForkJoinTask.reportException(ForkJoinTask.java:668)
at java.base/java.util.concurrent.ForkJoinTask.invoke(ForkJoinTask.java:726)
at java.base/java.util.stream.ReduceOps$ReduceOp.evaluateParallel(ReduceOps.java:919)
at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:233)
at java.base/java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:511)
at jgnash.ui.budget.BudgetPanel.getSparkLineIcon(BudgetPanel.java:637)
at java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:195)
at java.base/java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1494)
at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:484)
at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:474)
at java.base/java.util.stream.ReduceOps$ReduceTask.doLeaf(ReduceOps.java:952)
at java.base/java.util.stream.ReduceOps$ReduceTask.doLeaf(ReduceOps.java:926)
at java.base/java.util.stream.AbstractTask.compute(AbstractTask.java:316)
at java.base/java.util.concurrent.CountedCompleter.exec(CountedCompleter.java:747)
at java.base/java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:283)
at java.base/java.util.concurrent.ForkJoinTask.doInvoke(ForkJoinTask.java:395)
at java.base/java.util.concurrent.ForkJoinTask.invoke(ForkJoinTask.java:725)
at java.base/java.util.stream.ReduceOps$ReduceOp.evaluateParallel(ReduceOps.java:919)
at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:233)
at java.base/java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:511)
at jgnash.ui.budget.BudgetOverviewPanel.lambda$updateSparkLines$3(BudgetOverviewPanel.java:183)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
at java.base/java.lang.Thread.run(Thread.java:844)
Caused by: java.util.ConcurrentModificationException
at java.base/java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1500)
at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:484)
at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:474)
at java.base/java.util.stream.ReduceOps$ReduceTask.doLeaf(ReduceOps.java:952)
at java.base/java.util.stream.ReduceOps$ReduceTask.doLeaf(ReduceOps.java:926)
at java.base/java.util.stream.AbstractTask.compute(AbstractTask.java:316)
at java.base/java.util.concurrent.CountedCompleter.exec(CountedCompleter.java:747)
at java.base/java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:283)
at java.base/java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1603)
at java.base/java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:175)

Steps to Reproduce the Problem

  1. Choose the "budgeting" view
  2. Enable "liability accounts" under the budget preference
  3. Choose okay.
  4. Exception is thrown
  5. This can be reproduced by changing the "Period" under preferences.

Specifications

  • jGnash Version: 2.36.0
  • Operating System: Slackware Linux current kernel 4.14.70
  • Java Version: Java(TM) SE Runtime Environment (build 9.0.4+11)

A new thread is spawned for every reconciled transaction?

Hi!

When using the reconcile dialogue on an account with ~1500 transactions (after an import), the released version (JavaFX interface) hung, and needed to be force quit. Manually increasing the maximum java heap size appears to have fixed that issue, but this task still took several minutes of >100% cpu use. After curiosity as to what could be taking so long, firing up JVisualVM showed that jgnash had >1000 threads running. This number sank over the course of a few minutes, and eventually went back down to a reasonable number once the processing was complete.

I was using a version built from the git sources downloaded tonight (2/22/17) and built with IntelliJ. Running on OSX 10.12. Also, thanks for writing this app! =D

Feature Requests?

Craig,
Great app. Are you accepting feature requests or pull requests for new features?

Uncaught exception

I have recently started using jgnash on OS X Sierra (or whatever tim calls it now). As yet I have only beeb setting up the chart of accounts. Along the way, I noticed a couple of uncaught exceptions, but everything seemed to be working.

I have just tried to clear the excludedFromBudget flag on a number of accounts whose parent account had the flag set. It seems (sensibly) that when the parent is excluded, so will the children be.

This didn't work for me ( the children accounts still have the flag set as far as the exported accounts list is concerned) and a number of exceptions were generated. The first 6 were of the same type, varying only in some particulars of the index. The seventh was a different kettle of fish.

See attached file.
exceptions.txt

How do i do Gnucash import?

It is stated in changelog.adoc that I can import data from Gnucash, but I can't figure out how.

06/15/08 Dump GnuCash import support

OpenJFX download fails on Windows 10

Expected Behavior

Start JGnash and JGnash opens with a GUI that is functional

Actual Behavior

Start JGnash
JGnash tries to download OpenJFX libraries for Windows 10 but fails

Steps to Reproduce the Problem

  1. Start JGnash for the first time on Windows 10
  2. Download dialog appears for the download of OpenJFX
  3. Another dialog appears in the background stating that it cannot download the specified OpenJFX library

Specifications

  • jGnash Version: 3.3.0
  • Operating System: Windows 10 (64bit)
  • Java Version: openjdk 11.0.5 2019-10-15
    JGnash_3 3 0_OpenJFX_lib_download_failure_2b
    JGnash_3 3 0_Java_Version
    JGnash_3 3 0_OpenJFX_lib_download_failure_1a
    JGnash_3 3 0_OpenJFX_lib_download_failure_1b
    JGnash_3 3 0_OpenJFX_lib_download_failure_2a

Reconcile's Ending Balance doesn't update to match new Statement Date

Expected Behavior

When changing the Statement Date in the Reconcile Settings dialog, the Ending Balance (if not manually entered?) should be re-calculated to match the new date.

Actual Behavior

The Ending Balance is calculated the first time the Reconcile Settings dialog is opened, and never changes after that without manual intervention.

Steps to Reproduce the Problem

  1. Choose an account with unreconciled transactions in the previous month/period
  2. Press Reconcile button - note that Ending Balance has been correctly calculated to match default Statement Date
  3. Change Statement Date to include more or fewer transactions
  4. Notice that Ending Balance does not change

Specifications

  • jGnash Version: 2.36.1
  • Operating System: Linux Mint 18.3
  • Java Version:
openjdk version "1.8.0_191"
OpenJDK Runtime Environment (build 1.8.0_191-8u191-b12-0ubuntu0.16.04.1-b12)
OpenJDK 64-Bit Server VM (build 25.191-b12, mixed mode)

Database path not stored correctly when skipping wizard steps (FX only)

Expected Behavior

Database in New-Wizard should be the same I put in on forst page when skipping pages.

Actual Behavior

Database is set to the default value.

Steps to Reproduce the Problem

Only FX version affected, Swing works fine

  1. File - New
  2. Use default H2, change database location to "XXX" (or anything other than the default)
  3. Click next
  4. Click 5. Summary
  5. Database is still default
    If you use every step in the wizard the database is correctly changed.

Specifications

  • jGnash Version: 2.36.0
  • Operating System: Ubuntu 18.04
  • Java Version: 1.8.0_181

Cannot start on Mac OS X - silicon m1 arm

Expected Behavior

Startup without exceptions

Actual Behavior

Loading library prism_es2 from resource failed: java.lang.UnsatisfiedLinkError: /Users/bertroex/.openjfx/cache/14-ea/libprism_es2.dylib: dlopen(/Users/bertroex/.openjfx/cache/14-ea/libprism_es2.dylib, 0x0001): tried: '/Users/bertroex/.openjfx/cache/14-ea/libprism_es2.dylib' (mach-o file, but is an incompatible architecture (have 'x86_64', need 'arm64e')), '/usr/lib/libprism_es2.dylib' (no such file)
java.lang.UnsatisfiedLinkError: /Users/bertroex/.openjfx/cache/14-ea/libprism_es2.dylib: dlopen(/Users/bertroex/.openjfx/cache/14-ea/libprism_es2.dylib, 0x0001): tried: '/Users/bertroex/.openjfx/cache/14-ea/libprism_es2.dylib' (mach-o file, but is an incompatible architecture (have 'x86_64', need 'arm64e')), '/usr/lib/libprism_es2.dylib' (no such file)

Steps to Reproduce the Problem

  1. extract on mac os x with m1 chip
  2. open

Specifications

  • jGnash Version: 3.5.1
  • Operating System: macOS 12.0.1
  • Java Version 11.0.14

NoSQL database

Hi Craig,

thank you for building this open source project. i have checked out the source yesterday and i managed to import QIF transaction ( programmatically!! ) , code is very well written and it appears to be high customizable. I'm working on a web application that allows user to upload OFX or QIF investment accounts to their portfolio.

we use MongoDB for this application. We have good reasons to use MongoDB rather than SQL database, this was decided after recognizing data access pattern via single BSON are much faster than SQL even with an index. Anyway database is hard to switch to at the moment.

Is it possible to extend AbstractJpaDataStore to use nosql databases like MongoDB. i'm happy to work on it by myself and share the code with you.

But i would rather ask your opinion on it first. Did you choose to use SQL because this is ofcourse an accounting system and you definately need ACID properties. In our application there is no need for this and keeping records in a single document is good enough and it provides eventual consistency.

hope to hear your thoughts on it.

Regards,
Rohit

100% CPU use

Hi @ccavanaugh -

I have noticed that jGnash climbs to 100% cpu use after using it a few minutes. Typically I'm entering items into a couple accounts, then reconciling them with my bank's online info. Closing jGnash brings CPU use (and temp!) back to normal.

Environment:

  • Arch Linux, all the latest pacman updates
  • jGnash 2.28.3, FX interface
  • Java:
    $ java -version
    openjdk version "1.8.0_121"
    OpenJDK Runtime Environment (build 1.8.0_121-b13)
    OpenJDK 64-Bit Server VM (build 25.121-b13, mixed mode)
    

Build issue on macOS

I'm having trouble building on macOS. The other network tests are passing but encryptedNetworkedTest is failing. I tried installing Java Cryptography Extension (JCE) Unlimited Strength but no change. Any suggestions on a possible solution?

[INFO] ------------------------------------------------------------------------
[INFO] Reactor Summary:
[INFO]
[INFO] jGnash ............................................. SUCCESS [ 0.003 s]
[INFO] jGnash Bayes ....................................... SUCCESS [ 10.426 s]
[INFO] jGnash Help ........................................ SUCCESS [ 11.863 s]
[INFO] jGnash Resources ................................... SUCCESS [ 6.541 s]
[INFO] jGnash Core ........................................ FAILURE [ 50.032 s]
[INFO] jGnash Report Core ................................. SKIPPED
[INFO] jGnash Convert ..................................... SKIPPED
[INFO] jGnash Plugin ...................................... SKIPPED
[INFO] JIDE Software ...................................... SKIPPED
[INFO] jGnash Swing ....................................... SKIPPED
[INFO] jGnash JavaFx ...................................... SKIPPED
[INFO] mt940 Plugin ....................................... SKIPPED
[INFO] jGnash Test Plugin ................................. SKIPPED
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 01:19 min
[INFO] Finished at: 2016-10-19T10:48:51-04:00
[INFO] Final Memory: 93M/975M

Oct 19, 2016 10:48:49 AM jgnash.engine.FileTransferTest encryptedNetworkedTest
SEVERE: Connection refused: localhost/127.0.0.1:5301
io.netty.channel.AbstractChannel$AnnotatedConnectException: Connection refused: localhost/127.0.0.1:5301
at sun.nio.ch.SocketChannelImpl.checkConnect(Native Method)
at sun.nio.ch.SocketChannelImpl.finishConnect(SocketChannelImpl.java:717)
at io.netty.channel.socket.nio.NioSocketChannel.doFinishConnect(NioSocketChannel.java:347)
at io.netty.channel.nio.AbstractNioChannel$AbstractNioUnsafe.finishConnect(AbstractNioChannel.java:340)
at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:627)
at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:551)
at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:465)
at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:437)
at io.netty.util.concurrent.SingleThreadEventExecutor$5.run(SingleThreadEventExecutor.java:873)
at io.netty.util.concurrent.DefaultThreadFactory$DefaultRunnableDecorator.run(DefaultThreadFactory.java:144)
at java.lang.Thread.run(Thread.java:745)

Tests run: 2, Failures: 1, Errors: 1, Skipped: 0, Time elapsed: 11.491 sec <<< FAILURE!
encryptedNetworkedTest(jgnash.engine.FileTransferTest) Time elapsed: 11.49 sec <<< FAILURE!
java.lang.AssertionError
at org.junit.Assert.fail(Assert.java:86)
at org.junit.Assert.fail(Assert.java:95)
at jgnash.engine.FileTransferTest.encryptedNetworkedTest(FileTransferTest.java:133)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:50)
at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:47)
at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:325)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:78)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:57)
at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
at org.junit.runners.ParentRunner.run(ParentRunner.java:363)
at org.apache.maven.surefire.junit4.JUnit4Provider.execute(JUnit4Provider.java:252)
at org.apache.maven.surefire.junit4.JUnit4Provider.executeTestSet(JUnit4Provider.java:141)
at org.apache.maven.surefire.junit4.JUnit4Provider.invoke(JUnit4Provider.java:112)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.apache.maven.surefire.util.ReflectionUtils.invokeMethodWithArray(ReflectionUtils.java:189)
at org.apache.maven.surefire.booter.ProviderFactory$ProviderProxy.invoke(ProviderFactory.java:165)
at org.apache.maven.surefire.booter.ProviderFactory.invokeProvider(ProviderFactory.java:85)
at org.apache.maven.surefire.booter.ForkedBooter.runSuitesInProcess(ForkedBooter.java:115)
at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:75)

Import QIF Not Working

Expected Behavior

Import QIF should open the import dialog

Actual Behavior

Nothing happens.
Console shows:
Error: ?!Type:CCard

Steps to Reproduce the Problem

  1. Import QIF

Specifications

  • jGnash Version: 3.0.4
  • Operating System: Windows 10
  • Java Version: 11.0.2

Version 3.5.0 won't start on Windows

Expected Behavior

The app is launched.

Actual Behavior

Nothing happens

Steps to Reproduce the Problem

  1. Double click on "c:\Program Files\jGnash-3.5.1\jGnash.exe"
  2. Nothing happens.

As a result I had to run c:\Program Files\jGnash-3.5.1\bin\bootloader.bat as an Administrator. There was a prompt that jgnash would be restarted when the JavaFX download is complete, but it did not. But even after that launching the jGnash.exe has not effect at all.

Specifications

  • jGnash Version: 3.5.1
  • Operating System: Windows 10 Education. Version 20H2
  • Java Version java version "16" 2021-03-16
    Java(TM) SE Runtime Environment (build 16+36-2231)

Version 2.32.0 Unable to build on windows10 - itext-2.1.7.js6.jar unavailable

Hello.
I downloaded the source as a zip file, expanded it, and executed gradlew.bat
The build failed because itext-2.1.7.js6.jar could not be found.
Any suggestions as to how I can resolve this ?
The console window displayed:

FAILURE: Build failed with an exception.

  • Where:
    Build file 'D:\d\jgnash-master\jgnash-fx\build.gradle' line: 79

  • What went wrong:
    A problem occurred evaluating project ':jgnash-fx'.

Could not resolve all files for configuration ':jgnash-fx:runtime'.
Could not find com.lowagie:itext:2.1.7.js6.
Searched in the following locations:
https://jcenter.bintray.com/com/lowagie/itext/2.1.7.js6/itext-2.1.7.js6.pom
https://jcenter.bintray.com/com/lowagie/itext/2.1.7.js6/itext-2.1.7.js6.jar
file:/D:/d/mavenLocalRepository/com/lowagie/itext/2.1.7.js6/itext-2.1.7.js6.pom
file:/D:/d/mavenLocalRepository/com/lowagie/itext/2.1.7.js6/itext-2.1.7.js6.jar
http://nexus.fdvs.com.ar/content/groups/public/com/lowagie/itext/2.1.7.js6/itext-2.1.7.js6.pom
http://nexus.fdvs.com.ar/content/groups/public/com/lowagie/itext/2.1.7.js6/itext-2.1.7.js6.jar
Required by:
project :jgnash-fx > project :jgnash-report-core
Could not find com.lowagie:itext:2.1.7.js6.
Searched in the following locations:
https://jcenter.bintray.com/com/lowagie/itext/2.1.7.js6/itext-2.1.7.js6.pom
https://jcenter.bintray.com/com/lowagie/itext/2.1.7.js6/itext-2.1.7.js6.jar
file:/D:/d/mavenLocalRepository/com/lowagie/itext/2.1.7.js6/itext-2.1.7.js6.pom
file:/D:/d/mavenLocalRepository/com/lowagie/itext/2.1.7.js6/itext-2.1.7.js6.jar
http://nexus.fdvs.com.ar/content/groups/public/com/lowagie/itext/2.1.7.js6/itext-2.1.7.js6.pom
http://nexus.fdvs.com.ar/content/groups/public/com/lowagie/itext/2.1.7.js6/itext-2.1.7.js6.jar
Required by:
project :jgnash-fx > project :jgnash-report-core > net.sf.jasperreports:jasperreports:6.4.1

  • Try:
    Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output.

BUILD FAILED in 4s
Press any key to continue . . .

Delete confirmation popup is miniscule

Expected Behavior

  • Choose a transaction to delete
  • Popup confirmation asks "Delete?" with Cancel / OK buttons

Actual Behavior

Popup confirmation is too small to see any buttons. Hitting "Enter" for OK still works, however.

Steps to Reproduce the Problem

  1. Choose transaction to delete
  2. Observe small popup

Specifications

  • jGnash Version: 3.0.4
  • Operating System: Arch Linux, up-to-date as of 2019-04-25
  • Java Version:
$ java -version
Picked up _JAVA_OPTIONS: -Dawt.useSystemAAFontSettings=on -Dswing.aatext=true
openjdk version "11.0.3" 2019-04-16
OpenJDK Runtime Environment (build 11.0.3+4)
OpenJDK 64-Bit Server VM (build 11.0.3+4, mixed mode)

Import OFX file failed

Expected Behavior

Import of OFX file

Actual Behavior

OFX file is not being parsed.

[2019-01-18 20:03:11] [SEVERE ] {jgnash.convert.importat.ofx.OfxV2Parser parse} javax.xml.stream.XMLStreamException: ParseError at [row,col]:[1,15] Message: The value following "version" in the XML declaration must be a quoted string. javax.xml.stream.XMLStreamException: ParseError at [row,col]:[1,15] Message: The value following "version" in the XML declaration must be a quoted string. at com.sun.org.apache.xerces.internal.impl.XMLStreamReaderImpl.setInputSource(XMLStreamReaderImpl.java:214) at com.sun.org.apache.xerces.internal.impl.XMLStreamReaderImpl.<init>(XMLStreamReaderImpl.java:184) at com.sun.xml.internal.stream.XMLInputFactoryImpl.getXMLStreamReaderImpl(XMLInputFactoryImpl.java:262) at com.sun.xml.internal.stream.XMLInputFactoryImpl.createXMLStreamReader(XMLInputFactoryImpl.java:155) at jgnash.convert.importat.ofx.OfxV2Parser.parse(OfxV2Parser.java:262) at jgnash.convert.importat.ofx.OfxV2Parser.parse(OfxV2Parser.java:281) at jgnash.convert.importat.ofx.OfxV2Parser.parse(OfxV2Parser.java:240) at jgnash.convert.importat.ofx.OfxV2Parser.parseFile(OfxV2Parser.java:274) at jgnash.convert.importat.ofx.OfxV2Parser.parse(OfxV2Parser.java:122) at jgnash.uifx.actions.ImportOfxAction$ImportTask.call(ImportOfxAction.java:100) at jgnash.uifx.actions.ImportOfxAction$ImportTask.call(ImportOfxAction.java:86) at javafx.concurrent.Task$TaskCallable.call(Task.java:1423) at java.util.concurrent.FutureTask.run(FutureTask.java:266) at java.lang.Thread.run(Thread.java:748)

Suspicion

jgnash.convert.importat.ofx.Sanitize.sanitize replaces quotes too much.
<?xml version="1.0" encoding="utf-8" ?>
transforms to
<?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot; ?>
that causes parsing to fail.

Specifications

  • jGnash Version: 2.36.1
  • Operating System: Ubuntu
  • Java Version 1.8

maven installation error

In building jGnash section written "Before running the main build, the Maven-based jgnash-help project must be built and installed into your local Maven repository". "cd jgnash-help. mvn install"
When I do it, I receive an error

[INFO] Scanning for projects...
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] Building jGnash Help 2.25.0
[INFO] ------------------------------------------------------------------------
[INFO]
[INFO] --- asciidoctor-maven-plugin:1.5.3:process-asciidoc (generate-pdf-doc) @ jgnash-help ---
io/console not supported; tty will not be manipulated
▒▒▒ 04, 2016 3:34:34 PM org.asciidoctor.internal.JRubyAsciidoctor renderFile
SEVERE: (RuntimeError) asciidoctor: FAILED: required gem 'rouge' is not installed. Processing aborted.
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 30.041 s
[INFO] Finished at: 2016-09-04T15:34:34+03:00
[INFO] Final Memory: 68M/469M
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.asciidoctor:asciidoctor-maven-plugin:1.5.3:process-asciidoc (generate-pdf-doc) on project jgnash-help: Execution generate-pdf-doc of goal org.asciidoctor:asciidoctor-maven-plugin:1.5.3:process-asciidoc failed: org.jruby.exceptions.RaiseException: (RuntimeError) asciidoctor: FAILED: required gem 'rouge' is not installed. Processing aborted. -> [Help 1]
[ERROR]
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR]
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/PluginExecutionException

Unable to launch with beta versions of JDK

Actual Behavior

Unable to launch the application when launched with the beta version of JDK.

Exception:

java.lang.reflect.InvocationTargetException
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at com.sun.javafx.application.LauncherImpl.launchApplicationWithArgs(LauncherImpl.java:389)
at com.sun.javafx.application.LauncherImpl.launchApplication(LauncherImpl.java:328)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at sun.launcher.LauncherHelper$FXHelper.main(LauncherHelper.java:767)
Caused by: java.lang.NumberFormatException: For input string: "202-ea"
at java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)
at java.lang.Integer.parseInt(Integer.java:580)
at java.lang.Integer.parseInt(Integer.java:615)
at jgnash.resource.util.OS.getJavaRelease(OS.java:84)
at jGnashFx.main(jGnashFx.java:83)
... 11 more
Exception running application jGnashFx

Steps to Reproduce the Problem

  1. Use the beta version of JDK and try to run the application.

Specifications

  • jGnash Version: "2.36.1"
  • Operating System: "macOS mojave"
  • Java Version: "1.8.0_202-ea"

Error with Account Register

Expected Behavior

  • Open Reports -> Account -> Account Register
  • Input account and date range
  • Register is shown

Actual Behavior

After calculation is run, a popup is shown with the following:

java.lang.IllegalArgumentException: Width (-7) and height (-10) cannot be <= 0
	at java.awt.image.DirectColorModel.createCompatibleWritableRaster(DirectColorModel.java:1016)
	at java.awt.image.BufferedImage.<init>(BufferedImage.java:324)
	at net.sf.jasperreports.engine.print.JRPrinterAWT.printPageToImage(JRPrinterAWT.java:275)
	at net.sf.jasperreports.engine.JasperPrintManager.printToImage(JasperPrintManager.java:293)
	at net.sf.jasperreports.engine.JasperPrintManager.printPageToImage(JasperPrintManager.java:449)
	at jgnash.uifx.report.jasper.JasperViewerDialogController.refresh(JasperViewerDialogController.java:434)
	at com.sun.javafx.application.PlatformImpl.lambda$null$5(PlatformImpl.java:295)
	at java.security.AccessController.doPrivileged(Native Method)
	at com.sun.javafx.application.PlatformImpl.lambda$runLater$6(PlatformImpl.java:294)
	at com.sun.glass.ui.InvokeLaterDispatcher$Future.run(InvokeLaterDispatcher.java:95)
	at com.sun.glass.ui.gtk.GtkApplication._runLoop(Native Method)
	at com.sun.glass.ui.gtk.GtkApplication.lambda$null$5(GtkApplication.java:139)
	at java.lang.Thread.run(Thread.java:748)

Steps to Reproduce the Problem

See above.

Specifications

  • jGnash Version: 2.36.2 (using the JavaFX GUI)
  • Operating System: Linux (up-to-date Arch Linux)
  • Java Version:
lbakken@shostakovich ~
$ java -version
Picked up _JAVA_OPTIONS: -Dawt.useSystemAAFontSettings=on -Dswing.aatext=true
openjdk version "1.8.0_202"
OpenJDK Runtime Environment (build 1.8.0_202-b26)
OpenJDK 64-Bit Server VM (build 25.202-b26, mixed mode)

Transaction amount with comma

Expected Behavior

Edit transaction

Actual Behavior

Can't change transaction when amount contains a comma(for example in Russian locale)

Steps to Reproduce the Problem

  1. Switch to the locale that uses comma as a decimal delimiter.
  2. Try to change transaction amount to the value containing comma.
  3. The Enter button remains disabled

Specifications

  • jGnash Version: 3.0.2
  • Operating System: Ubuntu 18.04.2 LTS
  • Java Version 11.0.2

Reconcile when destination account is locked but "Disable Automatic Reconciliation" is selected

Expected Behavior

Since the setting is to Disable Automatic Reconciliation, if the current account is being modified, the operation should be allowed. The target account does not need to change at all.

Actual Behavior

Error pop up prevent reconciliation.

Steps to Reproduce the Problem

  1. Select the option "Disable Automatic Reconciliation"
  2. Create a new transaction
  3. Lock one of the accounts. Goto the unlocked account of the transaction and try to reconcile.

Account Search in Register View

This a feature request to add a search box for the account tree in Register view. As the number of accounts grows (I have been using the program for more than a decade and this bound to happen) searching for an account is sometimes a task.

NPE when creating a new database (File -> New)

Expected Behavior

Wizard is shown.

Actual Behavior

java.lang.RuntimeException: java.lang.reflect.InvocationTargetException
	at javafx.fxml.FXMLLoader$MethodHandler.invoke(FXMLLoader.java:1774)
	at javafx.fxml.FXMLLoader$ControllerMethodEventHandler.handle(FXMLLoader.java:1657)
	at com.sun.javafx.event.CompositeEventHandler.dispatchBubblingEvent(CompositeEventHandler.java:86)
	at com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:238)
	at com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:191)
	at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:58)
	at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
	at com.sun.javafx.event.EventUtil.fireEventImpl(EventUtil.java:74)
	at com.sun.javafx.event.EventUtil.fireEvent(EventUtil.java:49)
	at javafx.event.Event.fireEvent(Event.java:198)
	at javafx.scene.control.MenuItem.fire(MenuItem.java:462)
	at com.sun.javafx.scene.control.skin.ContextMenuContent$MenuItemContainer.doSelect(ContextMenuContent.java:1405)
	at com.sun.javafx.scene.control.skin.ContextMenuContent$MenuItemContainer.lambda$createChildren$343(ContextMenuContent.java:1358)
	at com.sun.javafx.event.CompositeEventHandler$NormalEventHandlerRecord.handleBubblingEvent(CompositeEventHandler.java:218)
	at com.sun.javafx.event.CompositeEventHandler.dispatchBubblingEvent(CompositeEventHandler.java:80)
	at com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:238)
	at com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:191)
	at com.sun.javafx.event.CompositeEventDispatcher.dispatchBubblingEvent(CompositeEventDispatcher.java:59)
	at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:58)
	at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
	at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56)
	at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
	at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56)
	at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
	at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56)
	at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
	at com.sun.javafx.event.EventUtil.fireEventImpl(EventUtil.java:74)
	at com.sun.javafx.event.EventUtil.fireEvent(EventUtil.java:54)
	at javafx.event.Event.fireEvent(Event.java:198)
	at javafx.scene.Scene$MouseHandler.process(Scene.java:3757)
	at javafx.scene.Scene$MouseHandler.access$1500(Scene.java:3485)
	at javafx.scene.Scene.impl_processMouseEvent(Scene.java:1762)
	at javafx.scene.Scene$ScenePeerListener.mouseEvent(Scene.java:2494)
	at com.sun.javafx.tk.quantum.GlassViewEventHandler$MouseEventNotification.run(GlassViewEventHandler.java:394)
	at com.sun.javafx.tk.quantum.GlassViewEventHandler$MouseEventNotification.run(GlassViewEventHandler.java:295)
	at java.security.AccessController.doPrivileged(Native Method)
	at com.sun.javafx.tk.quantum.GlassViewEventHandler.lambda$handleMouseEvent$353(GlassViewEventHandler.java:432)
	at com.sun.javafx.tk.quantum.QuantumToolkit.runWithoutRenderLock(QuantumToolkit.java:389)
	at com.sun.javafx.tk.quantum.GlassViewEventHandler.handleMouseEvent(GlassViewEventHandler.java:431)
	at com.sun.glass.ui.View.handleMouseEvent(View.java:555)
	at com.sun.glass.ui.View.notifyMouse(View.java:937)
	at com.sun.glass.ui.win.WinApplication._runLoop(Native Method)
	at com.sun.glass.ui.win.WinApplication.lambda$null$147(WinApplication.java:177)
	at java.lang.Thread.run(Thread.java:748)
Caused by: java.lang.reflect.InvocationTargetException
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:498)
	at sun.reflect.misc.Trampoline.invoke(MethodUtil.java:71)
	at sun.reflect.GeneratedMethodAccessor1.invoke(Unknown Source)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:498)
	at sun.reflect.misc.MethodUtil.invoke(MethodUtil.java:275)
	at javafx.fxml.FXMLLoader$MethodHandler.invoke(FXMLLoader.java:1771)
	... 43 more
Caused by: java.lang.NullPointerException
	at jgnash.uifx.wizard.file.NewFileSummaryController.getSettings(NewFileSummaryController.java:62)
	at jgnash.uifx.control.wizard.WizardDialogController.addTaskPane(WizardDialogController.java:121)
	at jgnash.uifx.wizard.file.NewFileWizard.<init>(NewFileWizard.java:90)
	at jgnash.uifx.wizard.file.NewFileWizard.showAndWait(NewFileWizard.java:120)
	at jgnash.uifx.views.main.MenuBarController.handleNewAction(MenuBarController.java:253)
	... 53 more

Steps to Reproduce the Problem

Click File -> New

Specifications

  • jGnash Version: 2.36.1, same for 2.33.1
  • Operating System: Windows 10
  • Java Version: 1.8.0_181-b13

Target accounts in OFX-Import of bank statement download

Dear Craig,

thank you for this reliable and long-term software project!

To import my bank statement download, which is only available in some custom csv format, I want to convert these csv-files to ofx-files (with a custom python script) and then import the ofx-files into jgnash. With the newest version 2.32.0 I already can import the fields Date, Payee and Amount of ofx-files. But I fail to automatically set the Account field which determines the corresponding account for each transaction. In the OFX specification (version 2.1.1) in chapter 11.4.3 (Statement transaction) I found the BANKACCTTO-Tag and the CCACCTTO-Tag, which seems to be a possible tag for the target account information. But jgnash seems to ignore the Tag during import.

Do you have a hint what would be the best way to automatically set the target accout for each transaction? I would like to avoid to manually set each target account for each transaction during the import process.

Thank you very much!
Daniel

Exchange rates

Since middle august, jGnash no longer updates exchange rates neither automaticly nor manually. I was using 2.14.0 version when it happende. I tried with 2.33.1 version and I've got the same situation.
Could you please help me? Many thanks in advance.

mergeFiles skips last entry

I'm trying to use this implementation in my own software. I noticed that when passing 3 recordLines it ends up with 2 mergedLines. basically omitting the last line. This only is visible if you run it within a unit test (or you don't end with a -} recordLine).

Ie, this is a case where it happens (I made parseRecord public):

	@Test
	public void parseStatementLine() {
		Mt940Record mt940Record = Mt940Parser.parseRecord(list(
				"{1:F01KNABNL2HAXXX0000000000}{2:I940KNABNL2HXXXXN3020}{4:",
				":20:B9A02MSEE326KVMR",
				":61:1901011231C1,53N650NONREF//B8L31INTBB8ZCND1"  // this is skipped?
		));

		Assert.assertEquals(1, mt940Record.getEntries().size());
	}

I am aware this is not a valid MT940 record.

I am not proficient in the MT940 format, still figuring things out myself. Perhaps you could clarify a bit what the mergeLines intents to do? I already figured it merges indeed some lines not starting with : (which seems to be correct behaviour).

At this point it looks like it basically skips the last line. Ie there is no retVal.add(currentString.toString()); happening for the very last line, be cause of:

if (inMessage) {
				if (string.startsWith(":")) {
					retVal.add(currentString.toString());
					currentString = new StringBuilder();
				}
				currentString.append(string);
			} else ....

This adds the previous line, (in currentString), sets the new currentString, but it never gets added to retVal.

Adding:

		retVal.add(currentString.toString());

just before returning retVal in the mergeLines function seems to fix the test I describe above. I'm not sure if that is correct.

Just wanted to let you know I found this. For my implementation I need other fields. Perhaps I can offer some kind of PR when things are fixed on my end? I also try to translate any german verbs along the way.

Problem with ampersand character "&" when importing ofx-file

Dear ccavanaugh,

when importing an ofx-file containing an ampersand character "&" in the name field of a transaction this transaction and all other below are not imported/ proposed to import.

Here you find a corresponding test file: bank2.ofx.zip

I use jgnash 2.33.1 with Oracle Java 8 on Linux.

Is it a bug?

Thanks for your support!

Qaaqqo

Exception thrown: Creating a New DB after 'Finish' clicked on Wizard

(I'm not sure if this is the right place to submit this issue or if I should create a login on SourceForge and submit a ticket there.)

Expected Behavior

After a brand new install (my first time installing it), create a new file to work with

Actual Behavior

Runtime exception was thrown:

Here's the text from my terminal:

/Applications/jGnash/bin/jgnash-fx ; exit;

[2018-09-21 03:46:08] [INFO   ] {jgnash.util.LogUtil configureLogging} Logging configured

[2018-09-21 03:46:09] [INFO   ] {jgnash.plugin.PluginFactory getDefaultPluginDirectory} Plugin path: /Applications/jGnash/plugins/
[2018-09-21 03:46:09] [INFO   ] {jgnash.plugin.PluginFactory getUserPluginDirectory} Plugin path: /Users/ashleyengelund/.jgnash/plugins/
[2018-09-21 03:46:09] [INFO   ] {jgnash.plugin.PluginFactory startPlugins} Starting plugin: MT940 Import
[2018-09-21 03:46:14] [INFO   ] {jgnash.uifx.views.main.MainView lambda$checkForLatestRelease$9} Version check performed
objc[15773]: Class FIFinderSyncExtensionHost is implemented in both /System/Library/PrivateFrameworks/FinderKit.framework/Versions/A/FinderKit (0x7fffadd98c90) and /System/Library/PrivateFrameworks/FileProvider.framework/OverrideBundles/FinderSyncCollaborationFileProviderOverride.bundle/Contents/MacOS/FinderSyncCollaborationFileProviderOverride (0x1374cccd8). One of the two will be used. Which one is undefined.
[2018-09-21 03:47:03] [INFO   ] {jgnash.engine.jpa.SqlUtils waitForLockFileRelease} Searching for lock file: /Users/ashleyengelund/jGnash/ashleyengelund.lock.db
[2018-09-21 03:47:03] [INFO   ] {jgnash.engine.jpa.AbstractJpaDataStore initEmptyDatabase} Initialized an empty database for /Users/ashleyengelund/jGnash/ashleyengelund.h2.db
[2018-09-21 03:47:03] [INFO   ] {org.hibernate.jpa.internal.util.LogHelper logPersistenceUnitInformation} HHH000204: Processing PersistenceUnitInfo [
	name: jgnash
	...]
[2018-09-21 03:47:03] [INFO   ] {org.hibernate.Version logVersion} HHH000412: Hibernate Core {5.3.5.Final}
[2018-09-21 03:47:03] [INFO   ] {org.hibernate.cfg.Environment <clinit>} HHH000206: hibernate.properties not found
[2018-09-21 03:47:03] [SEVERE ] {jgnash.uifx.StaticUIMethods$ExceptionHandler uncaughtException} java.lang.reflect.InvocationTargetException
java.lang.RuntimeException: java.lang.reflect.InvocationTargetException
	at javafx.fxml/javafx.fxml.FXMLLoader$MethodHandler.invoke(FXMLLoader.java:1787)
	at javafx.fxml/javafx.fxml.FXMLLoader$ControllerMethodEventHandler.handle(FXMLLoader.java:1670)
	at javafx.base/com.sun.javafx.event.CompositeEventHandler.dispatchBubblingEvent(CompositeEventHandler.java:86)
	at javafx.base/com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:238)
	at javafx.base/com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:191)
	at javafx.base/com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:58)
	at javafx.base/com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
	at javafx.base/com.sun.javafx.event.EventUtil.fireEventImpl(EventUtil.java:74)
	at javafx.base/com.sun.javafx.event.EventUtil.fireEvent(EventUtil.java:49)
	at javafx.base/javafx.event.Event.fireEvent(Event.java:198)
	at javafx.controls/javafx.scene.control.MenuItem.fire(MenuItem.java:465)
	at javafx.controls/com.sun.javafx.scene.control.GlobalMenuAdapter.lambda$bindMenuItemProperties$2(GlobalMenuAdapter.java:153)
	at javafx.base/com.sun.javafx.event.CompositeEventHandler.dispatchBubblingEvent(CompositeEventHandler.java:86)
	at javafx.base/com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:238)
	at javafx.base/com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:191)
	at javafx.base/com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:58)
	at javafx.base/com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
	at javafx.base/com.sun.javafx.event.EventUtil.fireEventImpl(EventUtil.java:74)
	at javafx.base/com.sun.javafx.event.EventUtil.fireEvent(EventUtil.java:54)
	at javafx.base/javafx.event.Event.fireEvent(Event.java:198)
	at javafx.controls/javafx.scene.control.MenuItem.fire(MenuItem.java:465)
	at javafx.graphics/com.sun.javafx.tk.quantum.GlassSystemMenu$1.action(GlassSystemMenu.java:234)
Caused by: 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:564)
	at com.sun.javafx.reflect.Trampoline.invoke(MethodUtil.java:76)
	at jdk.internal.reflect.GeneratedMethodAccessor2.invoke(Unknown Source)
	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.base/java.lang.reflect.Method.invoke(Method.java:564)
	at javafx.base/com.sun.javafx.reflect.MethodUtil.invoke(MethodUtil.java:275)
	at javafx.fxml/com.sun.javafx.fxml.MethodHelper.invoke(MethodHelper.java:83)
	at javafx.fxml/javafx.fxml.FXMLLoader$MethodHandler.invoke(FXMLLoader.java:1784)
	... 21 more
Caused by: java.lang.NoClassDefFoundError: javax/xml/bind/JAXBException
	at org.hibernate.boot.spi.XmlMappingBinderAccess.<init>(XmlMappingBinderAccess.java:43)
	at org.hibernate.boot.MetadataSources.<init>(MetadataSources.java:86)
	at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.<init>(EntityManagerFactoryBuilderImpl.java:212)
	at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.<init>(EntityManagerFactoryBuilderImpl.java:174)
	at org.hibernate.jpa.boot.spi.Bootstrap.getEntityManagerFactoryBuilder(Bootstrap.java:76)
	at org.hibernate.jpa.HibernatePersistenceProvider.getEntityManagerFactoryBuilder(HibernatePersistenceProvider.java:171)
	at org.hibernate.jpa.HibernatePersistenceProvider.getEntityManagerFactoryBuilderOrNull(HibernatePersistenceProvider.java:119)
	at org.hibernate.jpa.HibernatePersistenceProvider.getEntityManagerFactoryBuilderOrNull(HibernatePersistenceProvider.java:61)
	at org.hibernate.jpa.HibernatePersistenceProvider.createEntityManagerFactory(HibernatePersistenceProvider.java:50)
	at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:79)
	at jgnash.engine.jpa.AbstractJpaDataStore.getLocalEngine(AbstractJpaDataStore.java:168)
	at jgnash.engine.jpa.JpaH2DataStore.getLocalEngine(JpaH2DataStore.java:34)
	at jgnash.engine.EngineFactory.bootLocalEngine(EngineFactory.java:277)
	at jgnash.util.NewFileUtility.buildNewFile(NewFileUtility.java:61)
	at jgnash.uifx.wizard.file.NewFileWizard.<init>(NewFileWizard.java:111)
	at jgnash.uifx.wizard.file.NewFileWizard.showAndWait(NewFileWizard.java:120)
	at jgnash.uifx.views.main.MenuBarController.handleNewAction(MenuBarController.java:253)
	... 32 more
Caused by: java.lang.ClassNotFoundException: javax.xml.bind.JAXBException
	at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:582)
	at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:190)
	at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:499)
	... 49 more

Steps to Reproduce the Problem

  1. File -> New
  2. Accept all of the defaults in the wizard (For me it was USD, no other currencies, use the "Common" accounts, accept the default db (H2)
  3. click the Finish button on the wizard

Specifications

  • jGnash Version: jGnash 2.36.0
  • Operating System: Mac OS X 10.13.6
  • Java Version 10.0.1

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.