# HG changeset patch # User jjg # Date 1516649312 28800 # Node ID e1876e6b57b6f81b4fa091408a4481f02b315d70 # Parent 36f58bd6269f2dcad9b96471f5a2500a3cffb9df 8195805: Doclet incorrectly updates all attributes in tags when relocating links Reviewed-by: ksrini diff -r 36f58bd6269f -r e1876e6b57b6 src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/HtmlDocletWriter.java --- a/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/HtmlDocletWriter.java Mon Jan 22 11:15:51 2018 -0800 +++ b/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/HtmlDocletWriter.java Mon Jan 22 11:28:32 2018 -0800 @@ -1752,8 +1752,9 @@ 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 -r 36f58bd6269f -r e1876e6b57b6 test/langtools/jdk/javadoc/doclet/testRelativeLinks/TestRelativeLinks.java --- a/test/langtools/jdk/javadoc/doclet/testRelativeLinks/TestRelativeLinks.java Mon Jan 22 11:15:51 2018 -0800 +++ b/test/langtools/jdk/javadoc/doclet/testRelativeLinks/TestRelativeLinks.java Mon Jan 22 11:28:32 2018 -0800 @@ -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 @@ "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