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-sitetools.git


The following commit(s) were added to refs/heads/master by this push:
     new 0ad0931  Prevent IllegalStateException when using deprecated 
DocumentRenderingContext constructors with basedirRelativePath being null
0ad0931 is described below

commit 0ad0931de8cb8de3cf3487606246abeb3b050dcd
Author: Konrad Windszus <[email protected]>
AuthorDate: Thu Apr 9 20:39:24 2026 +0200

    Prevent IllegalStateException when using deprecated
    DocumentRenderingContext constructors with basedirRelativePath being
    null
    
    In case basedirRelativePath is null neither rootDirectory nor
    siteRootDirectory should be set, as in that case also basedir is a
    pseudo directory.
    
    This closes #638
---
 .../maven/doxia/siterenderer/DocumentRenderingContext.java   | 11 ++++++-----
 .../doxia/siterenderer/DocumentRenderingContextTest.java     | 12 ++++++++++++
 2 files changed, 18 insertions(+), 5 deletions(-)

diff --git 
a/doxia-site-renderer/src/main/java/org/apache/maven/doxia/siterenderer/DocumentRenderingContext.java
 
b/doxia-site-renderer/src/main/java/org/apache/maven/doxia/siterenderer/DocumentRenderingContext.java
index 8d2be1e..e92d7a1 100644
--- 
a/doxia-site-renderer/src/main/java/org/apache/maven/doxia/siterenderer/DocumentRenderingContext.java
+++ 
b/doxia-site-renderer/src/main/java/org/apache/maven/doxia/siterenderer/DocumentRenderingContext.java
@@ -59,7 +59,7 @@ public class DocumentRenderingContext {
      */
     private final Collection<File> sourceDirectories;
 
-    /** The project's build directory, may be {@code null} rendered from a 
Doxia source) */
+    /** The project's build directory, may be {@code null} if not rendered 
from a Doxia source */
     private final File rootDirectory;
 
     /** The site's root directory, must be below {@link #rootDirectory}, may 
be {@code null} if not rendered from a Doxia source */
@@ -106,7 +106,7 @@ public class DocumentRenderingContext {
     /**
      *
      * @param basedir
-     * @param basedirRelativePath
+     * @param basedirRelativePath (may be null if not a Doxia source)
      * @param document
      * @param parserId
      * @param extension
@@ -183,10 +183,11 @@ public class DocumentRenderingContext {
                 document,
                 parserId,
                 extension,
-                stripSuffixFromPath(basedir, basedirRelativePath),
+                // only generate root directory when basedirRelativePath is 
provided (for a doxia source)
+                basedirRelativePath == null ? null : 
stripSuffixFromPath(basedir, basedirRelativePath),
                 // assume that site root is the parent of basedir (i.e. module 
specific source directory is directly
-                // below site root)
-                basedir.getParentFile(),
+                // below site root), only when basedirRelativePath is provided 
(for a doxia source)
+                basedirRelativePath == null ? null : basedir.getParentFile(),
                 editable ? Collections.singleton(basedir) : 
Collections.emptySet(),
                 generator);
     }
diff --git 
a/doxia-site-renderer/src/test/java/org/apache/maven/doxia/siterenderer/DocumentRenderingContextTest.java
 
b/doxia-site-renderer/src/test/java/org/apache/maven/doxia/siterenderer/DocumentRenderingContextTest.java
index e455b0d..38e406b 100644
--- 
a/doxia-site-renderer/src/test/java/org/apache/maven/doxia/siterenderer/DocumentRenderingContextTest.java
+++ 
b/doxia-site-renderer/src/test/java/org/apache/maven/doxia/siterenderer/DocumentRenderingContextTest.java
@@ -113,4 +113,16 @@ class DocumentRenderingContextTest {
         assertEquals("path/file.html", docRenderingContext.getOutputPath());
         assertEquals("..", docRenderingContext.getRelativePath());
     }
+
+    @Test
+    void testConstructorWithNullBasedirRelativePath() {
+        File basedir = new File(".");
+        DocumentRenderingContext context =
+                new DocumentRenderingContext(basedir, null, "document", 
"markdown", null, false);
+        assertNull(context.getBasedirRelativePath());
+        assertNull(context.getDoxiaSourcePath());
+        context = new DocumentRenderingContext(basedir, null, "document", 
"markdown", null, false, "generator");
+        assertNull(context.getBasedirRelativePath());
+        assertNull(context.getDoxiaSourcePath());
+    }
 }

Reply via email to