[ https://issues.apache.org/jira/browse/DOXIA-662?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17563852#comment-17563852 ]
ASF GitHub Bot commented on DOXIA-662: -------------------------------------- michael-o commented on code in PR #106: URL: https://github.com/apache/maven-doxia/pull/106#discussion_r916054183 ########## doxia-core/src/main/java/org/apache/maven/doxia/index/IndexingSink.java: ########## @@ -323,6 +331,26 @@ public void text( String text ) } } + /** + * Converts the given id into a unique one by potentially suffix it with a counter value. + * @param id + * @return the unique id + */ + String getUniqueId( String id ) + { + final String uniqueId; + if ( usedIds.containsKey( id ) ) + { + uniqueId = id + "_" + usedIds.get( id ).incrementAndGet(); + } + else + { + usedIds.put( id, new AtomicInteger() ); Review Comment: The idea is just to remove the ugly if else with is there, no then create. > Non unique IDs generated by IndexingSink > ---------------------------------------- > > Key: DOXIA-662 > URL: https://issues.apache.org/jira/browse/DOXIA-662 > Project: Maven Doxia > Issue Type: Bug > Components: Core > Affects Versions: 2.0.0-M3 > Reporter: Konrad Windszus > Priority: Major > > If a HTML source contains non-unique headlines (i.e. two or more headlines > with the same text) in a single HTML page the IDs being generated out of > those are not unique. > That leads to issues with e.g. the TOC macro > (https://github.com/apache/maven-doxia/blob/2aea4500ba6559b91fe3a4b83a5d3aafc10116b4/doxia-core/src/main/java/org/apache/maven/doxia/macro/toc/TocMacro.java#L155) > which writes an anchor link leveraging that id. > The problematic line is > https://github.com/apache/maven-doxia/blob/2aea4500ba6559b91fe3a4b83a5d3aafc10116b4/doxia-core/src/main/java/org/apache/maven/doxia/index/IndexingSink.java#L314 > which just uses the (sanitized) title as id. In case of conflicts the title > needs to be suffixed with an index to be unique. -- This message was sent by Atlassian Jira (v8.20.10#820010)