From c5f60cc6e890ef556d68b1793324afb33c0170c2 Mon Sep 17 00:00:00 2001 From: Hannes Wallnoefer Date: Tue, 4 Nov 2025 15:40:36 +0100 Subject: [PATCH 1/3] 8366094: Sealed graph for nested types creates broken links --- make/jdk/src/classes/build/tools/taglet/SealedGraph.java | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/make/jdk/src/classes/build/tools/taglet/SealedGraph.java b/make/jdk/src/classes/build/tools/taglet/SealedGraph.java index 17867b99595bc..eb9e3156ebed9 100644 --- a/make/jdk/src/classes/build/tools/taglet/SealedGraph.java +++ b/make/jdk/src/classes/build/tools/taglet/SealedGraph.java @@ -219,13 +219,11 @@ public void addNode(TypeElement node) { // This implies the module is always the same. private String relativeLink(TypeElement node) { var util = SealedGraph.this.docletEnvironment.getElementUtils(); - var rootPackage = util.getPackageOf(rootNode); var nodePackage = util.getPackageOf(node); - var backNavigator = rootPackage.getQualifiedName().toString().chars() + var backNavigator = rootNode.getQualifiedName().toString().chars() .filter(c -> c == '.') .mapToObj(c -> "../") - .collect(joining()) + - "../"; + .collect(joining()); var forwardNavigator = nodePackage.getQualifiedName().toString() .replace(".", "/"); From eb3c1ec39f69091597f5730a2c0eb62d0b154b75 Mon Sep 17 00:00:00 2001 From: Hannes Wallnoefer Date: Tue, 4 Nov 2025 17:10:54 +0100 Subject: [PATCH 2/3] Update copyright year --- make/jdk/src/classes/build/tools/taglet/SealedGraph.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/make/jdk/src/classes/build/tools/taglet/SealedGraph.java b/make/jdk/src/classes/build/tools/taglet/SealedGraph.java index eb9e3156ebed9..24b84225c7db4 100644 --- a/make/jdk/src/classes/build/tools/taglet/SealedGraph.java +++ b/make/jdk/src/classes/build/tools/taglet/SealedGraph.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2022, 2024, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2022, 2025, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it From ef36422ec94717a32b5a1c8c3c70dde481362e6a Mon Sep 17 00:00:00 2001 From: Hannes Wallnoefer Date: Fri, 14 Nov 2025 10:59:21 +0100 Subject: [PATCH 3/3] Add comment to explain SVG naming scheme --- make/jdk/src/classes/build/tools/taglet/SealedGraph.java | 2 ++ 1 file changed, 2 insertions(+) diff --git a/make/jdk/src/classes/build/tools/taglet/SealedGraph.java b/make/jdk/src/classes/build/tools/taglet/SealedGraph.java index 24b84225c7db4..3e93826c1804d 100644 --- a/make/jdk/src/classes/build/tools/taglet/SealedGraph.java +++ b/make/jdk/src/classes/build/tools/taglet/SealedGraph.java @@ -220,6 +220,8 @@ public void addNode(TypeElement node) { private String relativeLink(TypeElement node) { var util = SealedGraph.this.docletEnvironment.getElementUtils(); var nodePackage = util.getPackageOf(node); + // Note: SVG files for nested types use the simple names of containing types as parent directories. + // We therefore need to convert all dots in the qualified name to "../" below. var backNavigator = rootNode.getQualifiedName().toString().chars() .filter(c -> c == '.') .mapToObj(c -> "../")