[
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)