Interpretando a mensagem java.lang.NoSuchMethodError

Recebo a seguinte mensagem de erro de tempo de execução (junto com a primeira linha do rastreamento de pilha, que aponta para a linha 94). Estou tentando descobrir por que ele diz que esse método não existe.

java.lang.NoSuchMethodError: 
com.sun.tools.doclets.formats.html.SubWriterHolderWriter.printDocLinkForMenu(
    ILcom/sun/javadoc/ClassDoc;Lcom/sun/javadoc/MemberDoc;
    Ljava/lang/String;Z)Ljava/lang/String;
at com.sun.tools.doclets.formats.html.AbstractExecutableMemberWriter.writeSummaryLink(
    AbstractExecutableMemberWriter.java:94)

A linha 94 do writeSummaryLink é mostrada abaixo.

QUESTÕES
O que significa "ILcom" ou "Z"?
Por que existem quatro tipos entre parênteses (ILcom / sun / javadoc / ClassDoc; Lcom / sun / javadoc / MemberDoc; Ljava / lang / String; Z) e um após os parênteses Ljava / lang / String; quando o método printDocLinkForMenu possui claramente cinco parâmetros?

DETALHE DO CÓDIGO
O método writeSummaryLink é:

protected void writeSummaryLink(int context, ClassDoc cd, ProgramElementDoc member) {
    ExecutableMemberDoc emd = (ExecutableMemberDoc)member;
    String name = emd.name();
    writer.strong();
    writer.printDocLinkForMenu(context, cd, (MemberDoc) emd, name, false);  // 94
    writer.strongEnd();
    writer.displayLength = name.length();
    writeParameters(emd, false);
}

Aqui está o método que a linha 94 está chamando:

public void printDocLinkForMenu(int context, ClassDoc classDoc, MemberDoc doc,
        String label, boolean strong) {
    String docLink = getDocLink(context, classDoc, doc, label, strong);
    print(deleteParameterAnchors(docLink));
}

questionAnswers(2)

yourAnswerToTheQuestion