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

kwin pushed a commit to branch 
bugfix/fix-ise-in-documentrenderingcontext-constructor
in repository https://gitbox.apache.org/repos/asf/maven-doxia-sitetools.git

commit 9f5b335bf58de246be7e7d0887b69af679f8dfa2
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.
---
 .../maven/doxia/siterenderer/DocumentRenderingContext.java    | 11 ++++++-----
 .../doxia/siterenderer/DocumentRenderingContextTest.java      |  7 +++++++
 2 files changed, 13 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..aa757d0 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,11 @@ class DocumentRenderingContextTest {
         assertEquals("path/file.html", docRenderingContext.getOutputPath());
         assertEquals("..", docRenderingContext.getRelativePath());
     }
+
+    @Test
+    void testConstructorWithNullBasedirRelativePath() {
+        File basedir = new File(".");
+        new DocumentRenderingContext(basedir, null, "document", "markdown", 
"md", false);
+        new DocumentRenderingContext(basedir, null, "document", "markdown", 
"md", false, "generator");
+    }
 }

Reply via email to