gradle-dependency-graph-generator-plugin icon indicating copy to clipboard operation
gradle-dependency-graph-generator-plugin copied to clipboard

NPE SVGDiagram.setIgnoringClipHeuristic(boolean)" because "diagram" is null

Open icyerasor opened this issue 2 years ago • 9 comments

With latest id("com.vanniktech.dependency.graph.generator") version "0.8.0" i get the following error:

./gradlew generateProjectDependencyGraph --stacktrace

> Configure project :integration
Build was configured to prefer settings repositories over project repositories but repository 'MavenRepo' was added by build file 'integration\build.gradle.kts'

> Task :generateProjectDependencyGraph FAILED
Generated SVG has not the expected format. There might be image size problems.
[Fatal Error] :-1:-1: Premature end of file.
Error processing svgSalamander://graph/
org.xml.sax.SAXParseException; Premature end of file.
        at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown Source)
        at org.apache.xerces.jaxp.SAXParserImpl$JAXPSAXParser.parse(Unknown Source)
        at com.kitfox.svg.SVGUniverse.loadSVG(SVGUniverse.java:608)
        at com.kitfox.svg.SVGUniverse.loadSVG(SVGUniverse.java:545)
        at com.kitfox.svg.SVGUniverse.loadSVG(SVGUniverse.java:502)
        at guru.nidi.graphviz.engine.SalamanderRasterizer.createDiagram(SalamanderRasterizer.java:43)
        at guru.nidi.graphviz.engine.SalamanderRasterizer.doRasterize(SalamanderRasterizer.java:31)
        at guru.nidi.graphviz.engine.SvgRasterizer.rasterize(SvgRasterizer.java:40)
        at guru.nidi.graphviz.engine.Renderer.toImage(Renderer.java:123)
        at guru.nidi.graphviz.engine.Renderer.toFile(Renderer.java:75)
        at guru.nidi.graphviz.engine.Renderer.lambda$toFile$4(Renderer.java:61)
        at guru.nidi.graphviz.engine.EngineResult.mapIO(EngineResult.java:72)
        at guru.nidi.graphviz.engine.Renderer.toFile(Renderer.java:59)
        at com.vanniktech.dependency.graph.generator.ProjectDependencyGraphGeneratorTask.run(ProjectDependencyGraphGeneratorTask.kt:34
        ....
        ....
FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':generateProjectDependencyGraph'.
> Cannot invoke "com.kitfox.svg.SVGDiagram.setIgnoringClipHeuristic(boolean)" because "diagram" is null

* Try:
> Run with --info or --debug option to get more log output.
> Run with --scan to get full insights.

* Exception is:
org.gradle.api.tasks.TaskExecutionException: Execution failed for task ':generateProjectDependencyGraph'.
        ...
        ...
Caused by: java.lang.NullPointerException: Cannot invoke "com.kitfox.svg.SVGDiagram.setIgnoringClipHeuristic(boolean)" because "diagram" is null
        at guru.nidi.graphviz.engine.SalamanderRasterizer.createDiagram(SalamanderRasterizer.java:45)
        at guru.nidi.graphviz.engine.SalamanderRasterizer.doRasterize(SalamanderRasterizer.java:31)
        at guru.nidi.graphviz.engine.SvgRasterizer.rasterize(SvgRasterizer.java:40)
        at guru.nidi.graphviz.engine.Renderer.toImage(Renderer.java:123)
        at guru.nidi.graphviz.engine.Renderer.toFile(Renderer.java:75)
        at guru.nidi.graphviz.engine.Renderer.lambda$toFile$4(Renderer.java:61)
        at guru.nidi.graphviz.engine.EngineResult.mapIO(EngineResult.java:72)
        at guru.nidi.graphviz.engine.Renderer.toFile(Renderer.java:59)
        at com.vanniktech.dependency.graph.generator.ProjectDependencyGraphGeneratorTask.run(ProjectDependencyGraphGeneratorTask.kt:34)
        ...
        ...

BUILD FAILED in 1s
4 actionable tasks: 1 executed, 3 up-to-date

see full errorlog.txt see generated .dot file project-dependency-graph.dot.txt

With id("com.vanniktech.dependency.graph.generator") version "0.7.0" it works (at least when I start with a fresh gradle deamon).

icyerasor avatar Aug 30 '22 12:08 icyerasor

builds with gradle commands generateDependencyGraph or generateProjectDependencyGraph finished with next error

Execution failed for task ':generateProjectDependencyGraph'.
> Cannot invoke "com.kitfox.svg.SVGDiagram.setIgnoringClipHeuristic(boolean)" because "diagram" is null

tried different versions:

classpath "com.vanniktech:gradle-dependency-graph-generator-plugin:0.8.0"
classpath "com.vanniktech:gradle-dependency-graph-generator-plugin:0.7.0"

same result

tried with fresh daemon also - the same

@vanniktech check it please

katkoff avatar Jun 23 '23 11:06 katkoff

Hitting this also now in https://github.com/vanniktech/gradle-dependency-graph-generator-plugin/pull/228 - might be due to JDK 17.

Reported it here: https://github.com/nidi3/graphviz-java/issues/249

vanniktech avatar Jul 02 '23 22:07 vanniktech

same here. Will this problem be fixed?

wverdese avatar Nov 07 '23 21:11 wverdese

Hitting the same issue. looks like graphviz-java is a dead project to update to jdk17

xpenatan avatar Nov 12 '23 12:11 xpenatan

Due to this problem, at this point the tool is not useful for most projects with current AGP (current AGP requires JDK17 which is also included along with the latest Android Studio).

Have you considered removing graphviz-java dependency and requiring the presence of an installed graphiz tool on the user's system?

dees91 avatar Jan 15 '24 13:01 dees91

Have you considered removing graphviz-java dependency and requiring the presence of an installed graphiz tool on the user's system?

It used to be like this but many users had problems. Or they didn't have it installed.

vanniktech avatar Jan 15 '24 18:01 vanniktech