View | Details | Raw Unified | Return to bug 170637 | Differences between
and this patch

Collapse All | Expand All

(-)compiler/org/eclipse/jdt/internal/compiler/parser/AbstractCommentParser.java (-1 / +10 lines)
Lines 1327-1333 Link Here
1327
	protected void pushOnAstStack(Object node, boolean newLength) {
1327
	protected void pushOnAstStack(Object node, boolean newLength) {
1328
1328
1329
		if (node == null) {
1329
		if (node == null) {
1330
			this.astLengthStack[++this.astLengthPtr] = 0;
1330
			// https://bugs.eclipse.org/bugs/show_bug.cgi?id=170637
1331
			int astLengthStackLength = this.astLengthStack.length;
1332
			if (++this.astLengthPtr >= astLengthStackLength) { // resize when needed
1333
				System.arraycopy(
1334
						this.astLengthStack, 0,
1335
						this.astLengthStack = new int[astLengthStackLength + AST_STACK_INCREMENT], 0,
1336
						astLengthStackLength);
1337
				this.astLengthPtr = astLengthStackLength;
1338
			}
1339
			this.astLengthStack[this.astLengthPtr] = 0;
1331
			return;
1340
			return;
1332
		}
1341
		}
1333
1342
(-)src/org/eclipse/jdt/core/tests/compiler/regression/JavadocBugsTest.java (+176 lines)
Lines 7247-7250 Link Here
7247
		reportMissingJavadocDescription = CompilerOptions.ALL_STANDARD_TAGS;
7247
		reportMissingJavadocDescription = CompilerOptions.ALL_STANDARD_TAGS;
7248
		runConformTest(units);
7248
		runConformTest(units);
7249
	}
7249
	}
7250
	
7251
	/**
7252
	 * @bug 170637: [javadoc] incorrect warning about missing parameter javadoc when using many links
7253
	 * @see "https://bugs.eclipse.org/bugs/show_bug.cgi?id=170637"
7254
	 */
7255
	public void testBug170637a() {
7256
		// conform test: verify we can handle a large number of tags
7257
		String[] units = new String[] {
7258
			"pkg/X.java",
7259
			"package pkg;\n" +
7260
			"public interface X\n" +
7261
			"{\n" +
7262
			"  /**\n" +
7263
			"   * Test for bug {@link \"https://bugs.eclipse.org/bugs/show_bug.cgi?id=170637\"}\n" +
7264
			"   * \n" +
7265
			"   * \n" +
7266
			"   * @param bar1 {@link X}\n" +
7267
			"   * @param bar2 {@link X}\n" +
7268
			"   * @param bar3 {@link X}\n" +
7269
			"   * @param bar4 {@link X}\n" +
7270
			"   * @param bar5 {@link X}\n" +
7271
			"   * @param bar6 {@link X}\n" +
7272
			"   * @param bar7 {@link X}\n" +
7273
			"   * @param bar8 {@link X}\n" +
7274
			"   * @param bar9 {@link X}\n" +
7275
			"   * @param bar10 {@link X}\n" +
7276
			"   * @param bar11 {@link X}\n" +
7277
			"   * @param bar12 {@link X}\n" +
7278
			"   * @param bar13 {@link X}\n" +
7279
			"   * @param bar14 {@link X}\n" +
7280
			"   * @param bar15 {@link X}\n" +
7281
			"   * @param bar16 {@link X}\n" +
7282
			"   * @param bar17 {@link X}\n" +
7283
			"   * @param bar18 {@link X}\n" +
7284
			"   * @param bar19 {@link X}\n" +
7285
			"   * @param bar20 {@link X}\n" +
7286
			"   * @param bar21 {@link X}\n" +
7287
			"   * @param bar22 {@link X}\n" +
7288
			"   * @param bar23 {@link X}\n" +
7289
			"   * @param bar24 {@link X}\n" +
7290
			"   * @param bar25 {@link X}\n" +
7291
			"   * @param bar26 {@link X}\n" +
7292
			"   * @param bar27 {@link X}\n" +
7293
			"   * @param bar28 {@link X}\n" +
7294
			"   * @param bar29 {@link X}\n" +
7295
			"   * @param bar30 {@link X}\n" +
7296
			"   * \n" +
7297
			"   * @return A string\n" +
7298
			"   */\n" +
7299
			"  public String foo(String bar1,\n" +
7300
			"      String bar2,\n" +
7301
			"      String bar3,\n" +
7302
			"      String bar4,\n" +
7303
			"      String bar5,\n" +
7304
			"      String bar6,\n" +
7305
			"      String bar7,\n" +
7306
			"      String bar8,\n" +
7307
			"      String bar9,\n" +
7308
			"      String bar10,\n" +
7309
			"      String bar11,\n" +
7310
			"      String bar12,\n" +
7311
			"      String bar13,\n" +
7312
			"      String bar14,\n" +
7313
			"      String bar15,\n" +
7314
			"      String bar16,\n" +
7315
			"      String bar17,\n" +
7316
			"      String bar18,\n" +
7317
			"      String bar19,\n" +
7318
			"      String bar20,\n" +
7319
			"      String bar21,\n" +
7320
			"      String bar22,\n" +
7321
			"      String bar23,\n" +
7322
			"      String bar24,\n" +
7323
			"      String bar25,\n" +
7324
			"      String bar26,\n" +
7325
			"      String bar27,\n" +
7326
			"      String bar28,\n" +
7327
			"      String bar29,\n" +
7328
			"      String bar30\n" +
7329
			"      );\n" +
7330
			"}\n"
7331
		};
7332
		reportInvalidJavadoc = CompilerOptions.WARNING;
7333
		reportMissingJavadocTags = CompilerOptions.WARNING;
7334
		reportMissingJavadocCommentsVisibility = CompilerOptions.PUBLIC;
7335
		runConformTest(units);
7336
	}
7337
	public void testBug170637b() {
7338
		// conform test: verify we are able to raise warnings when dealing with a large number of tags
7339
		String[] units = new String[] {
7340
			"pkg/X.java",
7341
			"package pkg;\n" +
7342
			"public interface X\n" +
7343
			"{\n" +
7344
			"  /**\n" +
7345
			"   * Test for bug {@link \"https://bugs.eclipse.org/bugs/show_bug.cgi?id=170637\"}\n" +
7346
			"   * \n" +
7347
			"   * \n" +
7348
			"   * @param bar1 {@link X}\n" +
7349
			"   * @param bar2 {@link X}\n" +
7350
			"   * @param bar3 {@link X}\n" +
7351
			"   * @param bar4 {@link X}\n" +
7352
			"   * @param bar5 {@link X}\n" +
7353
			"   * @param bar6 {@link X}\n" +
7354
			"   * @param bar7 {@link X}\n" +
7355
			"   * @param bar8 {@link X}\n" +
7356
			"   * @param bar9 {@link X}\n" +
7357
			"   * @param bar10 {@link X}\n" +
7358
			"   * @param bar11 {@link X}\n" +
7359
			"   * @param bar12 {@link X}\n" +
7360
			"   * @param bar13 {@link X}\n" +
7361
			"   * @param bar14 {@link X}\n" +
7362
			"   * @param bar15 {@link X}\n" +
7363
			"   * @param bar16 {@link X}\n" +
7364
			"   * @param bar17 {@link X}\n" +
7365
			"   * @param bar18 {@link X}\n" +
7366
			"   * @param bar19 {@link X}\n" +
7367
			"   * @param bar20 {@link X}\n" +
7368
			"   * @param bar21 {@link X}\n" +
7369
			"   * @param bar22 {@link X}\n" +
7370
			"   * @param bar23 {@link X}\n" +
7371
			"   * @param bar24 {@link X}\n" +
7372
			"   * @param bar25 {@link X}\n" +
7373
			"   * @param bar26 {@link X}\n" +
7374
			"   * @param bar27 {@link X}\n" +
7375
			"   * @param bar28 {@link X}\n" +
7376
			"   * @param bar29 {@link X}\n" +
7377
			"   * @param bar30 {@link X}\n" +
7378
			"   * \n" +
7379
			"   * @return A string\n" +
7380
			"   */\n" +
7381
			"  public String foo(String bar1,\n" +
7382
			"      String bar2,\n" +
7383
			"      String bar3,\n" +
7384
			"      String bar4,\n" +
7385
			"      String bar5,\n" +
7386
			"      String bar6,\n" +
7387
			"      String bar7,\n" +
7388
			"      String bar8,\n" +
7389
			"      String bar9,\n" +
7390
			"      String bar10,\n" +
7391
			"      String bar11,\n" +
7392
			"      String bar12,\n" +
7393
			"      String bar13,\n" +
7394
			"      String bar14,\n" +
7395
			"      String bar15,\n" +
7396
			"      String bar16,\n" +
7397
			"      String bar17,\n" +
7398
			"      String bar18,\n" +
7399
			"      String bar19,\n" +
7400
			"      String bar20,\n" +
7401
			"      String bar21,\n" +
7402
			"      String bar22,\n" +
7403
			"      String bar23,\n" +
7404
			"      String bar24,\n" +
7405
			"      String bar25,\n" +
7406
			"      String bar26,\n" +
7407
			"      String bar27,\n" +
7408
			"      String bar28,\n" +
7409
			"      String bar29,\n" +
7410
			"      String bar30,\n" +
7411
			"      String bar31\n" +
7412
			"      );\n" +
7413
			"}\n"
7414
		};
7415
		reportInvalidJavadoc = CompilerOptions.WARNING;
7416
		reportMissingJavadocTags = CompilerOptions.WARNING;
7417
		reportMissingJavadocCommentsVisibility = CompilerOptions.PUBLIC;
7418
		runNegativeTest(units,
7419
			"----------\n" + 
7420
			"1. WARNING in pkg\\X.java (at line 71)\n" + 
7421
			"	String bar31\n" + 
7422
			"	       ^^^^^\n" + 
7423
			"Javadoc: Missing tag for parameter bar31\n" + 
7424
			"----------\n");
7425
	}
7250
}
7426
}

Return to bug 170637