File Release Notes
File gedcom4j-4.0.1.jar

v4.0.1 is a minor release. It includes a new class, KinshipNameCalculator, that determines a name for the relationship between two individuals, and largely makes the RelationshipCalculator class obsolete (but that class still remains).

Issues from Github (

  • Issue #44 - RelationshipCalculator has nothing yet about cousins
  • Issue #45 - RelationshipCalculator needs to go to 4th-great-grandparent and beyond
  • No issue - Minor fix for the copy constructor on Address.
File gedcom4j-4.0.0.jar

v4.0.0 is a major release that adds a revamped validation framework, new first-order support for custom tags, and support for third party custom tag sets. Most users, particularly those who used the validation framework or used custom tags, will need to make changes to accommodate API changes. See the Release 4.0.0 Notes page for details.

File gedcom4j-3.2.2.jar

v3.2.2 is a minor fix release that addresses a handful of issues:

  • Issue #162 - Fixed enum AdoptedByWhichParent so it uses the correct tag name HUSB for the husband doing the adopting.
  • Issue #163 - Fixed a NullPointerException vulnerability when parsing malformed files
  • Issue #164 - Fixed where the GedcomParser did not make a new, fresh instance of a Gedcom object if used repeatedly
  • Issue #165 - Fixed where Individual.getEventsOfType() returned an modifiable List - it is now unmodifiable
  • Issue #166 - Fixed where indented files in UTF-8 encoding (such as from were not being parsed correctly
File gedcom4j-3.2.1.jar

v3.2.1 of gedcom4j. Fixes a vulnerability to NullPointerExceptions when parsing dates (Issue #157).

File gedcom4j-3.2.0.jar

v3.2.0 is a minor release with a number of backward-compatible API changes for bug fixes and enhancements.

  • No issue numbers, but changed:
    • Minimum language level is now Java 7. Much code has been refactored to reflect this and to begin using Java 7 idioms.
    • Refactoring to use getters/setters throughout code (including tests) instead of direct field access, now that javabeans are the norm since 3.0.0
    • Merging in work from contributor Mark Sikes to introduce some new mix-in-like classes into the model, and to pull up common methods into the intermediate classes, to reduce repeated code and position for better validation
  • Issue #122 - Created IndividualFactory class to make creation of Individuals easy
  • Issue #123 - Created FamilyFactory class to make creation of Families easy and ensuring proper relationship connections between model objects
  • Issue #127 - Enhanced the Finder class to allow searching for individuals by events in a date range
  • Issue #130 - Fixed usage of AbstractNameVariation and created the PlaceNameVariation class for romanized/phonetic variants of place names.
  • Issue #132 - Introduced a number of superclasses and refactored cut-and-pasted code into them to reduce redundancy.
  • Issue #134 - Implemented Soundex algorithm and added to Finder so you can find people with names that sound like another name without needing exact spelling
File gedcom4j-3.1.0.jar

v3.1.0 is a minor release with some new backward-compatible API changes for bug fixes and enhancements.

  • Issue #126 - A number of problems were fixed regarding interoperability between Windows and Mac/Unix, predominantly around line terminators and encodings. A new property is available on GedcomWriter to set which line terminator you want to use if it is different than the default for your JVM and system.
  • Issue #125 - Added a new comparator that sorts individuals on a specific event date first, then surname then given name.
File gedcom4j-3.0.3.jar

v3.0.3 is a minor fix release.

  • Issue #120 - AncestryCalculator class was susceptible to StackOverflowErrors and infinite recursion when the gedcom file contained a cyclical ancestral relationship.
  • Issue #121 - Individual.toString() showed "spouse of unknown" where there may not be a spouse. It now shows nothing when there is no spouse to show.
File gedcom4j-3.0.2.jar

v3.0.2 is a minor fix release. Addresses an issue where RelationshipCalculator was prone to NullPointerExceptions for Individuals with a null value for their sex property.

File gedcom4j-3.0.1.jar

This release addresses a few bugs and adds support for parsing date strings.

  • Issue #114 - An enhancement providing parsing support for textual date strings, including ranges, periods, amd imprecise dates from the Gregorian, Julian, Hebrew, and French Republican calendars.
  • Issue #115 - Fixed a bug where Individual.getAncestors() and Individual.getDescendants() could infinitely recurse if cyclical relationships exist in the model (e.g. people being their own ancestors).
  • Issue #116 - FamilyParser was creating an validation finding if a Family record has no children.
  • Issue #117 - The validation framework was creating an ERROR level finding when multimedia objects referencing FILEs did not also include a FORMat tag. These are often omitted and implied by filename conventions, so the ERROR was relaxed to a WARNING.
File gedcom4j-3.0.0.jar

v3.0.0 is a major release. Most existing code using earlier versions of gedcom4j will need significant modification, primarily around the object model.

The following enhancements and fixes are included:

  • Issue #83 - The biggest change that users will see is that gedcom4j now uses the JavaBean spec for its object model and internal objects as well. Where you used to access public fields of the data model, you now need to use getters and setters.
  • Issue #85 - The GedcomParser class, which was a monster magic class almost 2,400 lines long, has been split up and there are a variety of parser classes that work in concert to parse input files
  • Issue #86 - The GedcomWriter class was also another giant magic class, and it too has been split up into a variety of classes that work together to construct and write a GEDCOM file.
  • Issue #104 - The classes in the model now implement and have defined serial version UIDs.
  • Issue #109 - GedcomParser and StringTreeBuilder now only builds a single root-level StringTree node at a time before parsing and loading it into the object model, instead of loading the entire file into a StringTree in memory prior to parsing it.
  • Issue #111 - GedcomValidator now removes duplicate items from most collections when autorepair is enabled.
  • Issue #112 - The Maven pom.xml file now includes the ability to ensure that all java source files have the correct license and copyright statement header.
  • Issue #113 - The FileProgressEvent notifications now include the number of bytes processed. This makes it possible for calling code to calculate percents complete when the file size is known.
  • Not related to an issue in GitHub, users should know that the toString() implementations of most model objects have been rewritten.