From c0cb471231889d1e86739f5229bdcd22bc26d36b Mon Sep 17 00:00:00 2001 From: Jonathan Gibbons Date: Mon, 22 Jan 2018 11:28:32 -0800 Subject: [PATCH] 8195805: Doclet incorrectly updates all attributes in tags when relocating links Reviewed-by: ksrini --- .../doclets/formats/html/HtmlDocletWriter.java | 3 ++- .../doclet/testRelativeLinks/TestRelativeLinks.java | 11 ++++++++--- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/HtmlDocletWriter.java b/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/HtmlDocletWriter.java index cf396e8c126..cfb7e0ee027 100644 --- a/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/HtmlDocletWriter.java +++ b/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/HtmlDocletWriter.java @@ -1752,8 +1752,9 @@ public class HtmlDocletWriter { result.addContent(sb); Content docRootContent = new ContentBuilder(); + boolean isHRef = inAnAtag() && node.getName().toString().equalsIgnoreCase("href"); for (DocTree dt : node.getValue()) { - if (utils.isText(dt) && inAnAtag()) { + if (utils.isText(dt) && isHRef) { String text = ((TextTree) dt).getBody(); if (text.startsWith("/..") && !configuration.docrootparent.isEmpty()) { result.addContent(configuration.docrootparent); diff --git a/test/langtools/jdk/javadoc/doclet/testRelativeLinks/TestRelativeLinks.java b/test/langtools/jdk/javadoc/doclet/testRelativeLinks/TestRelativeLinks.java index bd3bece4053..c74caffbd4d 100644 --- a/test/langtools/jdk/javadoc/doclet/testRelativeLinks/TestRelativeLinks.java +++ b/test/langtools/jdk/javadoc/doclet/testRelativeLinks/TestRelativeLinks.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, 2016, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2003, 2018, 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 @@ -23,7 +23,7 @@ /* * @test - * @bug 4460354 8014636 8043186 + * @bug 4460354 8014636 8043186 8195805 * @summary Test to make sure that relative paths are redirected in the * output so that they are not broken. * @author jamieh @@ -67,7 +67,12 @@ public class TestRelativeLinks extends JavadocTester { "relative field link", "relative method link", "relative package link", - " relative-multi-line-link.", + " relative-multi-line-link."); + + // This is not a relative path and should not be redirected. + checkOutput("index-all.html", true, + "
"); + checkOutput("index-all.html", false, "
"); // PACKAGE USE