8011288: Erratic/inconsistent indentation of signatures

Reviewed-by: darcy
This commit is contained in:
Jonathan Gibbons 2013-05-14 10:14:53 -07:00
parent b2becec2bc
commit 0ac80e7f93
16 changed files with 184 additions and 121 deletions

View File

@ -60,17 +60,24 @@ public abstract class AbstractExecutableMemberWriter extends AbstractMemberWrite
* @param htmltree the content tree to which the parameters will be added.
* @return the display length required to write this information.
*/
protected int addTypeParameters(ExecutableMemberDoc member, Content htmltree) {
protected void addTypeParameters(ExecutableMemberDoc member, Content htmltree) {
Content typeParameters = getTypeParameters(member);
if (!typeParameters.isEmpty()) {
htmltree.addContent(typeParameters);
htmltree.addContent(writer.getSpace());
}
}
/**
* Get the type parameters for the executable member.
*
* @param member the member for which to get the type parameters.
* @return the type parameters.
*/
protected Content getTypeParameters(ExecutableMemberDoc member) {
LinkInfoImpl linkInfo = new LinkInfoImpl(configuration,
LinkInfoImpl.Kind.MEMBER_TYPE_PARAMS, member);
Content typeParameters = writer.getTypeParameterLinks(linkInfo);
if (linkInfo.displayLength > 0) {
Content linkContent = typeParameters;
htmltree.addContent(linkContent);
htmltree.addContent(writer.getSpace());
writer.displayLength += linkInfo.displayLength + 1;
}
return linkInfo.displayLength;
return writer.getTypeParameterLinks(linkInfo);
}
/**
@ -98,8 +105,7 @@ public abstract class AbstractExecutableMemberWriter extends AbstractMemberWrite
writer.getDocLink(context, cd, (MemberDoc) emd,
name, false));
Content code = HtmlTree.CODE(strong);
writer.displayLength = name.length();
addParameters(emd, false, code);
addParameters(emd, false, code, name.length() - 1);
tdSummary.addContent(code);
}
@ -166,8 +172,8 @@ public abstract class AbstractExecutableMemberWriter extends AbstractMemberWrite
* @param member the member to write parameters for.
* @param htmltree the content tree to which the parameters information will be added.
*/
protected void addParameters(ExecutableMemberDoc member, Content htmltree) {
addParameters(member, true, htmltree);
protected void addParameters(ExecutableMemberDoc member, Content htmltree, int indentSize) {
addParameters(member, true, htmltree, indentSize);
}
/**
@ -178,15 +184,11 @@ public abstract class AbstractExecutableMemberWriter extends AbstractMemberWrite
* @param htmltree the content tree to which the parameters information will be added.
*/
protected void addParameters(ExecutableMemberDoc member,
boolean includeAnnotations, Content htmltree) {
boolean includeAnnotations, Content htmltree, int indentSize) {
htmltree.addContent("(");
String sep = "";
Parameter[] params = member.parameters();
String indent = makeSpace(writer.displayLength);
if (configuration.linksource) {
//add spaces to offset indentation changes caused by link.
indent+= makeSpace(member.name().length());
}
String indent = makeSpace(indentSize + 1);
Type rcvrType = member.receiverType();
if (includeAnnotations && rcvrType instanceof AnnotatedType) {
AnnotationDesc[] descList = rcvrType.asAnnotatedType().annotations();
@ -240,21 +242,16 @@ public abstract class AbstractExecutableMemberWriter extends AbstractMemberWrite
* @param member the member to write exceptions for.
* @param htmltree the content tree to which the exceptions information will be added.
*/
protected void addExceptions(ExecutableMemberDoc member, Content htmltree) {
protected void addExceptions(ExecutableMemberDoc member, Content htmltree, int indentSize) {
Type[] exceptions = member.thrownExceptionTypes();
if(exceptions.length > 0) {
if (exceptions.length > 0) {
LinkInfoImpl memberTypeParam = new LinkInfoImpl(configuration,
LinkInfoImpl.Kind.MEMBER, member);
int retlen = getReturnTypeLength(member);
writer.getTypeParameterLinks(memberTypeParam);
retlen += memberTypeParam.displayLength == 0 ?
0 : memberTypeParam.displayLength + 1;
String indent = makeSpace(modifierString(member).length() +
member.name().length() + retlen - 4);
String indent = makeSpace(indentSize + 1 - 7);
htmltree.addContent(DocletConstants.NL);
htmltree.addContent(indent);
htmltree.addContent("throws ");
indent += " ";
indent = makeSpace(indentSize + 1);
Content link = writer.getLink(new LinkInfoImpl(configuration,
LinkInfoImpl.Kind.MEMBER, exceptions[0]));
htmltree.addContent(link);
@ -269,24 +266,6 @@ public abstract class AbstractExecutableMemberWriter extends AbstractMemberWrite
}
}
protected int getReturnTypeLength(ExecutableMemberDoc member) {
if (member instanceof MethodDoc) {
MethodDoc method = (MethodDoc)member;
Type rettype = method.returnType();
if (rettype.isPrimitive()) {
return rettype.typeName().length() +
rettype.dimension().length();
} else {
LinkInfoImpl linkInfo = new LinkInfoImpl(configuration,
LinkInfoImpl.Kind.MEMBER, rettype);
writer.getLink(linkInfo);
return linkInfo.displayLength;
}
} else { // it's a constructordoc
return -1;
}
}
protected ClassDoc implementsMethodInIntfac(MethodDoc method,
ClassDoc[] intfacs) {
for (int i = 0; i < intfacs.length; i++) {

View File

@ -193,14 +193,13 @@ public abstract class AbstractMemberWriter {
protected abstract void addNavDetailLink(boolean link, Content liNav);
/**
* Add the member name to the content tree and modifies the display length.
* Add the member name to the content tree.
*
* @param name the member name to be added to the content tree.
* @param htmltree the content tree to which the name will be added.
*/
protected void addName(String name, Content htmltree) {
htmltree.addContent(name);
writer.displayLength += name.length();
}
/**
@ -259,7 +258,7 @@ public abstract class AbstractMemberWriter {
return "";
}
StringBuilder sb = new StringBuilder(len);
for(int i = 0; i < len; i++) {
for (int i = 0; i < len; i++) {
sb.append(' ');
}
return sb.toString();
@ -286,11 +285,14 @@ public abstract class AbstractMemberWriter {
} else {
if (member instanceof ExecutableMemberDoc &&
((ExecutableMemberDoc) member).typeParameters().length > 0) {
Content typeParameters = ((AbstractExecutableMemberWriter) this).getTypeParameters(
(ExecutableMemberDoc) member);
code.addContent(typeParameters);
//Code to avoid ugly wrapping in member summary table.
int displayLength = ((AbstractExecutableMemberWriter) this).addTypeParameters(
(ExecutableMemberDoc) member, code);
if (displayLength > 10) {
if (typeParameters.charCount() > 10) {
code.addContent(new HtmlTree(HtmlTag.BR));
} else {
code.addContent(writer.getSpace());
}
code.addContent(
writer.getLink(new LinkInfoImpl(configuration,

View File

@ -126,7 +126,6 @@ public class ConstructorWriterImpl extends AbstractExecutableMemberWriter
* {@inheritDoc}
*/
public Content getSignature(ConstructorDoc constructor) {
writer.displayLength = 0;
Content pre = new HtmlTree(HtmlTag.PRE);
writer.addAnnotationInfo(constructor, pre);
addModifiers(constructor, pre);
@ -136,8 +135,9 @@ public class ConstructorWriterImpl extends AbstractExecutableMemberWriter
} else {
addName(constructor.name(), pre);
}
addParameters(constructor, pre);
addExceptions(constructor, pre);
int indent = pre.charCount();
addParameters(constructor, pre, indent);
addExceptions(constructor, pre, indent);
return pre;
}

View File

@ -74,11 +74,6 @@ public class HtmlDocletWriter extends HtmlDocWriter {
*/
public final DocPath filename;
/**
* The display length used for indentation while generating the class page.
*/
public int displayLength = 0;
/**
* The global configuration information for this run.
*/
@ -1121,9 +1116,7 @@ public class HtmlDocletWriter extends HtmlDocWriter {
*/
public Content getLink(LinkInfoImpl linkInfo) {
LinkFactoryImpl factory = new LinkFactoryImpl(this);
Content link = factory.getLink(linkInfo);
displayLength += linkInfo.displayLength;
return link;
return factory.getLink(linkInfo);
}
/**

View File

@ -77,7 +77,6 @@ public class LinkFactoryImpl extends LinkFactory {
!classDoc.qualifiedTypeName().equals(classLinkInfo.type.qualifiedTypeName())) :
"";
Content label = classLinkInfo.getClassLinkLabel(m_writer.configuration);
classLinkInfo.displayLength += label.charCount();
Configuration configuration = m_writer.configuration;
Content link = new ContentBuilder();
if (classDoc.isIncluded()) {
@ -128,9 +127,7 @@ public class LinkFactoryImpl extends LinkFactory {
typeLinkInfo.excludeTypeParameterLinks = linkInfo.excludeTypeParameterLinks;
typeLinkInfo.linkToSelf = linkInfo.linkToSelf;
typeLinkInfo.isJava5DeclarationLocation = false;
Content output = getLink(typeLinkInfo);
((LinkInfoImpl) linkInfo).displayLength += typeLinkInfo.displayLength;
return output;
return getLink(typeLinkInfo);
}
protected Content getTypeAnnotationLink(LinkInfo linkInfo,
@ -157,14 +154,12 @@ public class LinkFactoryImpl extends LinkFactory {
boolean isFirst = true;
for (String anno : annos) {
if (!isFirst) {
linkInfo.displayLength += 1;
links.addContent(" ");
}
links.addContent(new RawHtml(anno));
isFirst = false;
}
if (!annos.isEmpty()) {
linkInfo.displayLength += 1;
links.addContent(" ");
}

View File

@ -117,7 +117,6 @@ public class MethodWriterImpl extends AbstractExecutableMemberWriter
* @return a content object for the signature
*/
public Content getSignature(MethodDoc method) {
writer.displayLength = 0;
Content pre = new HtmlTree(HtmlTag.PRE);
writer.addAnnotationInfo(method, pre);
addModifiers(method, pre);
@ -129,8 +128,9 @@ public class MethodWriterImpl extends AbstractExecutableMemberWriter
} else {
addName(method.name(), pre);
}
addParameters(method, pre);
addExceptions(method, pre);
int indent = pre.charCount();
addParameters(method, pre, indent);
addExceptions(method, pre, indent);
return pre;
}

View File

@ -99,10 +99,14 @@ public class RawHtml extends Content {
@Override
public int charCount() {
return charCount(rawHtmlContent);
}
static int charCount(String htmlText) {
State state = State.TEXT;
int count = 0;
for (int i = 0; i < rawHtmlContent.length(); i++) {
char c = rawHtmlContent.charAt(i);
for (int i = 0; i < htmlText.length(); i++) {
char c = htmlText.charAt(i);
switch (state) {
case TEXT:
switch (c) {

View File

@ -41,7 +41,7 @@ import com.sun.tools.doclets.internal.toolkit.util.*;
*
* @author Bhavesh Patel
*/
public class StringContent extends Content{
public class StringContent extends Content {
private StringBuilder stringContent;
@ -92,7 +92,7 @@ public class StringContent extends Content{
}
public int charCount() {
return stringContent.length();
return RawHtml.charCount(stringContent.toString());
}
/**

View File

@ -96,8 +96,13 @@ public abstract class Content {
return !isEmpty();
}
/**
* Return the number of characters of plain text content in this object
* (optional operation.)
* @return the number of characters of plain text content in this
*/
public int charCount() {
throw new UnsupportedOperationException();
return 0;
}
/**

View File

@ -60,7 +60,6 @@ public abstract class LinkFactory {
Content link = newContent();
if (type.isPrimitive()) {
//Just a primitive.
linkInfo.displayLength += type.typeName().length();
link.addContent(type.typeName());
} else if (type.asAnnotatedType() != null && type.dimension().length() == 0) {
link.addContent(getTypeAnnotationLinks(linkInfo));
@ -70,19 +69,16 @@ public abstract class LinkFactory {
} else if (type.asWildcardType() != null) {
//Wildcard type.
linkInfo.isTypeBound = true;
linkInfo.displayLength += 1;
link.addContent("?");
WildcardType wildcardType = type.asWildcardType();
Type[] extendsBounds = wildcardType.extendsBounds();
for (int i = 0; i < extendsBounds.length; i++) {
linkInfo.displayLength += i > 0 ? 2 : 9;
link.addContent(i > 0 ? ", " : " extends ");
setBoundsLinkInfo(linkInfo, extendsBounds[i]);
link.addContent(getLink(linkInfo));
}
Type[] superBounds = wildcardType.superBounds();
for (int i = 0; i < superBounds.length; i++) {
linkInfo.displayLength += i > 0 ? 2 : 7;
link.addContent(i > 0 ? ", " : " super ");
setBoundsLinkInfo(linkInfo, superBounds[i]);
link.addContent(getLink(linkInfo));
@ -101,7 +97,6 @@ public abstract class LinkFactory {
link.addContent(getClassLink(linkInfo));
} else {
//No need to link method type parameters.
linkInfo.displayLength += type.typeName().length();
link.addContent(type.typeName());
}
@ -109,7 +104,6 @@ public abstract class LinkFactory {
if (! linkInfo.excludeTypeBounds) {
linkInfo.excludeTypeBounds = true;
for (int i = 0; i < bounds.length; i++) {
linkInfo.displayLength += i > 0 ? 2 : 9;
link.addContent(i > 0 ? " & " : " extends ");
setBoundsLinkInfo(linkInfo, bounds[i]);
link.addContent(getLink(linkInfo));
@ -121,7 +115,6 @@ public abstract class LinkFactory {
linkInfo.excludeTypeBoundsLinks) {
//Since we are excluding type parameter links, we should not
//be linking to the type bound.
linkInfo.displayLength += type.typeName().length();
link.addContent(type.typeName());
link.addContent(getTypeParameterLinks(linkInfo));
return link;
@ -139,14 +132,11 @@ public abstract class LinkFactory {
if (type.dimension().length() > 2) {
//Javadoc returns var args as array.
//Strip out the first [] from the var arg.
linkInfo.displayLength += type.dimension().length()-2;
link.addContent(type.dimension().substring(2));
}
linkInfo.displayLength += 3;
link.addContent("...");
} else {
while (type != null && type.dimension().length() > 0) {
linkInfo.displayLength += type.dimension().length();
if (type.asAnnotatedType() != null) {
linkInfo.type = type;
link.addContent(" ");
@ -241,16 +231,13 @@ public abstract class LinkFactory {
(linkInfo.includeTypeAsSepLink && ! isClassLabel)
)
&& vars.length > 0) {
linkInfo.displayLength += 1;
links.addContent("<");
for (int i = 0; i < vars.length; i++) {
if (i > 0) {
linkInfo.displayLength += 1;
links.addContent(",");
}
links.addContent(getTypeParameterLink(linkInfo, vars[i]));
}
linkInfo.displayLength += 1;
links.addContent(">");
}
return links;
@ -263,13 +250,11 @@ public abstract class LinkFactory {
AnnotationDesc[] annotations = linkInfo.type.asAnnotatedType().annotations();
for (int i = 0; i < annotations.length; i++) {
if (i > 0) {
linkInfo.displayLength += 1;
links.addContent(" ");
}
links.addContent(getTypeAnnotationLink(linkInfo, annotations[i]));
}
linkInfo.displayLength += 1;
links.addContent(" ");
return links;
}

View File

@ -91,7 +91,7 @@ public abstract class LinkInfo {
public boolean includeTypeInClassLinkLabel = true;
/**
* True if we should include the type as seperate link. False otherwise.
* True if we should include the type as separate link. False otherwise.
*/
public boolean includeTypeAsSepLink = false;
@ -116,11 +116,6 @@ public abstract class LinkInfo {
*/
public boolean linkToSelf = true;
/**
* The display length for the link.
*/
public int displayLength = 0;
/**
* Return an empty instance of a content object.
*

View File

@ -0,0 +1,77 @@
/*
* Copyright (c) 2013, 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
* under the terms of the GNU General Public License version 2 only, as
* published by the Free Software Foundation.
*
* This code is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
* version 2 for more details (a copy is included in the LICENSE file that
* accompanied this code).
*
* You should have received a copy of the GNU General Public License version
* 2 along with this work; if not, write to the Free Software Foundation,
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
*
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
* or visit www.oracle.com if you need additional information or have any
* questions.
*/
/*
* @test
* @bug 8011288
* @summary Erratic/inconsistent indentation of signatures
* @library ../lib/
* @build JavadocTester
* @run main TestIndentation
*/
public class TestIndentation extends JavadocTester {
//Test information.
private static final String BUG_ID = "8011288";
//Javadoc arguments.
private static final String[] ARGS = new String[] {
"-d", BUG_ID, "-sourcepath", SRC_DIR, "p"
};
//Input for string search tests.
private static final String[][] TEST = {
{ BUG_ID + FS + "p" + FS + "Indent.html",
"<pre>public&nbsp;&lt;T&gt;&nbsp;void&nbsp;m(T&nbsp;t1," },
{ BUG_ID + FS + "p" + FS + "Indent.html",
NL + " T&nbsp;t2)" },
{ BUG_ID + FS + "p" + FS + "Indent.html",
NL + " throws java.lang.Exception" }
};
private static final String[][] NEGATED_TEST = NO_TEST;
/**
* The entry point of the test.
* @param args the array of command line arguments.
*/
public static void main(String[] args) {
TestIndentation tester = new TestIndentation();
run(tester, ARGS, TEST, NEGATED_TEST);
tester.printSummary();
}
/**
* {@inheritDoc}
*/
public String getBugId() {
return BUG_ID;
}
/**
* {@inheritDoc}
*/
public String getBugName() {
return getClass().getName();
}
}

View File

@ -0,0 +1,28 @@
/*
* Copyright (c) 2013, 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
* under the terms of the GNU General Public License version 2 only, as
* published by the Free Software Foundation.
*
* This code is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
* version 2 for more details (a copy is included in the LICENSE file that
* accompanied this code).
*
* You should have received a copy of the GNU General Public License version
* 2 along with this work; if not, write to the Free Software Foundation,
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
*
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
* or visit www.oracle.com if you need additional information or have any
* questions.
*/
package p;
public class Indent {
public <T> void m(T t1, T t2) throws Exception { }
}

View File

@ -235,8 +235,8 @@ public class TestNewLanguageFeatures extends JavadocTester {
"@AnnotationType</a>(<a href=\"../pkg/AnnotationType.html#optional()\">" +
"optional</a>=\"Parameter Annotation\",<a " +
"href=\"../pkg/AnnotationType.html#required()\">required</a>=1994)" + NL +
" int&nbsp;documented," + NL +
" int&nbsp;undocmented)</pre>"},
" int&nbsp;documented," + NL +
" int&nbsp;undocmented)</pre>"},
//CONSTRUCTOR PARAMS
{BUG_ID + FS + "pkg" + FS + "AnnotationTypeUsage.html",
@ -245,8 +245,8 @@ public class TestNewLanguageFeatures extends JavadocTester {
"@AnnotationType</a>(<a href=\"../pkg/AnnotationType.html#optional()\">" +
"optional</a>=\"Constructor Param Annotation\",<a " +
"href=\"../pkg/AnnotationType.html#required()\">required</a>=1994)" + NL +
" int&nbsp;documented," + NL +
" int&nbsp;undocmented)</pre>"},
" int&nbsp;documented," + NL +
" int&nbsp;undocmented)</pre>"},
//=================================
// ANNOTATION TYPE USAGE TESTING (All Different Types).
@ -443,7 +443,7 @@ public class TestNewLanguageFeatures extends JavadocTester {
"<td class=\"colFirst\"><code>&lt;T extends <a href=\"../" +
"../pkg2/ParamTest.html\" title=\"class in pkg2\">ParamTest" +
"</a>&lt;<a href=\"../../pkg2/Foo3.html\" title=\"class in " +
"pkg2\">Foo3</a>&gt;&gt;&nbsp;<br><a href=\"../../pkg2/" +
"pkg2\">Foo3</a>&gt;&gt;<br><a href=\"../../pkg2/" +
"ParamTest.html\" title=\"class in pkg2\">ParamTest</a>" +
"&lt;<a href=\"../../pkg2/Foo3.html\" title=\"class in " +
"pkg2\">Foo3</a>&gt;</code></td>"
@ -486,7 +486,7 @@ public class TestNewLanguageFeatures extends JavadocTester {
"<td class=\"colFirst\"><code>&lt;T extends <a href=\"../../" +
"pkg2/ParamTest.html\" title=\"class in pkg2\">ParamTest</a>&lt;" +
"<a href=\"../../pkg2/Foo3.html\" title=\"class in pkg2\">Foo3" +
"</a>&gt;&gt;&nbsp;<br><a href=\"../../pkg2/ParamTest.html\" " +
"</a>&gt;&gt;<br><a href=\"../../pkg2/ParamTest.html\" " +
"title=\"class in pkg2\">ParamTest</a>&lt;<a href=\"../../pkg2/" +
"Foo3.html\" title=\"class in pkg2\">Foo3</a>&gt;</code></td>"
},
@ -524,7 +524,7 @@ public class TestNewLanguageFeatures extends JavadocTester {
"../pkg2/ParamTest2.html\" title=\"class in pkg2\">" +
"ParamTest2</a>&lt;java.util.List&lt;? extends <a href=\".." +
"/../pkg2/Foo4.html\" title=\"class in pkg2\">Foo4</a>&gt;" +
"&gt;&gt;&nbsp;<br><a href=\"../../pkg2/ParamTest2.html\" " +
"&gt;&gt;<br><a href=\"../../pkg2/ParamTest2.html\" " +
"title=\"class in pkg2\">ParamTest2</a>&lt;java.util.List" +
"&lt;? extends <a href=\"../../pkg2/Foo4.html\" title=\"" +
"class in pkg2\">Foo4</a>&gt;&gt;</code></td>"
@ -569,7 +569,7 @@ public class TestNewLanguageFeatures extends JavadocTester {
"../pkg2/ParamTest2.html\" title=\"class in pkg2\">" +
"ParamTest2</a>&lt;java.util.List&lt;? extends <a href=\".." +
"/../pkg2/Foo4.html\" title=\"class in pkg2\">Foo4</a>&gt;" +
"&gt;&gt;&nbsp;<br><a href=\"../../pkg2/ParamTest2.html\" " +
"&gt;&gt;<br><a href=\"../../pkg2/ParamTest2.html\" " +
"title=\"class in pkg2\">ParamTest2</a>&lt;java.util.List" +
"&lt;? extends <a href=\"../../pkg2/Foo4.html\" title=\"" +
"class in pkg2\">Foo4</a>&gt;&gt;</code></td>"

View File

@ -266,14 +266,14 @@ public class TestTypeAnnotations extends JavadocTester {
// Test for type annotations on throws (Throws.java).
{BUG_ID + FS + "typeannos" + FS + "ThrDefaultUnmodified.html",
"<pre>void&nbsp;oneException()" + NL +
" throws <a href=\"../typeannos/ThrA.html\" title=\"" +
" throws <a href=\"../typeannos/ThrA.html\" title=\"" +
"annotation in typeannos\">@ThrA</a> java.lang.Exception</pre>"
},
{BUG_ID + FS + "typeannos" + FS + "ThrDefaultUnmodified.html",
"<pre>void&nbsp;twoExceptions()" + NL +
" throws <a href=\"../typeannos/ThrA.html\" title=\"" +
" throws <a href=\"../typeannos/ThrA.html\" title=\"" +
"annotation in typeannos\">@ThrA</a> java.lang.RuntimeException," + NL +
" <a href=\"../typeannos/ThrA.html\" title=\"" +
" <a href=\"../typeannos/ThrA.html\" title=\"" +
"annotation in typeannos\">@ThrA</a> java.lang.Exception</pre>"
},
{BUG_ID + FS + "typeannos" + FS + "ThrPublicModified.html",
@ -290,16 +290,16 @@ public class TestTypeAnnotations extends JavadocTester {
},
{BUG_ID + FS + "typeannos" + FS + "ThrWithValue.html",
"<pre>void&nbsp;oneException()" + NL +
" throws <a href=\"../typeannos/ThrB.html\" title=\"" +
" throws <a href=\"../typeannos/ThrB.html\" title=\"" +
"annotation in typeannos\">@ThrB</a>(<a href=\"../typeannos/" +
"ThrB.html#value()\">value</a>=\"m\") java.lang.Exception</pre>"
},
{BUG_ID + FS + "typeannos" + FS + "ThrWithValue.html",
"<pre>void&nbsp;twoExceptions()" + NL +
" throws <a href=\"../typeannos/ThrB.html\" title=\"" +
" throws <a href=\"../typeannos/ThrB.html\" title=\"" +
"annotation in typeannos\">@ThrB</a>(<a href=\"../typeannos/" +
"ThrB.html#value()\">value</a>=\"m\") java.lang.RuntimeException," + NL +
" <a href=\"../typeannos/ThrA.html\" title=\"" +
" <a href=\"../typeannos/ThrA.html\" title=\"" +
"annotation in typeannos\">@ThrA</a> java.lang.Exception</pre>"
},
@ -342,7 +342,7 @@ public class TestTypeAnnotations extends JavadocTester {
{BUG_ID + FS + "typeannos" + FS + "DefaultUnmodified.html",
"<pre>void&nbsp;withException(<a href=\"../typeannos/RcvrA.html\" " +
"title=\"annotation in typeannos\">@RcvrA</a>&nbsp;" +
"DefaultUnmodified&nbsp;this)" + NL + " throws java." +
"DefaultUnmodified&nbsp;this)" + NL + " throws java." +
"lang.Exception</pre>"
},
{BUG_ID + FS + "typeannos" + FS + "DefaultUnmodified.html",
@ -356,8 +356,8 @@ public class TestTypeAnnotations extends JavadocTester {
"<pre>&lt;T extends java.lang.Runnable&gt;&nbsp;void&nbsp;accept(" +
"<a href=\"../typeannos/RcvrA.html\" title=\"annotation in " +
"typeannos\">@RcvrA</a>&nbsp;DefaultUnmodified&nbsp;this," + NL +
" T&nbsp;r)" + NL +
" throws java.lang.Exception</pre>"
" T&nbsp;r)" + NL +
" throws java.lang.Exception</pre>"
},
{BUG_ID + FS + "typeannos" + FS + "PublicModified.html",
"<pre>public final&nbsp;java.lang.String&nbsp;nonVoid(<a href=\"" +
@ -368,16 +368,16 @@ public class TestTypeAnnotations extends JavadocTester {
"<pre>public final&nbsp;&lt;T extends java.lang.Runnable&gt;&nbsp;" +
"void&nbsp;accept(<a href=\"../typeannos/RcvrA.html\" title=\"" +
"annotation in typeannos\">@RcvrA</a>&nbsp;PublicModified&nbsp;this," + NL +
" T&nbsp;r)" + NL +
" throws java.lang.Exception</pre>"
" T&nbsp;r)" + NL +
" throws java.lang.Exception</pre>"
},
{BUG_ID + FS + "typeannos" + FS + "WithValue.html",
"<pre>&lt;T extends java.lang.Runnable&gt;&nbsp;void&nbsp;accept(" +
"<a href=\"../typeannos/RcvrB.html\" title=\"annotation in " +
"typeannos\">@RcvrB</a>(<a href=\"../typeannos/RcvrB.html#value()\">" +
"value</a>=\"m\")&nbsp;WithValue&nbsp;this," + NL +
" T&nbsp;r)" + NL +
" throws java.lang.Exception</pre>"
" T&nbsp;r)" + NL +
" throws java.lang.Exception</pre>"
},
{BUG_ID + FS + "typeannos" + FS + "WithFinal.html",
"<pre>java.lang.String&nbsp;nonVoid(<a href=\"../typeannos/RcvrB." +

View File

@ -1,5 +1,5 @@
/*
* Copyright (c) 2003, 2011, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2003, 2013, 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
@ -54,7 +54,7 @@ public class TestTypeParameters extends JavadocTester {
private static final String[][] TEST1 = {
{BUG_ID + FS + "pkg" + FS + "C.html",
"<td class=\"colFirst\"><code>&lt;W extends java.lang.String,V extends " +
"java.util.List&gt;&nbsp;<br>java.lang.Object</code></td>"
"java.util.List&gt;<br>java.lang.Object</code></td>"
},
{BUG_ID + FS + "pkg" + FS + "C.html",
"<code>&lt;T&gt;&nbsp;java.lang.Object</code>"