As found by errorprone, the args (or the arg variable names) to encodeDocumentTypeDeclaration appear to be switched:
$ pwd; grep -r encodeDocumentTypeDeclaration .
.../jdk10/jaxws/src/java.xml.bind/share/classes/com/sun/xml/internal/fastinfoset
./sax/SAXDocumentSerializer.java: encodeDocumentTypeDeclaration(publicId, systemId);
./Encoder.java: protected final void encodeDocumentTypeDeclaration(String systemId, String publicId) throws IOException {
$ pwd; grep -r encodeDocumentTypeDeclaration .
.../jdk10/jaxws/src/java.xml.bind/share/classes/com/sun/xml/internal/fastinfoset
./sax/SAXDocumentSerializer.java: encodeDocumentTypeDeclaration(publicId, systemId);
./Encoder.java: protected final void encodeDocumentTypeDeclaration(String systemId, String publicId) throws IOException {