This is an automated email from the ASF dual-hosted git repository.

kwin pushed a commit to branch feature/only-warn-for-duplicate-anchor-names
in repository https://gitbox.apache.org/repos/asf/maven-doxia.git

commit 887bd2542f2aaad5c4d5e59c0f72f434dc7971ea
Author: Konrad Windszus <k...@apache.org>
AuthorDate: Tue Mar 12 18:00:22 2024 +0100

    [DOXIA-732] Don't fail for duplicate anchor names
    
    Emit warning with location prefix
    Pass document locator through SinkWrappers correctly
---
 .../java/org/apache/maven/doxia/sink/impl/SinkWrapper.java   | 12 ++++++++++++
 .../maven/doxia/sink/impl/UniqueAnchorNamesValidator.java    | 10 ++++++++--
 2 files changed, 20 insertions(+), 2 deletions(-)

diff --git 
a/doxia-core/src/main/java/org/apache/maven/doxia/sink/impl/SinkWrapper.java 
b/doxia-core/src/main/java/org/apache/maven/doxia/sink/impl/SinkWrapper.java
index 8f582052..05b28b49 100644
--- a/doxia-core/src/main/java/org/apache/maven/doxia/sink/impl/SinkWrapper.java
+++ b/doxia-core/src/main/java/org/apache/maven/doxia/sink/impl/SinkWrapper.java
@@ -19,6 +19,7 @@
 package org.apache.maven.doxia.sink.impl;
 
 import org.apache.maven.doxia.parser.Parser;
+import org.apache.maven.doxia.sink.Locator;
 import org.apache.maven.doxia.sink.Sink;
 import org.apache.maven.doxia.sink.SinkEventAttributes;
 
@@ -526,4 +527,15 @@ public class SinkWrapper extends AbstractSink {
     public void close() {
         delegate.close();
     }
+
+    @Override
+    public void setDocumentLocator(Locator locator) {
+        delegate.setDocumentLocator(locator);
+    }
+
+    @Override
+    public Locator getDocumentLocator() {
+        return delegate.getDocumentLocator();
+    }
+
 }
diff --git 
a/doxia-core/src/main/java/org/apache/maven/doxia/sink/impl/UniqueAnchorNamesValidator.java
 
b/doxia-core/src/main/java/org/apache/maven/doxia/sink/impl/UniqueAnchorNamesValidator.java
index eaf8f4a0..9dcca2e6 100644
--- 
a/doxia-core/src/main/java/org/apache/maven/doxia/sink/impl/UniqueAnchorNamesValidator.java
+++ 
b/doxia-core/src/main/java/org/apache/maven/doxia/sink/impl/UniqueAnchorNamesValidator.java
@@ -23,12 +23,16 @@ import java.util.Set;
 
 import org.apache.maven.doxia.sink.Sink;
 import org.apache.maven.doxia.sink.SinkEventAttributes;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 /**
  * Validates that each anchor name only appears once per document. Otherwise 
fails with an {@link IllegalStateException}.
  */
 public class UniqueAnchorNamesValidator extends SinkWrapper {
 
+    private static final Logger LOGGER = 
LoggerFactory.getLogger(UniqueAnchorNamesValidator.class);
+
     private final Set<String> usedAnchorNames;
 
     public UniqueAnchorNamesValidator(Sink sink) {
@@ -46,8 +50,10 @@ public class UniqueAnchorNamesValidator extends SinkWrapper {
 
     private void enforceUniqueAnchor(String name) {
         if (!usedAnchorNames.add(name)) {
-            throw new IllegalStateException(
-                    getLocationLogPrefix() + "Anchor name \"" + name + "\" 
used more than once");
+            LOGGER.warn(
+                    "{}Anchor name \"{}\" used more than once",
+                    getLocationLogPrefix(),
+                    name);
         }
     }
 }

Reply via email to