diff --git a/docs/flows.md b/docs/flows.md index cdb3ab958..547cc597f 100644 --- a/docs/flows.md +++ b/docs/flows.md @@ -27,7 +27,6 @@ An EPP flow that creates a new contact. * Internationalized postal infos can only contain ASCII characters. * 2302 * Resource with this id already exists. - * Resource with this id already exists. * 2306 * Declining contact disclosure is disallowed by server policy. @@ -342,7 +341,6 @@ An EPP flow that creates a new domain resource. * Registrar must be active in order to perform this operation. * 2302 * Resource with this id already exists. - * Resource with this id already exists. * 2303 * Resource linked to this domain does not exist. * 2304 @@ -825,7 +823,6 @@ allows creating a host name, and if necessary enqueues tasks to update DNS. * Host names must be puny-coded. * 2302 * Resource with this id already exists. - * Resource with this id already exists. * 2303 * Superordinate domain for this hostname does not exist. * 2304 diff --git a/java/google/registry/documentation/MarkdownDocumentationFormatter.java b/java/google/registry/documentation/MarkdownDocumentationFormatter.java index fd6136755..a080e36de 100644 --- a/java/google/registry/documentation/MarkdownDocumentationFormatter.java +++ b/java/google/registry/documentation/MarkdownDocumentationFormatter.java @@ -163,15 +163,18 @@ public final class MarkdownDocumentationFormatter { for (Long code : flowDoc.getErrorsByCode().keySet()) { output.append(String.format("* %d\n", code)); + flowDoc.getErrorsByCode().get(code).stream() + .map(ErrorCase::getReason) + .distinct() + .forEach( + reason -> { + output.append(" * "); + String wrappedReason = reflow(fixHtml(reason), LINE_WIDTH - 8); - for (ErrorCase error : flowDoc.getErrorsByCode().get(code)) { - output.append(" * "); - String wrappedReason = reflow(fixHtml(error.getReason()), LINE_WIDTH - 8); - - // Replace internal newlines with indentation and strip the final newline. - output.append(wrappedReason.trim().replace("\n", "\n" + INDENT8)); - output.append('\n'); - } + // Replace internal newlines with indentation and strip the final newline. + output.append(wrappedReason.trim().replace("\n", "\n" + INDENT8)); + output.append('\n'); + }); } output.append('\n'); }