### Eclipse Workspace Patch 1.0 #P org.eclipse.jdt.core Index: compiler/org/eclipse/jdt/internal/compiler/parser/AbstractCommentParser.java =================================================================== RCS file: /cvsroot/eclipse/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/parser/AbstractCommentParser.java,v retrieving revision 1.75 diff -u -r1.75 AbstractCommentParser.java --- compiler/org/eclipse/jdt/internal/compiler/parser/AbstractCommentParser.java 15 May 2008 17:45:49 -0000 1.75 +++ compiler/org/eclipse/jdt/internal/compiler/parser/AbstractCommentParser.java 21 May 2008 07:24:14 -0000 @@ -1327,7 +1327,16 @@ protected void pushOnAstStack(Object node, boolean newLength) { if (node == null) { - this.astLengthStack[++this.astLengthPtr] = 0; + // https://bugs.eclipse.org/bugs/show_bug.cgi?id=170637 + int astLengthStackLength = this.astLengthStack.length; + if (++this.astLengthPtr >= astLengthStackLength) { // resize when needed + System.arraycopy( + this.astLengthStack, 0, + this.astLengthStack = new int[astLengthStackLength + AST_STACK_INCREMENT], 0, + astLengthStackLength); + this.astLengthPtr = astLengthStackLength; + } + this.astLengthStack[this.astLengthPtr] = 0; return; } #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.42 diff -u -r1.42 JavadocBugsTest.java --- src/org/eclipse/jdt/core/tests/compiler/regression/JavadocBugsTest.java 7 May 2008 17:55:04 -0000 1.42 +++ src/org/eclipse/jdt/core/tests/compiler/regression/JavadocBugsTest.java 21 May 2008 07:24:16 -0000 @@ -7247,4 +7247,180 @@ reportMissingJavadocDescription = CompilerOptions.ALL_STANDARD_TAGS; runConformTest(units); } + + /** + * @bug 170637: [javadoc] incorrect warning about missing parameter javadoc when using many links + * @see "https://bugs.eclipse.org/bugs/show_bug.cgi?id=170637" + */ + public void testBug170637a() { + // conform test: verify we can handle a large number of tags + String[] units = new String[] { + "pkg/X.java", + "package pkg;\n" + + "public interface X\n" + + "{\n" + + " /**\n" + + " * Test for bug {@link \"https://bugs.eclipse.org/bugs/show_bug.cgi?id=170637\"}\n" + + " * \n" + + " * \n" + + " * @param bar1 {@link X}\n" + + " * @param bar2 {@link X}\n" + + " * @param bar3 {@link X}\n" + + " * @param bar4 {@link X}\n" + + " * @param bar5 {@link X}\n" + + " * @param bar6 {@link X}\n" + + " * @param bar7 {@link X}\n" + + " * @param bar8 {@link X}\n" + + " * @param bar9 {@link X}\n" + + " * @param bar10 {@link X}\n" + + " * @param bar11 {@link X}\n" + + " * @param bar12 {@link X}\n" + + " * @param bar13 {@link X}\n" + + " * @param bar14 {@link X}\n" + + " * @param bar15 {@link X}\n" + + " * @param bar16 {@link X}\n" + + " * @param bar17 {@link X}\n" + + " * @param bar18 {@link X}\n" + + " * @param bar19 {@link X}\n" + + " * @param bar20 {@link X}\n" + + " * @param bar21 {@link X}\n" + + " * @param bar22 {@link X}\n" + + " * @param bar23 {@link X}\n" + + " * @param bar24 {@link X}\n" + + " * @param bar25 {@link X}\n" + + " * @param bar26 {@link X}\n" + + " * @param bar27 {@link X}\n" + + " * @param bar28 {@link X}\n" + + " * @param bar29 {@link X}\n" + + " * @param bar30 {@link X}\n" + + " * \n" + + " * @return A string\n" + + " */\n" + + " public String foo(String bar1,\n" + + " String bar2,\n" + + " String bar3,\n" + + " String bar4,\n" + + " String bar5,\n" + + " String bar6,\n" + + " String bar7,\n" + + " String bar8,\n" + + " String bar9,\n" + + " String bar10,\n" + + " String bar11,\n" + + " String bar12,\n" + + " String bar13,\n" + + " String bar14,\n" + + " String bar15,\n" + + " String bar16,\n" + + " String bar17,\n" + + " String bar18,\n" + + " String bar19,\n" + + " String bar20,\n" + + " String bar21,\n" + + " String bar22,\n" + + " String bar23,\n" + + " String bar24,\n" + + " String bar25,\n" + + " String bar26,\n" + + " String bar27,\n" + + " String bar28,\n" + + " String bar29,\n" + + " String bar30\n" + + " );\n" + + "}\n" + }; + reportInvalidJavadoc = CompilerOptions.WARNING; + reportMissingJavadocTags = CompilerOptions.WARNING; + reportMissingJavadocCommentsVisibility = CompilerOptions.PUBLIC; + runConformTest(units); + } + public void testBug170637b() { + // conform test: verify we are able to raise warnings when dealing with a large number of tags + String[] units = new String[] { + "pkg/X.java", + "package pkg;\n" + + "public interface X\n" + + "{\n" + + " /**\n" + + " * Test for bug {@link \"https://bugs.eclipse.org/bugs/show_bug.cgi?id=170637\"}\n" + + " * \n" + + " * \n" + + " * @param bar1 {@link X}\n" + + " * @param bar2 {@link X}\n" + + " * @param bar3 {@link X}\n" + + " * @param bar4 {@link X}\n" + + " * @param bar5 {@link X}\n" + + " * @param bar6 {@link X}\n" + + " * @param bar7 {@link X}\n" + + " * @param bar8 {@link X}\n" + + " * @param bar9 {@link X}\n" + + " * @param bar10 {@link X}\n" + + " * @param bar11 {@link X}\n" + + " * @param bar12 {@link X}\n" + + " * @param bar13 {@link X}\n" + + " * @param bar14 {@link X}\n" + + " * @param bar15 {@link X}\n" + + " * @param bar16 {@link X}\n" + + " * @param bar17 {@link X}\n" + + " * @param bar18 {@link X}\n" + + " * @param bar19 {@link X}\n" + + " * @param bar20 {@link X}\n" + + " * @param bar21 {@link X}\n" + + " * @param bar22 {@link X}\n" + + " * @param bar23 {@link X}\n" + + " * @param bar24 {@link X}\n" + + " * @param bar25 {@link X}\n" + + " * @param bar26 {@link X}\n" + + " * @param bar27 {@link X}\n" + + " * @param bar28 {@link X}\n" + + " * @param bar29 {@link X}\n" + + " * @param bar30 {@link X}\n" + + " * \n" + + " * @return A string\n" + + " */\n" + + " public String foo(String bar1,\n" + + " String bar2,\n" + + " String bar3,\n" + + " String bar4,\n" + + " String bar5,\n" + + " String bar6,\n" + + " String bar7,\n" + + " String bar8,\n" + + " String bar9,\n" + + " String bar10,\n" + + " String bar11,\n" + + " String bar12,\n" + + " String bar13,\n" + + " String bar14,\n" + + " String bar15,\n" + + " String bar16,\n" + + " String bar17,\n" + + " String bar18,\n" + + " String bar19,\n" + + " String bar20,\n" + + " String bar21,\n" + + " String bar22,\n" + + " String bar23,\n" + + " String bar24,\n" + + " String bar25,\n" + + " String bar26,\n" + + " String bar27,\n" + + " String bar28,\n" + + " String bar29,\n" + + " String bar30,\n" + + " String bar31\n" + + " );\n" + + "}\n" + }; + reportInvalidJavadoc = CompilerOptions.WARNING; + reportMissingJavadocTags = CompilerOptions.WARNING; + reportMissingJavadocCommentsVisibility = CompilerOptions.PUBLIC; + runNegativeTest(units, + "----------\n" + + "1. WARNING in pkg\\X.java (at line 71)\n" + + " String bar31\n" + + " ^^^^^\n" + + "Javadoc: Missing tag for parameter bar31\n" + + "----------\n"); + } } \ No newline at end of file