You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by kw...@apache.org on 2026/04/15 09:28:02 UTC

(maven-doxia-converter) branch master updated: Emit file name when exception happens during convert (#133)

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

kwin pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/maven-doxia-converter.git


The following commit(s) were added to refs/heads/master by this push:
     new de5c4a1  Emit file name when exception happens during convert (#133)
de5c4a1 is described below

commit de5c4a149d847ff4a609e690c3ef6a8117f91e00
Author: Konrad Windszus <kw...@apache.org>
AuthorDate: Wed Apr 15 11:27:56 2026 +0200

    Emit file name when exception happens during convert (#133)
    
    Don't swallow underlying exception during Sink.close()
---
 .../org/apache/maven/doxia/DefaultConverter.java   | 27 ++++++++++++++--------
 1 file changed, 17 insertions(+), 10 deletions(-)

diff --git a/src/main/java/org/apache/maven/doxia/DefaultConverter.java b/src/main/java/org/apache/maven/doxia/DefaultConverter.java
index 2f806db..6986815 100644
--- a/src/main/java/org/apache/maven/doxia/DefaultConverter.java
+++ b/src/main/java/org/apache/maven/doxia/DefaultConverter.java
@@ -484,9 +484,10 @@ public class DefaultConverter implements Converter {
             } catch (IOException e) {
                 throw new ConverterException("IOException: " + e.getMessage(), e);
             }
-            LOGGER.debug("Sink used: {}", sink.getClass().getName());
-
-            parse(parser, input.getReader(), sink);
+            try (Sink s = sink) {
+                LOGGER.debug("Sink used: {}", sink.getClass().getName());
+                parse(parser, input.getReader(), s);
+            }
         } finally {
             stopPlexusContainer();
         }
@@ -623,8 +624,12 @@ public class DefaultConverter implements Converter {
         }
 
         LOGGER.debug("Sink used: {}", sink.getClass().getName());
-        parse(parser, reader, sink);
-
+        try (Sink s = sink) {
+            parse(parser, reader, s);
+        } catch (Exception e) {
+            throw new ConverterException(
+                    "Error converting file \"" + inputFile.getAbsolutePath() + "\": " + e.getMessage(), e);
+        }
         if (formatOutput && output.getFormat().isXml()) {
             try (Reader r = ReaderFactory.newXmlReader(outputFile);
                     Writer w = WriterFactory.newXmlWriter(outputFile)) {
@@ -659,11 +664,13 @@ public class DefaultConverter implements Converter {
     private void parse(Parser parser, Reader reader, Sink sink) throws ConverterException {
         try (Reader r = reader) {
             parser.parse(r, sink);
-        } catch (ParseException | IOException e) {
-            throw new ConverterException("ParseException: " + e.getMessage(), e);
-        } finally {
-            sink.flush();
-            sink.close();
+        } catch (ParseException e) {
+            throw new ConverterException(
+                    "ParseException in line " + e.getLineNumber() + ", column " + e.getColumnNumber() + ": "
+                            + e.getMessage(),
+                    e);
+        } catch (IOException e) {
+            throw new ConverterException("IOException: " + e.getMessage(), e);
         }
     }