[ https://issues.apache.org/jira/browse/DOXIA-662?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17563856#comment-17563856 ]
ASF GitHub Bot commented on DOXIA-662: -------------------------------------- kwin commented on code in PR #106: URL: https://github.com/apache/maven-doxia/pull/106#discussion_r916056669 ########## 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: I need to check not only to create if it is not there, but also to suffix if it is there. The latter can not be replaced by `computeIfAbsent()` therefore I would leave it like this. > 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)