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());
+ }
}