ftp.FTPClient.initiateListParsing(String parserKey, String pathname) can call createFileEntryParser(String) with null systemName if the getSystemName() method fails.
The resulting ParserInitializationException does not identify the cause.
It would be better to throw a more specific error if the system name cannot be found.
Ideally, getSystemName() should throw the error, but that would change the documented behaviour (null is specifically allowed as a return value).
As it happens, getSystemName() is badly named, so one way forward is to create a new method getSystemType() which never returns null.
Can then deprecate getSystemName().