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

Collapse All | Expand All

(-)ui/org/eclipse/jdt/internal/ui/preferences/JavadocProblemsConfigurationBlock.java (-4 / +24 lines)
Lines 46-51 Link Here
46
	private static final Key PREF_PB_MISSING_JAVADOC_TAGS_OVERRIDING= getJDTCoreKey(JavaCore.COMPILER_PB_MISSING_JAVADOC_TAGS_OVERRIDING);
46
	private static final Key PREF_PB_MISSING_JAVADOC_TAGS_OVERRIDING= getJDTCoreKey(JavaCore.COMPILER_PB_MISSING_JAVADOC_TAGS_OVERRIDING);
47
47
48
	private static final Key PREF_PB_MISSING_JAVADOC_COMMENTS= getJDTCoreKey(JavaCore.COMPILER_PB_MISSING_JAVADOC_COMMENTS);
48
	private static final Key PREF_PB_MISSING_JAVADOC_COMMENTS= getJDTCoreKey(JavaCore.COMPILER_PB_MISSING_JAVADOC_COMMENTS);
49
	private static final Key PREF_PB_MISSING_JAVADOC_TAG_DESCRIPTION= getJDTCoreKey(JavaCore.COMPILER_PB_MISSING_JAVADOC_TAG_DESCRIPTION);
49
	private static final Key PREF_PB_MISSING_JAVADOC_COMMENTS_VISIBILITY= getJDTCoreKey(JavaCore.COMPILER_PB_MISSING_JAVADOC_COMMENTS_VISIBILITY);
50
	private static final Key PREF_PB_MISSING_JAVADOC_COMMENTS_VISIBILITY= getJDTCoreKey(JavaCore.COMPILER_PB_MISSING_JAVADOC_COMMENTS_VISIBILITY);
50
	private static final Key PREF_PB_MISSING_JAVADOC_COMMENTS_OVERRIDING= getJDTCoreKey(JavaCore.COMPILER_PB_MISSING_JAVADOC_COMMENTS_OVERRIDING);
51
	private static final Key PREF_PB_MISSING_JAVADOC_COMMENTS_OVERRIDING= getJDTCoreKey(JavaCore.COMPILER_PB_MISSING_JAVADOC_COMMENTS_OVERRIDING);
51
	
52
	
Lines 63-68 Link Here
63
	private static final String DEFAULT= JavaCore.DEFAULT;
64
	private static final String DEFAULT= JavaCore.DEFAULT;
64
	private static final String PRIVATE= JavaCore.PRIVATE;
65
	private static final String PRIVATE= JavaCore.PRIVATE;
65
	
66
	
67
	private static final String NO_TAG= JavaCore.COMPILER_PB_MISSING_JAVADOC_TAG_DESCRIPTION_NO_TAG;
68
	private static final String RETURN_TAG= JavaCore.COMPILER_PB_MISSING_JAVADOC_TAG_DESCRIPTION_RETURN_TAG;
69
	private static final String ALL_TAGS= JavaCore.COMPILER_PB_MISSING_JAVADOC_TAG_DESCRIPTION_ALL_TAGS;
70
	
66
	private PixelConverter fPixelConverter;
71
	private PixelConverter fPixelConverter;
67
	private Composite fJavadocComposite;
72
	private Composite fJavadocComposite;
68
73
Lines 81-87 Link Here
81
				PREF_PB_INVALID_JAVADOC_TAGS_VISIBILITY,
86
				PREF_PB_INVALID_JAVADOC_TAGS_VISIBILITY,
82
				PREF_PB_INVALID_JAVADOC_TAGS_NOT_VISIBLE_REF, PREF_PB_INVALID_JAVADOC_TAGS_DEPRECATED_REF,
87
				PREF_PB_INVALID_JAVADOC_TAGS_NOT_VISIBLE_REF, PREF_PB_INVALID_JAVADOC_TAGS_DEPRECATED_REF,
83
				PREF_PB_MISSING_JAVADOC_TAGS, PREF_PB_MISSING_JAVADOC_TAGS_VISIBILITY, PREF_PB_MISSING_JAVADOC_TAGS_OVERRIDING,
88
				PREF_PB_MISSING_JAVADOC_TAGS, PREF_PB_MISSING_JAVADOC_TAGS_VISIBILITY, PREF_PB_MISSING_JAVADOC_TAGS_OVERRIDING,
84
				PREF_PB_MISSING_JAVADOC_COMMENTS, PREF_PB_MISSING_JAVADOC_COMMENTS_VISIBILITY, PREF_PB_MISSING_JAVADOC_COMMENTS_OVERRIDING,
89
				PREF_PB_MISSING_JAVADOC_COMMENTS, PREF_PB_MISSING_JAVADOC_TAG_DESCRIPTION, PREF_PB_MISSING_JAVADOC_COMMENTS_VISIBILITY, PREF_PB_MISSING_JAVADOC_COMMENTS_OVERRIDING,
85
			};
90
			};
86
		return keys;
91
		return keys;
87
	}
92
	}
Lines 120-125 Link Here
120
				PreferencesMessages.JavadocProblemsConfigurationBlock_default, 
125
				PreferencesMessages.JavadocProblemsConfigurationBlock_default, 
121
				PreferencesMessages.JavadocProblemsConfigurationBlock_private
126
				PreferencesMessages.JavadocProblemsConfigurationBlock_private
122
		};
127
		};
128
		
129
		String[] considerTagDescriptions= new String[] { NO_TAG, RETURN_TAG, ALL_TAGS  };
130
		
131
		String[] considerTagDescriptionsLabels= new String[] {
132
				PreferencesMessages.JavadocProblemsConfigurationBlock_pb_missing_javadoc_description_no_tag_label, 
133
				PreferencesMessages.JavadocProblemsConfigurationBlock_pb_missing_javadoc_description_return_tag_label, 
134
				PreferencesMessages.JavadocProblemsConfigurationBlock_pb_missing_javadoc_description_all_tag_label
135
		};
136
		
123
		int nColumns= 3;
137
		int nColumns= 3;
124
				
138
				
125
139
Lines 161-170 Link Here
161
		
175
		
162
		label = PreferencesMessages.JavadocProblemsConfigurationBlock_pb_invalid_javadoc_tags_visibility_label; 
176
		label = PreferencesMessages.JavadocProblemsConfigurationBlock_pb_invalid_javadoc_tags_visibility_label; 
163
		addComboBox(composite, label, PREF_PB_INVALID_JAVADOC_TAGS_VISIBILITY, visibilities, visibilitiesLabels, indent);
177
		addComboBox(composite, label, PREF_PB_INVALID_JAVADOC_TAGS_VISIBILITY, visibilities, visibilitiesLabels, indent);
164
178
		
165
		label= PreferencesMessages.JavadocProblemsConfigurationBlock_pb_invalid_javadoc_tags_label; 
179
		label= PreferencesMessages.JavadocProblemsConfigurationBlock_pb_invalid_javadoc_tags_label; 
166
		addCheckBox(composite, label, PREF_PB_INVALID_JAVADOC_TAGS, enabledDisabled, indent);
180
		addCheckBox(composite, label, PREF_PB_INVALID_JAVADOC_TAGS, enabledDisabled, indent);
167
		
181
		
182
		label = PreferencesMessages.JavadocProblemsConfigurationBlock_pb_missing_javadoc_description_label; 
183
		addComboBox(composite, label, PREF_PB_MISSING_JAVADOC_TAG_DESCRIPTION, considerTagDescriptions, considerTagDescriptionsLabels, indent);
184
		setComboEnabled(PREF_PB_MISSING_JAVADOC_TAG_DESCRIPTION, true);
185
		
168
		label= PreferencesMessages.JavadocProblemsConfigurationBlock_pb_invalid_javadoc_tags_not_visible_ref_label; 
186
		label= PreferencesMessages.JavadocProblemsConfigurationBlock_pb_invalid_javadoc_tags_not_visible_ref_label; 
169
		addCheckBox(composite, label, PREF_PB_INVALID_JAVADOC_TAGS_NOT_VISIBLE_REF, enabledDisabled, indent);
187
		addCheckBox(composite, label, PREF_PB_INVALID_JAVADOC_TAGS_NOT_VISIBLE_REF, enabledDisabled, indent);
170
		
188
		
Lines 188-194 Link Here
188
		
206
		
189
		label = PreferencesMessages.JavadocProblemsConfigurationBlock_pb_missing_comments_label; 
207
		label = PreferencesMessages.JavadocProblemsConfigurationBlock_pb_missing_comments_label; 
190
		addComboBox(composite, label, PREF_PB_MISSING_JAVADOC_COMMENTS, errorWarningIgnore, errorWarningIgnoreLabels, 0);
208
		addComboBox(composite, label, PREF_PB_MISSING_JAVADOC_COMMENTS, errorWarningIgnore, errorWarningIgnoreLabels, 0);
191
209
		
192
		label = PreferencesMessages.JavadocProblemsConfigurationBlock_pb_missing_comments_visibility_label; 
210
		label = PreferencesMessages.JavadocProblemsConfigurationBlock_pb_missing_comments_visibility_label; 
193
		addComboBox(composite, label, PREF_PB_MISSING_JAVADOC_COMMENTS_VISIBILITY, visibilities, visibilitiesLabels, indent);
211
		addComboBox(composite, label, PREF_PB_MISSING_JAVADOC_COMMENTS_VISIBILITY, visibilities, visibilitiesLabels, indent);
194
		
212
		
Lines 211-216 Link Here
211
			if (PREF_PB_INVALID_JAVADOC.equals(changedKey) ||
229
			if (PREF_PB_INVALID_JAVADOC.equals(changedKey) ||
212
					PREF_PB_MISSING_JAVADOC_TAGS.equals(changedKey) ||
230
					PREF_PB_MISSING_JAVADOC_TAGS.equals(changedKey) ||
213
					PREF_PB_MISSING_JAVADOC_COMMENTS.equals(changedKey) ||
231
					PREF_PB_MISSING_JAVADOC_COMMENTS.equals(changedKey) ||
232
					PREF_PB_INVALID_JAVADOC_TAGS.equals(changedKey) ||
214
					PREF_JAVADOC_SUPPORT.equals(changedKey)) {				
233
					PREF_JAVADOC_SUPPORT.equals(changedKey)) {				
215
				updateEnableStates();
234
				updateEnableStates();
216
			} else {
235
			} else {
Lines 225-233 Link Here
225
	private void updateEnableStates() {		
244
	private void updateEnableStates() {		
226
		boolean enableJavadoc= checkValue(PREF_JAVADOC_SUPPORT, ENABLED);
245
		boolean enableJavadoc= checkValue(PREF_JAVADOC_SUPPORT, ENABLED);
227
		enableConfigControls(enableJavadoc);
246
		enableConfigControls(enableJavadoc);
228
247
		
229
		if (enableJavadoc) {
248
		if (enableJavadoc) {
230
			boolean enableInvalidTagsErrors= !checkValue(PREF_PB_INVALID_JAVADOC, IGNORE);
249
			boolean enableInvalidTagsErrors= !checkValue(PREF_PB_INVALID_JAVADOC, IGNORE);
250
			setComboEnabled(PREF_PB_MISSING_JAVADOC_TAG_DESCRIPTION, enableInvalidTagsErrors);
231
			getCheckBox(PREF_PB_INVALID_JAVADOC_TAGS).setEnabled(enableInvalidTagsErrors);
251
			getCheckBox(PREF_PB_INVALID_JAVADOC_TAGS).setEnabled(enableInvalidTagsErrors);
232
			getCheckBox(PREF_PB_INVALID_JAVADOC_TAGS_NOT_VISIBLE_REF).setEnabled(enableInvalidTagsErrors);
252
			getCheckBox(PREF_PB_INVALID_JAVADOC_TAGS_NOT_VISIBLE_REF).setEnabled(enableInvalidTagsErrors);
233
			getCheckBox(PREF_PB_INVALID_JAVADOC_TAGS_DEPRECATED_REF).setEnabled(enableInvalidTagsErrors);
253
			getCheckBox(PREF_PB_INVALID_JAVADOC_TAGS_DEPRECATED_REF).setEnabled(enableInvalidTagsErrors);
(-)ui/org/eclipse/jdt/internal/ui/preferences/PreferencesMessages.java (+4 lines)
Lines 453-458 Link Here
453
	public static String JavadocProblemsConfigurationBlock_javadoc_description;
453
	public static String JavadocProblemsConfigurationBlock_javadoc_description;
454
	public static String JavadocProblemsConfigurationBlock_pb_javadoc_support_label;
454
	public static String JavadocProblemsConfigurationBlock_pb_javadoc_support_label;
455
	public static String JavadocProblemsConfigurationBlock_pb_invalid_javadoc_label;
455
	public static String JavadocProblemsConfigurationBlock_pb_invalid_javadoc_label;
456
	public static String JavadocProblemsConfigurationBlock_pb_missing_javadoc_description_label;
457
	public static String JavadocProblemsConfigurationBlock_pb_missing_javadoc_description_no_tag_label;
458
	public static String JavadocProblemsConfigurationBlock_pb_missing_javadoc_description_return_tag_label;
459
	public static String JavadocProblemsConfigurationBlock_pb_missing_javadoc_description_all_tag_label;
456
	public static String JavadocProblemsConfigurationBlock_pb_invalid_javadoc_tags_label;
460
	public static String JavadocProblemsConfigurationBlock_pb_invalid_javadoc_tags_label;
457
	public static String JavadocProblemsConfigurationBlock_pb_invalid_javadoc_tags_visibility_label;
461
	public static String JavadocProblemsConfigurationBlock_pb_invalid_javadoc_tags_visibility_label;
458
	public static String JavadocProblemsConfigurationBlock_pb_invalid_javadoc_tags_not_visible_ref_label;
462
	public static String JavadocProblemsConfigurationBlock_pb_invalid_javadoc_tags_not_visible_ref_label;
(-)ui/org/eclipse/jdt/internal/ui/preferences/PreferencesMessages.properties (+4 lines)
Lines 501-506 Link Here
501
JavadocProblemsConfigurationBlock_pb_javadoc_support_label=Proc&ess Javadoc comments (includes search and refactoring)
501
JavadocProblemsConfigurationBlock_pb_javadoc_support_label=Proc&ess Javadoc comments (includes search and refactoring)
502
JavadocProblemsConfigurationBlock_pb_invalid_javadoc_label=Mal&formed Javadoc comments:
502
JavadocProblemsConfigurationBlock_pb_invalid_javadoc_label=Mal&formed Javadoc comments:
503
JavadocProblemsConfigurationBlock_pb_invalid_javadoc_tags_label=Report e&rrors in tags
503
JavadocProblemsConfigurationBlock_pb_invalid_javadoc_tags_label=Report e&rrors in tags
504
JavadocProblemsConfigurationBlock_pb_missing_javadoc_description_label=Report missing tag description
505
JavadocProblemsConfigurationBlock_pb_missing_javadoc_description_no_tag_label=Ignore
506
JavadocProblemsConfigurationBlock_pb_missing_javadoc_description_return_tag_label=Return tag
507
JavadocProblemsConfigurationBlock_pb_missing_javadoc_description_all_tag_label=All tags
504
JavadocProblemsConfigurationBlock_pb_invalid_javadoc_tags_visibility_label=On&ly consider members as visible as:
508
JavadocProblemsConfigurationBlock_pb_invalid_javadoc_tags_visibility_label=On&ly consider members as visible as:
505
JavadocProblemsConfigurationBlock_pb_invalid_javadoc_tags_not_visible_ref_label=Report non &visible references
509
JavadocProblemsConfigurationBlock_pb_invalid_javadoc_tags_not_visible_ref_label=Report non &visible references
506
JavadocProblemsConfigurationBlock_pb_invalid_javadoc_tags_deprecated_label=Report de&precated references
510
JavadocProblemsConfigurationBlock_pb_invalid_javadoc_tags_deprecated_label=Report de&precated references
(-)compiler/org/eclipse/jdt/core/compiler/IProblem.java (+5 lines)
Lines 815-820 Link Here
815
	 * Javadoc comments
815
	 * Javadoc comments
816
	 */
816
	 */
817
	/** 
817
	/** 
818
	 * Problem warned on missing tag description.
819
	 * @since 3.4
820
	 */
821
	int JavadocMissingTagDescription = Javadoc + Internal + 463;
822
	/** 
818
	 * Problem warned on duplicated tag.
823
	 * Problem warned on duplicated tag.
819
	 * @since 3.3
824
	 * @since 3.3
820
	 */
825
	 */
(-)compiler/org/eclipse/jdt/internal/compiler/impl/CompilerOptions.java (-1 / +15 lines)
Lines 74-79 Link Here
74
	public static final String OPTION_ReportMissingJavadocTagsVisibility = "org.eclipse.jdt.core.compiler.problem.missingJavadocTagsVisibility"; //$NON-NLS-1$
74
	public static final String OPTION_ReportMissingJavadocTagsVisibility = "org.eclipse.jdt.core.compiler.problem.missingJavadocTagsVisibility"; //$NON-NLS-1$
75
	public static final String OPTION_ReportMissingJavadocTagsOverriding = "org.eclipse.jdt.core.compiler.problem.missingJavadocTagsOverriding"; //$NON-NLS-1$
75
	public static final String OPTION_ReportMissingJavadocTagsOverriding = "org.eclipse.jdt.core.compiler.problem.missingJavadocTagsOverriding"; //$NON-NLS-1$
76
	public static final String OPTION_ReportMissingJavadocComments = "org.eclipse.jdt.core.compiler.problem.missingJavadocComments"; //$NON-NLS-1$
76
	public static final String OPTION_ReportMissingJavadocComments = "org.eclipse.jdt.core.compiler.problem.missingJavadocComments"; //$NON-NLS-1$
77
	public static final String OPTION_ReportMissingJavadocTagDescription = "org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsConsiderDescription"; //$NON-NLS-1$
77
	public static final String OPTION_ReportMissingJavadocCommentsVisibility = "org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsVisibility"; //$NON-NLS-1$
78
	public static final String OPTION_ReportMissingJavadocCommentsVisibility = "org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsVisibility"; //$NON-NLS-1$
78
	public static final String OPTION_ReportMissingJavadocCommentsOverriding = "org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsOverriding"; //$NON-NLS-1$
79
	public static final String OPTION_ReportMissingJavadocCommentsOverriding = "org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsOverriding"; //$NON-NLS-1$
79
	public static final String OPTION_ReportFinallyBlockNotCompletingNormally = "org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally"; //$NON-NLS-1$
80
	public static final String OPTION_ReportFinallyBlockNotCompletingNormally = "org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally"; //$NON-NLS-1$
Lines 145-150 Link Here
145
	public static final String PROTECTED = "protected";	//$NON-NLS-1$
146
	public static final String PROTECTED = "protected";	//$NON-NLS-1$
146
	public static final String DEFAULT = "default";	//$NON-NLS-1$
147
	public static final String DEFAULT = "default";	//$NON-NLS-1$
147
	public static final String PRIVATE = "private";	//$NON-NLS-1$
148
	public static final String PRIVATE = "private";	//$NON-NLS-1$
149
	public static final String RETURN_TAG = "return_tag";	//$NON-NLS-1$
150
	public static final String NO_TAG = "no_tag";	//$NON-NLS-1$
151
	public static final String ALL_TAGS = "all_tags";	//$NON-NLS-1$
148
152
149
	/**
153
	/**
150
	 * Bit mask for configurable problems (error/warning threshold)
154
	 * Bit mask for configurable problems (error/warning threshold)
Lines 201-206 Link Here
201
	public static final long OverridingMethodWithoutSuperInvocation = ASTNode.Bit50L;
205
	public static final long OverridingMethodWithoutSuperInvocation = ASTNode.Bit50L;
202
	public static final long PotentialNullReference = ASTNode.Bit51L;
206
	public static final long PotentialNullReference = ASTNode.Bit51L;
203
	public static final long RedundantNullCheck = ASTNode.Bit52L;
207
	public static final long RedundantNullCheck = ASTNode.Bit52L;
208
	public static final long MissingJavadocTagDescription = ASTNode.Bit53L;
204
209
205
	// Map: String optionKey --> Long irritant>
210
	// Map: String optionKey --> Long irritant>
206
	private static Map OptionToIrritants;
211
	private static Map OptionToIrritants;
Lines 287-292 Link Here
287
	public boolean reportInvalidJavadocTags = false;
292
	public boolean reportInvalidJavadocTags = false;
288
	public boolean reportInvalidJavadocTagsDeprecatedRef = false;
293
	public boolean reportInvalidJavadocTagsDeprecatedRef = false;
289
	public boolean reportInvalidJavadocTagsNotVisibleRef = false;
294
	public boolean reportInvalidJavadocTagsNotVisibleRef = false;
295
	public String reportMissingJavadocTagDescription = RETURN_TAG;
290
296
291
	// check missing javadoc tags
297
	// check missing javadoc tags
292
	public int reportMissingJavadocTagsVisibility = ClassFileConstants.AccPublic;
298
	public int reportMissingJavadocTagsVisibility = ClassFileConstants.AccPublic;
Lines 394-399 Link Here
394
		optionsMap.put(OPTION_ReportMissingJavadocTagsVisibility, getVisibilityString(this.reportMissingJavadocTagsVisibility));
400
		optionsMap.put(OPTION_ReportMissingJavadocTagsVisibility, getVisibilityString(this.reportMissingJavadocTagsVisibility));
395
		optionsMap.put(OPTION_ReportMissingJavadocTagsOverriding, this.reportMissingJavadocTagsOverriding ? ENABLED : DISABLED);
401
		optionsMap.put(OPTION_ReportMissingJavadocTagsOverriding, this.reportMissingJavadocTagsOverriding ? ENABLED : DISABLED);
396
		optionsMap.put(OPTION_ReportMissingJavadocComments, getSeverityString(MissingJavadocComments));
402
		optionsMap.put(OPTION_ReportMissingJavadocComments, getSeverityString(MissingJavadocComments));
403
		optionsMap.put(OPTION_ReportMissingJavadocTagDescription, this.reportMissingJavadocTagDescription);
397
		optionsMap.put(OPTION_ReportMissingJavadocCommentsVisibility, getVisibilityString(this.reportMissingJavadocCommentsVisibility));
404
		optionsMap.put(OPTION_ReportMissingJavadocCommentsVisibility, getVisibilityString(this.reportMissingJavadocCommentsVisibility));
398
		optionsMap.put(OPTION_ReportMissingJavadocCommentsOverriding, this.reportMissingJavadocCommentsOverriding ? ENABLED : DISABLED);
405
		optionsMap.put(OPTION_ReportMissingJavadocCommentsOverriding, this.reportMissingJavadocCommentsOverriding ? ENABLED : DISABLED);
399
		optionsMap.put(OPTION_ReportFinallyBlockNotCompletingNormally, getSeverityString(FinallyBlockNotCompleting));
406
		optionsMap.put(OPTION_ReportFinallyBlockNotCompletingNormally, getSeverityString(FinallyBlockNotCompleting));
Lines 458-463 Link Here
458
				case (int) UsingDeprecatedAPI :
465
				case (int) UsingDeprecatedAPI :
459
				case (int) (InvalidJavadoc | UsingDeprecatedAPI) :
466
				case (int) (InvalidJavadoc | UsingDeprecatedAPI) :
460
					return OPTION_ReportDeprecation;
467
					return OPTION_ReportDeprecation;
468
				case (int) MissingJavadocTagDescription :
469
					return OPTION_ReportMissingJavadocTagDescription;
461
				case (int) MaskedCatchBlock  :
470
				case (int) MaskedCatchBlock  :
462
					return OPTION_ReportHiddenCatchBlock;
471
					return OPTION_ReportHiddenCatchBlock;
463
				case (int) UnusedLocalVariable :
472
				case (int) UnusedLocalVariable :
Lines 901-907 Link Here
901
		}
910
		}
902
		if ((optionValue = optionsMap.get(OPTION_ReportMissingJavadocComments)) != null) {
911
		if ((optionValue = optionsMap.get(OPTION_ReportMissingJavadocComments)) != null) {
903
			updateSeverity(MissingJavadocComments, optionValue);
912
			updateSeverity(MissingJavadocComments, optionValue);
904
		}
913
		}		
914
		if ((optionValue = optionsMap.get(OPTION_ReportMissingJavadocTagDescription)) != null) {
915
			this.reportMissingJavadocTagDescription = (String) optionValue;
916
		}		
905
		if ((optionValue = optionsMap.get(OPTION_ReportMissingJavadocCommentsVisibility)) != null) {
917
		if ((optionValue = optionsMap.get(OPTION_ReportMissingJavadocCommentsVisibility)) != null) {
906
			if (PUBLIC.equals(optionValue)) {
918
			if (PUBLIC.equals(optionValue)) {
907
				this.reportMissingJavadocCommentsVisibility = ClassFileConstants.AccPublic;
919
				this.reportMissingJavadocCommentsVisibility = ClassFileConstants.AccPublic;
Lines 977-982 Link Here
977
		buf.append("\n\t\t+ visibility level to report missing javadoc tags: ").append(getVisibilityString(this.reportMissingJavadocTagsVisibility)); //$NON-NLS-1$
989
		buf.append("\n\t\t+ visibility level to report missing javadoc tags: ").append(getVisibilityString(this.reportMissingJavadocTagsVisibility)); //$NON-NLS-1$
978
		buf.append("\n\t\t+ report missing javadoc tags in overriding methods: ").append(this.reportMissingJavadocTagsOverriding ? ENABLED : DISABLED); //$NON-NLS-1$
990
		buf.append("\n\t\t+ report missing javadoc tags in overriding methods: ").append(this.reportMissingJavadocTagsOverriding ? ENABLED : DISABLED); //$NON-NLS-1$
979
		buf.append("\n\t\t+ missing javadoc comments: ").append(getSeverityString(MissingJavadocComments)); //$NON-NLS-1$
991
		buf.append("\n\t\t+ missing javadoc comments: ").append(getSeverityString(MissingJavadocComments)); //$NON-NLS-1$
992
		buf.append("\n\t\t+ report missing tag description option: ").append(this.reportMissingJavadocTagDescription); //$NON-NLS-1$
980
		buf.append("\n\t\t+ visibility level to report missing javadoc comments: ").append(getVisibilityString(this.reportMissingJavadocCommentsVisibility)); //$NON-NLS-1$
993
		buf.append("\n\t\t+ visibility level to report missing javadoc comments: ").append(getVisibilityString(this.reportMissingJavadocCommentsVisibility)); //$NON-NLS-1$
981
		buf.append("\n\t\t+ report missing javadoc comments in overriding methods: ").append(this.reportMissingJavadocCommentsOverriding ? ENABLED : DISABLED); //$NON-NLS-1$
994
		buf.append("\n\t\t+ report missing javadoc comments in overriding methods: ").append(this.reportMissingJavadocCommentsOverriding ? ENABLED : DISABLED); //$NON-NLS-1$
982
		buf.append("\n\t- finally block not completing normally: ").append(getSeverityString(FinallyBlockNotCompleting)); //$NON-NLS-1$
995
		buf.append("\n\t- finally block not completing normally: ").append(getSeverityString(FinallyBlockNotCompleting)); //$NON-NLS-1$
Lines 1133-1138 Link Here
1133
			OPTION_ReportMethodWithConstructorName,
1146
			OPTION_ReportMethodWithConstructorName,
1134
			OPTION_ReportMissingDeprecatedAnnotation,
1147
			OPTION_ReportMissingDeprecatedAnnotation,
1135
			OPTION_ReportMissingJavadocComments,
1148
			OPTION_ReportMissingJavadocComments,
1149
			OPTION_ReportMissingJavadocTagDescription,
1136
			OPTION_ReportMissingJavadocTags,
1150
			OPTION_ReportMissingJavadocTags,
1137
			OPTION_ReportMissingOverrideAnnotation,
1151
			OPTION_ReportMissingOverrideAnnotation,
1138
			OPTION_ReportMissingSerialVersion,
1152
			OPTION_ReportMissingSerialVersion,
(-)model/org/eclipse/jdt/core/JavaCore.java (+29 lines)
Lines 70-75 Link Here
70
 *                                 COMPILER_PB_UNUSED_PARAMETER_INCLUDE_DOC_COMMENT_REFERENCE
70
 *                                 COMPILER_PB_UNUSED_PARAMETER_INCLUDE_DOC_COMMENT_REFERENCE
71
 *     IBM Corporation - added the following constants:
71
 *     IBM Corporation - added the following constants:
72
 *                                 COMPILER_PB_UNUSED_DECLARED_THROWN_EXCEPTION_INCLUDE_DOC_COMMENT_REFERENCE
72
 *                                 COMPILER_PB_UNUSED_DECLARED_THROWN_EXCEPTION_INCLUDE_DOC_COMMENT_REFERENCE
73
 *     IBM Corporation - added the following constants:
74
 *                                 COMPILER_PB_MISSING_JAVADOC_TAG_DESCRIPTION
75
 *								   COMPILER_PB_MISSING_JAVADOC_TAG_DESCRIPTION_NO_TAG
76
 *								   COMPILER_PB_MISSING_JAVADOC_TAG_DESCRIPTION_RETURN_TAG
77
 *								   COMPILER_PB_MISSING_JAVADOC_TAG_DESCRIPTION_ALL_TAGS
73
 *******************************************************************************/
78
 *******************************************************************************/
74
package org.eclipse.jdt.core;
79
package org.eclipse.jdt.core;
75
80
Lines 1170-1175 Link Here
1170
	 * @since 3.1
1175
	 * @since 3.1
1171
	 */
1176
	 */
1172
	public static final String NEVER = "never"; //$NON-NLS-1$
1177
	public static final String NEVER = "never"; //$NON-NLS-1$
1178
	/**
1179
	 * Possible  configurable option value.
1180
	 * @see #getDefaultOptions()
1181
	 * @since 3.4
1182
	 */
1183
	public static final String COMPILER_PB_MISSING_JAVADOC_TAG_DESCRIPTION = PLUGIN_ID + ".compiler.problem.invalidJavadocTagsConsiderDescription"; //$NON-NLS-1$
1184
	/**
1185
	 * Possible  configurable option value.
1186
	 * @see #getDefaultOptions()
1187
	 * @since 3.4
1188
	 */
1189
	public static final String COMPILER_PB_MISSING_JAVADOC_TAG_DESCRIPTION_NO_TAG = CompilerOptions.NO_TAG;
1190
	/**
1191
	 * Possible  configurable option value.
1192
	 * @see #getDefaultOptions()
1193
	 * @since 3.4
1194
	 */
1195
	public static final String COMPILER_PB_MISSING_JAVADOC_TAG_DESCRIPTION_RETURN_TAG = CompilerOptions.RETURN_TAG;
1196
	/**
1197
	 * Possible  configurable option value.
1198
	 * @see #getDefaultOptions()
1199
	 * @since 3.4
1200
	 */
1201
	public static final String COMPILER_PB_MISSING_JAVADOC_TAG_DESCRIPTION_ALL_TAGS = CompilerOptions.ALL_TAGS;
1173
1202
1174
	/**
1203
	/**
1175
	 * Value of the content-type for Java source files. Use this value to retrieve the Java content type
1204
	 * Value of the content-type for Java source files. Use this value to retrieve the Java content type
(-)compiler/org/eclipse/jdt/internal/compiler/problem/ProblemReporter.java (-8 / +25 lines)
Lines 275-280 Link Here
275
		case IProblem.JavadocUsingDeprecatedMethod:
275
		case IProblem.JavadocUsingDeprecatedMethod:
276
		case IProblem.JavadocUsingDeprecatedType:
276
		case IProblem.JavadocUsingDeprecatedType:
277
		case IProblem.JavadocHiddenReference:
277
		case IProblem.JavadocHiddenReference:
278
		case IProblem.JavadocMissingTagDescription:
278
			return CompilerOptions.InvalidJavadoc;
279
			return CompilerOptions.InvalidJavadoc;
279
280
280
		case IProblem.JavadocMissingParamTag:
281
		case IProblem.JavadocMissingParamTag:
Lines 998-1010 Link Here
998
		start,
999
		start,
999
		end);
1000
		end);
1000
}
1001
}
1001
/*
1002
 * Given the current configuration, answers which category the problem
1003
 * falls into:
1004
 *		ProblemSeverities.Error | ProblemSeverities.Warning | ProblemSeverities.Ignore
1005
 * when different from Ignore, severity can be coupled with ProblemSeverities.Optional
1006
 * to indicate that this problem is configurable through options
1007
 */
1008
public int computeSeverity(int problemID){
1002
public int computeSeverity(int problemID){
1009
1003
1010
	switch (problemID) {
1004
	switch (problemID) {
Lines 1055-1061 Link Here
1055
		case IProblem.JavadocIncorrectArityForParameterizedConstructor:
1049
		case IProblem.JavadocIncorrectArityForParameterizedConstructor:
1056
		case IProblem.JavadocParameterizedConstructorArgumentTypeMismatch:
1050
		case IProblem.JavadocParameterizedConstructorArgumentTypeMismatch:
1057
		case IProblem.JavadocTypeArgumentsForRawGenericConstructor:
1051
		case IProblem.JavadocTypeArgumentsForRawGenericConstructor:
1058
		case IProblem.JavadocEmptyReturnTag:
1059
			if (!this.options.reportInvalidJavadocTags) {
1052
			if (!this.options.reportInvalidJavadocTags) {
1060
				return ProblemSeverities.Ignore;		
1053
				return ProblemSeverities.Ignore;		
1061
			}
1054
			}
Lines 1083-1088 Link Here
1083
				return ProblemSeverities.Ignore;			
1076
				return ProblemSeverities.Ignore;			
1084
			}
1077
			}
1085
			break;
1078
			break;
1079
		/*
1080
		 * Javadoc missing tag descriptions
1081
		 */
1082
		case IProblem.JavadocEmptyReturnTag:
1083
			if (CompilerOptions.NO_TAG.equals(this.options.reportMissingJavadocTagDescription)) {
1084
				return ProblemSeverities.Ignore;
1085
			}
1086
			break;
1087
		case IProblem.JavadocMissingTagDescription:
1088
			if (! CompilerOptions.ALL_TAGS.equals(this.options.reportMissingJavadocTagDescription)) {
1089
				return ProblemSeverities.Ignore;
1090
			}
1091
			break;
1086
	}
1092
	}
1087
	long irritant = getIrritant(problemID);
1093
	long irritant = getIrritant(problemID);
1088
	if (irritant != 0) {
1094
	if (irritant != 0) {
Lines 3729-3734 Link Here
3729
		sourceStart,
3735
		sourceStart,
3730
		sourceEnd);
3736
		sourceEnd);
3731
}
3737
}
3738
public void javadocMissingTagDescription(int sourceStart, int sourceEnd){
3739
	int severity = computeSeverity(IProblem.JavadocMissingTagDescription);
3740
	if (severity == ProblemSeverities.Ignore) return;
3741
	this.handle(
3742
		IProblem.JavadocMissingTagDescription,
3743
		NoArgument,
3744
		NoArgument,
3745
		severity,
3746
		sourceStart,
3747
		sourceEnd);
3748
}
3732
public void javadocDuplicatedThrowsClassName(TypeReference typeReference, int modifiers) {
3749
public void javadocDuplicatedThrowsClassName(TypeReference typeReference, int modifiers) {
3733
	int severity = computeSeverity(IProblem.JavadocDuplicateThrowsClassName);
3750
	int severity = computeSeverity(IProblem.JavadocDuplicateThrowsClassName);
3734
	if (severity == ProblemSeverities.Ignore) return;
3751
	if (severity == ProblemSeverities.Ignore) return;
(-)compiler/org/eclipse/jdt/internal/compiler/problem/messages.properties (-1 / +2 lines)
Lines 373-378 Link Here
373
460 = Empty block should be documented
373
460 = Empty block should be documented
374
374
375
### DOC 
375
### DOC 
376
463 = Description expected after this token
376
464 = Unexpected duplicated tag @{0}
377
464 = Unexpected duplicated tag @{0}
377
465 = ''{0}'' visibility for malformed doc comments hides this ''{1}'' reference
378
465 = ''{0}'' visibility for malformed doc comments hides this ''{1}'' reference
378
466 = Invalid member type qualification
379
466 = Invalid member type qualification
Lines 425-431 Link Here
425
513 = Malformed reference (missing end space separator)
426
513 = Malformed reference (missing end space separator)
426
514 = Javadoc: 
427
514 = Javadoc: 
427
515 = Missing #: "{0}"
428
515 = Missing #: "{0}"
428
516 = Missing return type description
429
516 = Description expected after return tag
429
517 = Only static field reference is allowed for @value tag
430
517 = Only static field reference is allowed for @value tag
430
518 = Unexpected text
431
518 = Unexpected text
431
519 = Invalid param tag name
432
519 = Invalid param tag name
(-)compiler/org/eclipse/jdt/internal/compiler/parser/AbstractCommentParser.java (-2 / +20 lines)
Lines 15-20 Link Here
15
15
16
import org.eclipse.jdt.core.compiler.CharOperation;
16
import org.eclipse.jdt.core.compiler.CharOperation;
17
import org.eclipse.jdt.core.compiler.InvalidInputException;
17
import org.eclipse.jdt.core.compiler.InvalidInputException;
18
import org.eclipse.jdt.internal.compiler.ast.JavadocQualifiedTypeReference;
19
import org.eclipse.jdt.internal.compiler.ast.JavadocSingleTypeReference;
18
import org.eclipse.jdt.internal.compiler.classfmt.ClassFileConstants;
20
import org.eclipse.jdt.internal.compiler.classfmt.ClassFileConstants;
19
import org.eclipse.jdt.internal.compiler.util.Util;
21
import org.eclipse.jdt.internal.compiler.util.Util;
20
22
Lines 855-861 Link Here
855
				if (token == TerminalTokens.TokenNameWHITESPACE) {
857
				if (token == TerminalTokens.TokenNameWHITESPACE) {
856
					this.scanner.currentPosition = restart;
858
					this.scanner.currentPosition = restart;
857
					this.index = restart;
859
					this.index = restart;
858
					return pushParamName(isTypeParam);
860
					if (! pushParamName(isTypeParam)) return false;
861
					if (this.reportProblems && verifyEndLine(this.scanner.currentPosition)) {
862
						this.sourceParser.problemReporter().javadocMissingTagDescription(start, end);
863
						return false;
864
					}	
865
					return true;
859
				}
866
				}
860
			}
867
			}
861
			// Report problem
868
			// Report problem
Lines 1131-1137 Link Here
1131
				if (this.reportProblems)
1138
				if (this.reportProblems)
1132
					this.sourceParser.problemReporter().javadocMissingThrowsClassName(this.tagSourceStart, this.tagSourceEnd, this.sourceParser.modifiers);
1139
					this.sourceParser.problemReporter().javadocMissingThrowsClassName(this.tagSourceStart, this.tagSourceEnd, this.sourceParser.modifiers);
1133
			} else {
1140
			} else {
1134
				return pushThrowName(typeRef);
1141
				if (! pushThrowName(typeRef)) return false;
1142
				if (this.reportProblems && verifyEndLine(this.scanner.currentPosition)) {
1143
					// retrieve correct position when able
1144
					if (typeRef instanceof JavadocSingleTypeReference) {
1145
						start = ((JavadocSingleTypeReference)typeRef).sourceStart;
1146
					} else if (typeRef instanceof JavadocQualifiedTypeReference) {
1147
						start = ((JavadocQualifiedTypeReference)typeRef).sourceStart;
1148
					}
1149
					this.sourceParser.problemReporter().javadocMissingTagDescription(start, this.tokenPreviousPosition);
1150
					return false;
1151
				}	
1152
				return true;
1135
			}
1153
			}
1136
		} catch (InvalidInputException ex) {
1154
		} catch (InvalidInputException ex) {
1137
			if (this.reportProblems) this.sourceParser.problemReporter().javadocInvalidThrowsClass(start, getTokenEndPosition());
1155
			if (this.reportProblems) this.sourceParser.problemReporter().javadocInvalidThrowsClass(start, getTokenEndPosition());
(-)compiler/org/eclipse/jdt/internal/compiler/parser/JavadocParser.java (+16 lines)
Lines 465-470 Link Here
465
	
465
	
466
		// Decide which parse to perform depending on tag name
466
		// Decide which parse to perform depending on tag name
467
		this.tagValue = NO_TAG_VALUE;
467
		this.tagValue = NO_TAG_VALUE;
468
		boolean alreadyParsedTag = false;
468
		switch (token) {
469
		switch (token) {
469
			case TerminalTokens.TokenNameIdentifier :
470
			case TerminalTokens.TokenNameIdentifier :
470
				switch (tagName[0]) {
471
				switch (tagName[0]) {
Lines 472-477 Link Here
472
						if (length == TAG_CATEGORY_LENGTH && CharOperation.equals(TAG_CATEGORY, tagName)) {
473
						if (length == TAG_CATEGORY_LENGTH && CharOperation.equals(TAG_CATEGORY, tagName)) {
473
							this.tagValue = TAG_CATEGORY_VALUE;
474
							this.tagValue = TAG_CATEGORY_VALUE;
474
							valid = parseIdentifierTag(false); // TODO (frederic) reconsider parameter value when @category will be significant in spec
475
							valid = parseIdentifierTag(false); // TODO (frederic) reconsider parameter value when @category will be significant in spec
476
							alreadyParsedTag = false; // TODO (frederic-eric) switch to true as soon as the above TODO implemented
475
						}
477
						}
476
						break;
478
						break;
477
					case 'd':
479
					case 'd':
Lines 479-490 Link Here
479
							this.deprecated = true;
481
							this.deprecated = true;
480
							valid = true;
482
							valid = true;
481
							this.tagValue = TAG_DEPRECATED_VALUE;
483
							this.tagValue = TAG_DEPRECATED_VALUE;
484
							alreadyParsedTag = false;
482
						}
485
						}
483
						break;
486
						break;
484
					case 'e':
487
					case 'e':
485
						if (length == TAG_EXCEPTION_LENGTH && CharOperation.equals(TAG_EXCEPTION, tagName)) {
488
						if (length == TAG_EXCEPTION_LENGTH && CharOperation.equals(TAG_EXCEPTION, tagName)) {
486
							this.tagValue = TAG_EXCEPTION_VALUE;
489
							this.tagValue = TAG_EXCEPTION_VALUE;
487
							valid = parseThrows();
490
							valid = parseThrows();
491
							alreadyParsedTag = true;
488
						}
492
						}
489
						break;
493
						break;
490
					case 'i':
494
					case 'i':
Lines 499-504 Link Here
499
							}
503
							}
500
							valid = true;
504
							valid = true;
501
							this.tagValue = TAG_INHERITDOC_VALUE;
505
							this.tagValue = TAG_INHERITDOC_VALUE;
506
							alreadyParsedTag = false;
502
						}
507
						}
503
						break;
508
						break;
504
					case 'l':
509
					case 'l':
Lines 514-519 Link Here
514
									this.sourceParser.problemReporter().javadocUnexpectedTag(this.tagSourceStart, this.tagSourceEnd);
519
									this.sourceParser.problemReporter().javadocUnexpectedTag(this.tagSourceStart, this.tagSourceEnd);
515
								}
520
								}
516
							}
521
							}
522
							alreadyParsedTag = true;
517
						} else if (length == TAG_LINKPLAIN_LENGTH && CharOperation.equals(TAG_LINKPLAIN, tagName)) {
523
						} else if (length == TAG_LINKPLAIN_LENGTH && CharOperation.equals(TAG_LINKPLAIN, tagName)) {
518
							this.tagValue = TAG_LINKPLAIN_VALUE;
524
							this.tagValue = TAG_LINKPLAIN_VALUE;
519
							if (this.inlineTagStarted) {
525
							if (this.inlineTagStarted) {
Lines 524-535 Link Here
524
									this.sourceParser.problemReporter().javadocUnexpectedTag(this.tagSourceStart, this.tagSourceEnd);
530
									this.sourceParser.problemReporter().javadocUnexpectedTag(this.tagSourceStart, this.tagSourceEnd);
525
								}
531
								}
526
							}
532
							}
533
							alreadyParsedTag = true;
527
						}
534
						}
528
						break;
535
						break;
529
					case 'p':
536
					case 'p':
530
						if (length == TAG_PARAM_LENGTH && CharOperation.equals(TAG_PARAM, tagName)) {
537
						if (length == TAG_PARAM_LENGTH && CharOperation.equals(TAG_PARAM, tagName)) {
531
							this.tagValue = TAG_PARAM_VALUE;
538
							this.tagValue = TAG_PARAM_VALUE;
532
							valid = parseParam();
539
							valid = parseParam();
540
							alreadyParsedTag = true;
533
						}
541
						}
534
						break;
542
						break;
535
					case 's':
543
					case 's':
Lines 545-550 Link Here
545
								this.tagValue = TAG_SEE_VALUE;
553
								this.tagValue = TAG_SEE_VALUE;
546
								valid = parseReference();
554
								valid = parseReference();
547
							}
555
							}
556
							alreadyParsedTag = true;
548
						}
557
						}
549
						break;
558
						break;
550
					case 'v':
559
					case 'v':
Lines 572-577 Link Here
572
									if (this.reportProblems) this.sourceParser.problemReporter().javadocUnexpectedTag(this.tagSourceStart, this.tagSourceEnd);
581
									if (this.reportProblems) this.sourceParser.problemReporter().javadocUnexpectedTag(this.tagSourceStart, this.tagSourceEnd);
573
								}
582
								}
574
							}
583
							}
584
							alreadyParsedTag = true;
575
						} else {
585
						} else {
576
							createTag();
586
							createTag();
577
						}
587
						}
Lines 584-589 Link Here
584
			case TerminalTokens.TokenNamereturn :
594
			case TerminalTokens.TokenNamereturn :
585
				this.tagValue = TAG_RETURN_VALUE;
595
				this.tagValue = TAG_RETURN_VALUE;
586
				valid = parseReturn();
596
				valid = parseReturn();
597
				alreadyParsedTag = true;
587
				/* verify characters after return tag (we're expecting text description)
598
				/* verify characters after return tag (we're expecting text description)
588
				if(!verifyCharsAfterReturnTag(this.index)) {
599
				if(!verifyCharsAfterReturnTag(this.index)) {
589
					if (this.sourceParser != null) {
600
					if (this.sourceParser != null) {
Lines 596-604 Link Here
596
			case TerminalTokens.TokenNamethrows :
607
			case TerminalTokens.TokenNamethrows :
597
				this.tagValue = TAG_THROWS_VALUE;
608
				this.tagValue = TAG_THROWS_VALUE;
598
				valid = parseThrows();
609
				valid = parseThrows();
610
				alreadyParsedTag = true;
599
				break;
611
				break;
600
		}
612
		}
601
		this.textStart = this.index;
613
		this.textStart = this.index;
614
		if (! alreadyParsedTag && this.reportProblems && verifyEndLine(this.scanner.currentPosition)) {
615
			this.sourceParser.problemReporter().javadocMissingTagDescription(this.tagSourceStart, this.tagSourceEnd);
616
			return false;
617
		}
602
		return valid;
618
		return valid;
603
	}
619
	}
604
620
(-)formatter/org/eclipse/jdt/internal/formatter/DefaultCodeFormatter.java (+1 lines)
Lines 298-303 Link Here
298
			optionsMap.put(CompilerOptions.OPTION_ReportInvalidJavadoc, CompilerOptions.IGNORE);
298
			optionsMap.put(CompilerOptions.OPTION_ReportInvalidJavadoc, CompilerOptions.IGNORE);
299
			optionsMap.put(CompilerOptions.OPTION_ReportInvalidJavadocTagsVisibility, CompilerOptions.PUBLIC);
299
			optionsMap.put(CompilerOptions.OPTION_ReportInvalidJavadocTagsVisibility, CompilerOptions.PUBLIC);
300
			optionsMap.put(CompilerOptions.OPTION_ReportInvalidJavadocTags, CompilerOptions.DISABLED);
300
			optionsMap.put(CompilerOptions.OPTION_ReportInvalidJavadocTags, CompilerOptions.DISABLED);
301
			optionsMap.put(CompilerOptions.OPTION_ReportMissingJavadocTagDescription, CompilerOptions.RETURN_TAG);
301
			optionsMap.put(CompilerOptions.OPTION_ReportInvalidJavadocTagsDeprecatedRef, CompilerOptions.DISABLED);
302
			optionsMap.put(CompilerOptions.OPTION_ReportInvalidJavadocTagsDeprecatedRef, CompilerOptions.DISABLED);
302
			optionsMap.put(CompilerOptions.OPTION_ReportInvalidJavadocTagsNotVisibleRef, CompilerOptions.DISABLED);
303
			optionsMap.put(CompilerOptions.OPTION_ReportInvalidJavadocTagsNotVisibleRef, CompilerOptions.DISABLED);
303
			optionsMap.put(CompilerOptions.OPTION_ReportMissingJavadocTags, CompilerOptions.IGNORE);
304
			optionsMap.put(CompilerOptions.OPTION_ReportMissingJavadocTags, CompilerOptions.IGNORE);
(-)src/org/eclipse/jdt/core/tests/compiler/regression/BatchCompilerTest.java (-3 / +4 lines)
Lines 1242-1247 Link Here
1242
			"		<option key=\"org.eclipse.jdt.core.compiler.problem.indirectStaticAccess\" value=\"ignore\"/>\n" +
1242
			"		<option key=\"org.eclipse.jdt.core.compiler.problem.indirectStaticAccess\" value=\"ignore\"/>\n" +
1243
			"		<option key=\"org.eclipse.jdt.core.compiler.problem.invalidJavadoc\" value=\"ignore\"/>\n" +
1243
			"		<option key=\"org.eclipse.jdt.core.compiler.problem.invalidJavadoc\" value=\"ignore\"/>\n" +
1244
			"		<option key=\"org.eclipse.jdt.core.compiler.problem.invalidJavadocTags\" value=\"disabled\"/>\n" +
1244
			"		<option key=\"org.eclipse.jdt.core.compiler.problem.invalidJavadocTags\" value=\"disabled\"/>\n" +
1245
			"		<option key=\"org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsConsiderDescription\" value=\"return_tag\"/>\n" +
1245
			"		<option key=\"org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsDeprecatedRef\" value=\"disabled\"/>\n" +
1246
			"		<option key=\"org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsDeprecatedRef\" value=\"disabled\"/>\n" +
1246
			"		<option key=\"org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsNotVisibleRef\" value=\"disabled\"/>\n" +
1247
			"		<option key=\"org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsNotVisibleRef\" value=\"disabled\"/>\n" +
1247
			"		<option key=\"org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsVisibility\" value=\"public\"/>\n" +
1248
			"		<option key=\"org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsVisibility\" value=\"public\"/>\n" +
Lines 1298-1306 Link Here
1298
			"	</options>\n" +
1299
			"	</options>\n" +
1299
			"	<classpaths>NORMALIZED SECTION</classpaths>\n" +
1300
			"	<classpaths>NORMALIZED SECTION</classpaths>\n" +
1300
			"	<sources>\n" +
1301
			"	<sources>\n" +
1301
			"		<source output=\"---OUTPUT_DIR_PLACEHOLDER---\" path=\"---OUTPUT_DIR_PLACEHOLDER---" + File.separator + "X.java\">\n" +
1302
			"		<source output=\"---OUTPUT_DIR_PLACEHOLDER---\" path=\"---OUTPUT_DIR_PLACEHOLDER---\\X.java\">\n" +
1302
			"			<problems errors=\"1\" problems=\"1\" warnings=\"0\">\n" +
1303
			"			<problems errors=\"1\" problems=\"1\" warnings=\"0\">\n" +
1303
			"				<problem categoryID=\"40\" charEnd=\"28\" charStart=\"25\" id=\"UndefinedType\" line=\"3\" problemID=\"16777218\" severity=\"ERROR\">\n" +
1304
			"				<problem categoryID=\"40\" charEnd=\"28\" charStart=\"25\" id=\"UndefinedType\" line=\"3\" optionKey=\"org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsConsiderDescription\" problemID=\"16777218\" severity=\"ERROR\">\n" +
1304
			"					<message value=\"Zork cannot be resolved to a type\"/>\n" +
1305
			"					<message value=\"Zork cannot be resolved to a type\"/>\n" +
1305
			"					<source_context sourceEnd=\"3\" sourceStart=\"0\" value=\"Zork z;\"/>\n" +
1306
			"					<source_context sourceEnd=\"3\" sourceStart=\"0\" value=\"Zork z;\"/>\n" +
1306
			"					<arguments>\n" +
1307
			"					<arguments>\n" +
Lines 1308-1314 Link Here
1308
			"					</arguments>\n" +
1309
			"					</arguments>\n" +
1309
			"				</problem>\n" +
1310
			"				</problem>\n" +
1310
			"			</problems>\n" +
1311
			"			</problems>\n" +
1311
			"			<classfile path=\"---OUTPUT_DIR_PLACEHOLDER---{0}X.class\"/>\n" +
1312
			"			<classfile path=\"---OUTPUT_DIR_PLACEHOLDER---\\X.class\"/>\n" +
1312
			"		</source>\n" +
1313
			"		</source>\n" +
1313
			"	</sources>\n" +
1314
			"	</sources>\n" +
1314
			"	<stats>\n" +
1315
			"	<stats>\n" +
(-)src/org/eclipse/jdt/core/tests/compiler/regression/JavadocBugsTest.java (-9 / +222 lines)
Lines 20-25 Link Here
20
20
21
	String docCommentSupport = CompilerOptions.ENABLED;
21
	String docCommentSupport = CompilerOptions.ENABLED;
22
	String reportInvalidJavadoc = CompilerOptions.ERROR;
22
	String reportInvalidJavadoc = CompilerOptions.ERROR;
23
	String reportMissingJavadocDescription = CompilerOptions.RETURN_TAG;
23
	String reportInvalidJavadocVisibility = CompilerOptions.PRIVATE;
24
	String reportInvalidJavadocVisibility = CompilerOptions.PRIVATE;
24
	String reportMissingJavadocTags = CompilerOptions.ERROR;
25
	String reportMissingJavadocTags = CompilerOptions.ERROR;
25
	String reportMissingJavadocComments = null;
26
	String reportMissingJavadocComments = null;
Lines 68-73 Link Here
68
		} else {
69
		} else {
69
			options.put(CompilerOptions.OPTION_ReportMissingJavadocTags, reportInvalidJavadoc);
70
			options.put(CompilerOptions.OPTION_ReportMissingJavadocTags, reportInvalidJavadoc);
70
		}
71
		}
72
		if (reportMissingJavadocDescription != null) {
73
			options.put(CompilerOptions.OPTION_ReportMissingJavadocTagDescription, this.reportMissingJavadocDescription);
74
		} else {
75
			options.put(CompilerOptions.OPTION_ReportMissingJavadocTagDescription, CompilerOptions.RETURN_TAG);
76
		}
71
		options.put(CompilerOptions.OPTION_ReportFieldHiding, CompilerOptions.IGNORE);
77
		options.put(CompilerOptions.OPTION_ReportFieldHiding, CompilerOptions.IGNORE);
72
		options.put(CompilerOptions.OPTION_ReportSyntheticAccessEmulation, CompilerOptions.IGNORE);
78
		options.put(CompilerOptions.OPTION_ReportSyntheticAccessEmulation, CompilerOptions.IGNORE);
73
		options.put(CompilerOptions.OPTION_ReportDeprecation, reportDeprecation);
79
		options.put(CompilerOptions.OPTION_ReportDeprecation, reportDeprecation);
Lines 2253-2274 Link Here
2253
				"1. ERROR in X.java (at line 2)\n" + 
2259
				"1. ERROR in X.java (at line 2)\n" + 
2254
				"	/**@return*/\n" + 
2260
				"	/**@return*/\n" + 
2255
				"	    ^^^^^^\n" + 
2261
				"	    ^^^^^^\n" + 
2256
				"Javadoc: Missing return type description\n" + 
2262
				"Javadoc: Description expected after return tag\n" + 
2257
				"----------\n" + 
2263
				"----------\n" + 
2258
				"2. ERROR in X.java (at line 4)\n" + 
2264
				"2. ERROR in X.java (at line 4)\n" + 
2259
				"	/**@return        */\n" + 
2265
				"	/**@return        */\n" + 
2260
				"	    ^^^^^^\n" + 
2266
				"	    ^^^^^^\n" + 
2261
				"Javadoc: Missing return type description\n" + 
2267
				"Javadoc: Description expected after return tag\n" + 
2262
				"----------\n" + 
2268
				"----------\n" + 
2263
				"3. ERROR in X.java (at line 6)\n" + 
2269
				"3. ERROR in X.java (at line 6)\n" + 
2264
				"	/**@return****/\n" + 
2270
				"	/**@return****/\n" + 
2265
				"	    ^^^^^^\n" + 
2271
				"	    ^^^^^^\n" + 
2266
				"Javadoc: Missing return type description\n" + 
2272
				"Javadoc: Description expected after return tag\n" + 
2267
				"----------\n" + 
2273
				"----------\n" + 
2268
				"4. ERROR in X.java (at line 9)\n" + 
2274
				"4. ERROR in X.java (at line 9)\n" + 
2269
				"	*	@return\n" + 
2275
				"	*	@return\n" + 
2270
				"	 	 ^^^^^^\n" + 
2276
				"	 	 ^^^^^^\n" + 
2271
				"Javadoc: Missing return type description\n" + 
2277
				"Javadoc: Description expected after return tag\n" + 
2272
				"----------\n"
2278
				"----------\n"
2273
		);
2279
		);
2274
	}
2280
	}
Lines 2289-2300 Link Here
2289
				"1. ERROR in X.java (at line 3)\n" + 
2295
				"1. ERROR in X.java (at line 3)\n" + 
2290
				"	*	@return* */\n" + 
2296
				"	*	@return* */\n" + 
2291
				"	 	 ^^^^^^\n" + 
2297
				"	 	 ^^^^^^\n" + 
2292
				"Javadoc: Missing return type description\n" + 
2298
				"Javadoc: Description expected after return tag\n" + 
2293
				"----------\n" + 
2299
				"----------\n" + 
2294
				"2. ERROR in X.java (at line 5)\n" + 
2300
				"2. ERROR in X.java (at line 5)\n" + 
2295
				"	/**@return** **/\n" + 
2301
				"	/**@return** **/\n" + 
2296
				"	    ^^^^^^\n" + 
2302
				"	    ^^^^^^\n" + 
2297
				"Javadoc: Missing return type description\n" + 
2303
				"Javadoc: Description expected after return tag\n" + 
2298
				"----------\n"
2304
				"----------\n"
2299
		);
2305
		);
2300
	}
2306
	}
Lines 3032-3043 Link Here
3032
				"1. ERROR in X.java (at line 3)\n" + 
3038
				"1. ERROR in X.java (at line 3)\n" + 
3033
				"	*	@return\n" + 
3039
				"	*	@return\n" + 
3034
				"	 	 ^^^^^^\n" + 
3040
				"	 	 ^^^^^^\n" + 
3035
				"Javadoc: Missing return type description\n" + 
3041
				"Javadoc: Description expected after return tag\n" + 
3036
				"----------\n" + 
3042
				"----------\n" + 
3037
				"2. ERROR in X.java (at line 8)\n" + 
3043
				"2. ERROR in X.java (at line 8)\n" + 
3038
				"	*	@return      \n" + 
3044
				"	*	@return      \n" + 
3039
				"	 	 ^^^^^^\n" + 
3045
				"	 	 ^^^^^^\n" + 
3040
				"Javadoc: Missing return type description\n" + 
3046
				"Javadoc: Description expected after return tag\n" + 
3041
 				"----------\n"
3047
 				"----------\n"
3042
 		);
3048
 		);
3043
 	}
3049
 	}
Lines 5211-5217 Link Here
5211
			"1. ERROR in X.java (at line 21)\n" + 
5217
			"1. ERROR in X.java (at line 21)\n" + 
5212
			"	* @return\n" + 
5218
			"	* @return\n" + 
5213
			"	   ^^^^^^\n" + 
5219
			"	   ^^^^^^\n" + 
5214
			"Javadoc: Missing return type description\n" + 
5220
			"Javadoc: Description expected after return tag\n" + 
5215
			"----------\n"
5221
			"----------\n"
5216
		);
5222
		);
5217
	}
5223
	}
Lines 5773-5776 Link Here
5773
				"Javadoc: Missing tag for parameter anotherInt\n" + 
5779
				"Javadoc: Missing tag for parameter anotherInt\n" + 
5774
				"----------\n");
5780
				"----------\n");
5775
	}
5781
	}
5782
	
5783
	/**
5784
	 * @bug 73352: [Javadoc] Missing description should be warned for all tags
5785
	 * @see "https://bugs.eclipse.org/bugs/show_bug.cgi?id=73352"
5786
	 */
5787
	public void testBug73352a() {
5788
		String[] units = new String[] {
5789
			"X.java",			
5790
			"/**\n" +
5791
			"* @since\n" +
5792
			"* @author\n" +
5793
			"* @version\n" +
5794
			"*/\n" +
5795
			"public class X {\n" +
5796
			"	/**\n" +
5797
			"	 * @param  aParam\n" +
5798
			"	 * @return\n" +
5799
			"	 * @see\n" +
5800
			"	 * @since\n" +
5801
			"	 * @throws NullPointerException\n" +
5802
			"	 * @exception NullPointerException\n" +
5803
			"	 * @serial\n" +
5804
			"	 * @serialData\n" +
5805
			"	 * @serialField\n" +
5806
			"	 * @deprecated\n" +
5807
			"	 */\n" +
5808
			"	public String foo(String aParam) {\n" +
5809
			"		return new String();\n" +
5810
			"	}\n" +
5811
			"}\n"
5812
		};
5813
		reportInvalidJavadoc = CompilerOptions.WARNING;
5814
		reportMissingJavadocDescription = CompilerOptions.ALL_TAGS;
5815
		runNegativeTest(units,
5816
			"----------\n" + 
5817
			"1. WARNING in X.java (at line 2)\n" + 
5818
			"	* @since\n" + 
5819
			"	   ^^^^^\n" + 
5820
			"Javadoc: Description expected after this token\n" + 
5821
			"----------\n" + 
5822
			"2. WARNING in X.java (at line 3)\n" + 
5823
			"	* @author\n" + 
5824
			"	   ^^^^^^\n" + 
5825
			"Javadoc: Description expected after this token\n" + 
5826
			"----------\n" + 
5827
			"3. WARNING in X.java (at line 4)\n" + 
5828
			"	* @version\n" + 
5829
			"	   ^^^^^^^\n" + 
5830
			"Javadoc: Description expected after this token\n" + 
5831
			"----------\n" + 
5832
			"4. WARNING in X.java (at line 8)\n" + 
5833
			"	* @param  aParam\n" + 
5834
			"	          ^^^^^^\n" + 
5835
			"Javadoc: Description expected after this token\n" + 
5836
			"----------\n" + 
5837
			"5. WARNING in X.java (at line 9)\n" + 
5838
			"	* @return\n" + 
5839
			"	   ^^^^^^\n" + 
5840
			"Javadoc: Description expected after return tag\n" + 
5841
			"----------\n" + 
5842
			"6. WARNING in X.java (at line 10)\n" + 
5843
			"	* @see\n" + 
5844
			"	   ^^^\n" + 
5845
			"Javadoc: Missing reference\n" + 
5846
			"----------\n" + 
5847
			"7. WARNING in X.java (at line 11)\n" + 
5848
			"	* @since\n" + 
5849
			"	   ^^^^^\n" + 
5850
			"Javadoc: Description expected after this token\n" + 
5851
			"----------\n" + 
5852
			"8. WARNING in X.java (at line 12)\n" + 
5853
			"	* @throws NullPointerException\n" + 
5854
			"	 * @exception NullPointerException\n" + 
5855
			"	          ^^^^^^^^^^^^^^^^^^^^^\n" + 
5856
			"Javadoc: Description expected after this token\n" + 
5857
			"----------\n" + 
5858
			"9. WARNING in X.java (at line 13)\n" + 
5859
			"	* @exception NullPointerException\n" + 
5860
			"	 * @serial\n" + 
5861
			"	             ^^^^^^^^^^^^^^^^^^^^^\n" + 
5862
			"Javadoc: Description expected after this token\n" + 
5863
			"----------\n" + 
5864
			"10. WARNING in X.java (at line 14)\n" + 
5865
			"	* @serial\n" + 
5866
			"	   ^^^^^^\n" + 
5867
			"Javadoc: Description expected after this token\n" + 
5868
			"----------\n" + 
5869
			"11. WARNING in X.java (at line 15)\n" + 
5870
			"	* @serialData\n" + 
5871
			"	   ^^^^^^^^^^\n" + 
5872
			"Javadoc: Description expected after this token\n" + 
5873
			"----------\n" + 
5874
			"12. WARNING in X.java (at line 16)\n" + 
5875
			"	* @serialField\n" + 
5876
			"	   ^^^^^^^^^^^\n" + 
5877
			"Javadoc: Description expected after this token\n" + 
5878
			"----------\n" + 
5879
			"13. WARNING in X.java (at line 17)\n" + 
5880
			"	* @deprecated\n" + 
5881
			"	   ^^^^^^^^^^\n" + 
5882
			"Javadoc: Description expected after this token\n" + 
5883
			"----------\n"
5884
			);
5885
	}	
5886
	public void testBug73352b() {
5887
		String[] units = new String[] {
5888
			"X.java",			
5889
			"/**\n" +
5890
			"* @since 1.0\n" +
5891
			"* @author John Doe\n" +
5892
			"* @version 1.1\n" +
5893
			"*/\n" +
5894
			"public class X {\n" +
5895
			"	/**\n" +
5896
			"	 * @param  aParam comment\n" +
5897
			"	 * @return String\n" +
5898
			"	 * @see String\n" +
5899
			"	 * @since 1.1\n" +
5900
			"	 * @throws NullPointerException an exception\n" +
5901
			"	 * @exception NullPointerException an exception\n" +
5902
			"	 * @serial aSerial\n" +
5903
			"	 * @serialData aSerialData\n" +
5904
			"	 * @serialField aSerialField\n" +
5905
			"	 * @deprecated use another method\n" +
5906
			"	 */\n" +
5907
			"	public String foo(String aParam) {\n" +
5908
			"		return new String();\n" +
5909
			"	}\n" +
5910
			"}\n"
5911
		};
5912
		reportInvalidJavadoc = CompilerOptions.WARNING;
5913
		reportMissingJavadocDescription = CompilerOptions.ALL_TAGS;
5914
		runConformTest(units);
5915
	}
5916
	public void testBug73352c() {
5917
		String[] units = new String[] {
5918
			"X.java",			
5919
			"/**\n" +
5920
			"* @since\n" +
5921
			"* @author\n" +
5922
			"* @version\n" +
5923
			"*/\n" +
5924
			"public class X {\n" +
5925
			"	/**\n" +
5926
			"	 * @param  aParam\n" +
5927
			"	 * @return\n" +
5928
			"	 * @see\n" +
5929
			"	 * @since\n" +
5930
			"	 * @throws NullPointerException\n" +
5931
			"	 * @exception NullPointerException\n" +
5932
			"	 * @serial\n" +
5933
			"	 * @serialData\n" +
5934
			"	 * @serialField\n" +
5935
			"	 * @deprecated\n" +
5936
			"	 */\n" +
5937
			"	public String foo(String aParam) {\n" +
5938
			"		return new String();\n" +
5939
			"	}\n" +
5940
			"}\n"
5941
		};
5942
		reportInvalidJavadoc = CompilerOptions.WARNING;
5943
		reportMissingJavadocDescription = CompilerOptions.RETURN_TAG;
5944
		runNegativeTest(units,
5945
			"----------\n" + 
5946
			"1. WARNING in X.java (at line 9)\n" + 
5947
			"	* @return\n" + 
5948
			"	   ^^^^^^\n" + 
5949
			"Javadoc: Description expected after return tag\n" + 
5950
			"----------\n" + 
5951
			"2. WARNING in X.java (at line 10)\n" + 
5952
			"	* @see\n" + 
5953
			"	   ^^^\n" + 
5954
			"Javadoc: Missing reference\n" + 
5955
			"----------\n"
5956
			);
5957
	}
5958
	
5959
	public void testBug73352d() {
5960
		String[] units = new String[] {
5961
			"X.java",			
5962
			"/**\n" +
5963
			"* @since\n" +
5964
			"* @author\n" +
5965
			"* @version\n" +
5966
			"*/\n" +
5967
			"public class X {\n" +
5968
			"	/**\n" +
5969
			"	 * @param  aParam\n" +
5970
			"	 * @return\n" +
5971
			"	 * @see\n" +
5972
			"	 * @since\n" +
5973
			"	 * @throws NullPointerException\n" +
5974
			"	 * @exception NullPointerException\n" +
5975
			"	 * @serial\n" +
5976
			"	 * @serialData\n" +
5977
			"	 * @serialField\n" +
5978
			"	 * @deprecated\n" +
5979
			"	 */\n" +
5980
			"	public String foo(String aParam) {\n" +
5981
			"		return new String();\n" +
5982
			"	}\n" +
5983
			"}\n"
5984
		};
5985
		reportInvalidJavadoc = CompilerOptions.WARNING;
5986
		reportMissingJavadocDescription = CompilerOptions.NO_TAG;
5987
		runConformTest(units);
5988
	}	
5776
}
5989
}
(-)src/org/eclipse/jdt/core/tests/compiler/regression/EnumTest.java (-41 / +41 lines)
Lines 1240-1286 Link Here
1240
				"	public String val(Object x) { return x.toString(); }\n" +
1240
				"	public String val(Object x) { return x.toString(); }\n" +
1241
				"}\n"
1241
				"}\n"
1242
		},
1242
		},
1243
		"----------\n" +
1243
		"----------\n" + 
1244
			"1. ERROR in E.java (at line 3)\n" + 
1244
		"1. ERROR in E.java (at line 3)\n" + 
1245
			"	* @see e\n" + 
1245
		"	* @see e\n" + 
1246
			"	       ^\n" + 
1246
		"	       ^\n" + 
1247
			"Javadoc: e cannot be resolved to a type\n" + 
1247
		"Javadoc: e cannot be resolved to a type\n" + 
1248
			"----------\n" + 
1248
		"----------\n" + 
1249
			"2. ERROR in E.java (at line 4)\n" + 
1249
		"2. ERROR in E.java (at line 4)\n" + 
1250
			"	* @see #VALIDE\n" + 
1250
		"	* @see #VALIDE\n" + 
1251
			"	        ^^^^^^\n" + 
1251
		"	        ^^^^^^\n" + 
1252
			"Javadoc: VALIDE cannot be resolved or is not a field\n" + 
1252
		"Javadoc: VALIDE cannot be resolved or is not a field\n" + 
1253
			"----------\n" + 
1253
		"----------\n" + 
1254
			"3. ERROR in E.java (at line 8)\n" + 
1254
		"3. ERROR in E.java (at line 8)\n" + 
1255
			"	* @see E#test\n" + 
1255
		"	* @see E#test\n" + 
1256
			"	         ^^^^\n" + 
1256
		"	         ^^^^\n" + 
1257
			"Javadoc: test cannot be resolved or is not a field\n" + 
1257
		"Javadoc: test cannot be resolved or is not a field\n" + 
1258
			"----------\n" + 
1258
		"----------\n" + 
1259
			"4. ERROR in E.java (at line 9)\n" + 
1259
		"4. ERROR in E.java (at line 9)\n" + 
1260
			"	* @see EUX\n" + 
1260
		"	* @see EUX\n" + 
1261
			"	       ^^^\n" + 
1261
		"	       ^^^\n" + 
1262
			"Javadoc: EUX cannot be resolved to a type\n" + 
1262
		"Javadoc: EUX cannot be resolved to a type\n" + 
1263
			"----------\n" + 
1263
		"----------\n" + 
1264
			"5. ERROR in E.java (at line 13)\n" + 
1264
		"5. ERROR in E.java (at line 13)\n" + 
1265
			"	* @param obj the object\n" + 
1265
		"	* @param obj the object\n" + 
1266
			"	         ^^^\n" + 
1266
		"	         ^^^\n" + 
1267
			"Javadoc: Parameter obj is not declared\n" + 
1267
		"Javadoc: Parameter obj is not declared\n" + 
1268
			"----------\n" + 
1268
		"----------\n" + 
1269
			"6. ERROR in E.java (at line 14)\n" + 
1269
		"6. ERROR in E.java (at line 14)\n" + 
1270
			"	* @return\n" + 
1270
		"	* @return\n" + 
1271
			"	   ^^^^^^\n" + 
1271
		"	   ^^^^^^\n" + 
1272
			"Javadoc: Missing return type description\n" + 
1272
		"Javadoc: Description expected after return tag\n" + 
1273
			"----------\n" + 
1273
		"----------\n" + 
1274
			"7. ERROR in E.java (at line 15)\n" + 
1274
		"7. ERROR in E.java (at line 15)\n" + 
1275
			"	* @see Objet\n" + 
1275
		"	* @see Objet\n" + 
1276
			"	       ^^^^^\n" + 
1276
		"	       ^^^^^\n" + 
1277
			"Javadoc: Objet cannot be resolved to a type\n" + 
1277
		"Javadoc: Objet cannot be resolved to a type\n" + 
1278
			"----------\n" + 
1278
		"----------\n" + 
1279
			"8. ERROR in E.java (at line 17)\n" + 
1279
		"8. ERROR in E.java (at line 17)\n" + 
1280
			"	public String val(Object x) { return x.toString(); }\n" + 
1280
		"	public String val(Object x) { return x.toString(); }\n" + 
1281
			"	                         ^\n" + 
1281
		"	                         ^\n" + 
1282
			"Javadoc: Missing tag for parameter x\n" + 
1282
		"Javadoc: Missing tag for parameter x\n" + 
1283
			"----------\n"
1283
		"----------\n"
1284
	);
1284
	);
1285
}
1285
}
1286
public void test042() {
1286
public void test042() {

Return to bug 73352