The CanonicalModelClassFactory, used to force the parser to return a specific version, or a specific message type, has an error when used to force the use of superstructure messages, such as ADT_AXX. The CanonicalModelClassFactory ignores the passed in version (usually retrieved by the caller from the message) and supplies the version that is stored in the factory's private myVersion field. When creating the factory for a specific version, (e.g., new CanonicalModelClassFactory("2.3");), this works as expected, since the myVersion field is populated in the constructor. However, when constructing to enforce a specific class, the myVersion field is not populated, which results in a null being passed as the version into the parent class method.
Locally, I've fixed this by adding the following line of code into the class-specific constructor:
myVersion = getHighestKnownVersion();