### Eclipse Workspace Patch 1.0 #P org.eclipse.jdt.core.tests.compiler Index: src/org/eclipse/jdt/core/tests/compiler/regression/JavadocBugsTest.java =================================================================== RCS file: /cvsroot/eclipse/org.eclipse.jdt.core.tests.compiler/src/org/eclipse/jdt/core/tests/compiler/regression/JavadocBugsTest.java,v retrieving revision 1.40 diff -u -r1.40 JavadocBugsTest.java --- src/org/eclipse/jdt/core/tests/compiler/regression/JavadocBugsTest.java 28 Apr 2008 21:17:32 -0000 1.40 +++ src/org/eclipse/jdt/core/tests/compiler/regression/JavadocBugsTest.java 29 Apr 2008 09:30:53 -0000 @@ -7047,7 +7047,7 @@ * @bug 227730: [Javadoc] Missing description should not be warned for @inheritDoc * @see "https://bugs.eclipse.org/bugs/show_bug.cgi?id=227730" */ - public void testBug227730() { + public void testBug227730a() { String[] units = new String[] { "pkg/X.java", "package pkg;\n" + @@ -7065,4 +7065,23 @@ reportMissingJavadocDescription = CompilerOptions.ALL_STANDARD_TAGS; runConformTest(units); } + + public void testBug227730b() { + String[] units = new String[] { + "pkg/X.java", + "package pkg;\n" + + "\n" + + "public class X extends Object {\n" + + " /**\n" + + " * {@docRoot}\n" + + " */\n" + + " public String toString() { \n" + + " return \"foo\";\n" + + " }\n" + + "}\n" + }; + reportInvalidJavadoc = CompilerOptions.ERROR; + reportMissingJavadocDescription = CompilerOptions.ALL_STANDARD_TAGS; + runConformTest(units); + } } \ No newline at end of file #P org.eclipse.jdt.core Index: compiler/org/eclipse/jdt/internal/compiler/parser/JavadocParser.java =================================================================== RCS file: /cvsroot/eclipse/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/parser/JavadocParser.java,v retrieving revision 1.68 diff -u -r1.68 JavadocParser.java --- compiler/org/eclipse/jdt/internal/compiler/parser/JavadocParser.java 28 Apr 2008 21:17:37 -0000 1.68 +++ compiler/org/eclipse/jdt/internal/compiler/parser/JavadocParser.java 29 Apr 2008 09:30:54 -0000 @@ -515,6 +515,12 @@ this.deprecated = true; valid = true; this.tagValue = TAG_DEPRECATED_VALUE; + } else if (length == TAG_DOC_ROOT_LENGTH && CharOperation.equals(TAG_DOC_ROOT, tagName)) { + // https://bugs.eclipse.org/bugs/show_bug.cgi?id=227730 + // identify @docRoot tag as a base tag that does not expect any argument + valid = true; + this.tagValue = TAG_DOC_ROOT_VALUE; + alreadyParsedTag = true; } break; case 'e': @@ -534,10 +540,11 @@ if (this.astPtr==-1) { this.inheritedPositions = (((long) this.tagSourceStart) << 32) + this.tagSourceEnd; } - // https://bugs.eclipse.org/bugs/show_bug.cgi?id=227730 - // no argument expected for @inheritedDoc + valid = true; this.tagValue = TAG_INHERITDOC_VALUE; - return true; + // https://bugs.eclipse.org/bugs/show_bug.cgi?id=227730 + // no argument expected for @inheritedDoc tag + alreadyParsedTag = true; } break; case 'l': Index: compiler/org/eclipse/jdt/internal/compiler/parser/JavadocTagConstants.java =================================================================== RCS file: /cvsroot/eclipse/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/parser/JavadocTagConstants.java,v retrieving revision 1.14 diff -u -r1.14 JavadocTagConstants.java --- compiler/org/eclipse/jdt/internal/compiler/parser/JavadocTagConstants.java 22 Mar 2008 11:34:37 -0000 1.14 +++ compiler/org/eclipse/jdt/internal/compiler/parser/JavadocTagConstants.java 29 Apr 2008 09:30:54 -0000 @@ -60,6 +60,7 @@ public static final int TAG_VERSION_LENGTH = TAG_VERSION.length; public static final int TAG_CODE_LENGTH = TAG_CODE.length; public static final int TAG_LITERAL_LENGTH = TAG_LITERAL.length; + public static final int TAG_DOC_ROOT_LENGTH = TAG_DOC_ROOT.length; // tags value @@ -83,6 +84,7 @@ public static final int TAG_VERSION_VALUE = 17; public static final int TAG_CODE_VALUE = 18; public static final int TAG_LITERAL_VALUE = 19; + public static final int TAG_DOC_ROOT_VALUE = 20; public static final int TAG_OTHERS_VALUE = 100; // tags expected positions