

The misleading error message talking about a module descriptor implies that the implementation of services specified via META-INF/services/* files (available since Java 6), has been merged with the new implementation of JPMS services specified via the module-info.java file (which are available since Java 9).

See also the error message: it says Provider class and not Provider classes and there is no space after the, so it names only the single class with the invalid name ,1_serializer.MXSerializer. The file contains a list of fully-qualified binary names of concrete See Javadoc of ServiceLoader (highlighting in bold by me): The two provider classes are specified as comma-separated list instead of one class per line.

The JAR file contains the provider-configuration file META-INF/services/1.XmlPullParserFactory with the following content: ,1_serializer.MXSerializer
