The NamedIdentifier(Citation, CharSequence) constructor creates automatically a NameSpace (the value returned by the GenericName.scope() method) based on the Citation title. But this name space is also stored in the head (the value returned by the GenericName.head() method) of the name. This results in duplicated identifier when the full name is printed. For example:
The proposed fix is to omit completely the NameSpace creation for automatically generated names. Users can still specify a name space by creating their GenericName explicitly, for example using a NameFactory or the convenience static methods provided in the Names class.