Program: 12877
Project: 12877
Buggy source:
/** 
 * Returns the names of the annotation types supported by this processor.  An element of the result may be the canonical (fully qualified) name of a supported annotation type. Alternately it may be of the form &quot;<code><i>name</i>.*</code>&quot; representing the set of all annotation types with canonical names beginning with &quot;<code><i>name.</i></code>&quot;. In either of those cases, the name of the annotation type can be optionally preceded by a module name followed by a   {@code "/"} character. For example, if a processor supports {@code "a.B"}, this can include multiple annotation types named   {@code a.B} which reside in different modules. To only support {@code a.B} in the {@code Foo} module, instead use {@code "Foo/a.B"}. If a module name is included, only an annotation in that module is matched. In particular, if a module name is given in an environment where modules are not supported, such as an annotation processing environment configured for a   {@linkplain javax.annotation.processing.ProcessingEnvironment#getSourceVersion source version} without modules, then the annotation types witha module name do <em>not</em> match. Finally,  {@code "*"} by itself represents the set of allannotation types, including the empty set.  Note that a processor should not claim  {@code "*"} unless it is actuallyprocessing all files; claiming unnecessary annotations may cause a performance slowdown in some environments. <p>Each string returned in the set must be accepted by the following grammar: <blockquote> <dl> <dt><i>SupportedAnnotationTypeString:</i> <dd><i>ModulePrefix</i><sub><i>opt</i></sub> <i>TypeName</i> <i>DotStar</i><sub><i>opt</i></sub> <dd><code>*</code> <dt><i>ModulePrefix:</i> <dd><i>TypeName</i> <code>/</code> <dt><i>DotStar:</i> <dd><code>.</code> <code>*</code> </dl> </blockquote> where <i>TypeName</i> is as defined in <cite>The Java&trade; Language Specification</cite>.
 * @apiNote When running in an environment which supports modules,processors are encouraged to include the module prefix when describing their supported annotation types. The method  {@link AbstractProcessor.getSupportedAnnotationTypes AbstractProcessor.getSupportedAnnotationTypes} provides supportfor stripping off the module prefix when running in an environment without modules.
 * @return the names of the annotation types supported by this processor
 * @see javax.annotation.processing.SupportedAnnotationTypes
 * @jls 3.8 Identifiers
 * @jls 6.5.5 Meaning of Type Names
 */
Set<String> getSupportedAnnotationTypes();

Fixed version (ground truth):
/** 
 * Returns the names of the annotation types supported by this processor.  An element of the result may be the canonical (fully qualified) name of a supported annotation type. Alternately it may be of the form &quot;<code><i>name</i>.*</code>&quot; representing the set of all annotation types with canonical names beginning with &quot;<code><i>name.</i></code>&quot;. In either of those cases, the name of the annotation type can be optionally preceded by a module name followed by a   {@code "/"} character. For example, if a processor supports {@code "a.B"}, this can include multiple annotation types named   {@code a.B} which reside in different modules. To only support {@code a.B} in the {@code Foo} module, instead use {@code "Foo/a.B"}. If a module name is included, only an annotation in that module is matched. In particular, if a module name is given in an environment where modules are not supported, such as an annotation processing environment configured for a   {@linkplain javax.annotation.processing.ProcessingEnvironment#getSourceVersion source version} without modules, then the annotation types witha module name do <em>not</em> match. Finally,  {@code "*"} by itself represents the set of allannotation types, including the empty set.  Note that a processor should not claim  {@code "*"} unless it is actuallyprocessing all files; claiming unnecessary annotations may cause a performance slowdown in some environments. <p>Each string returned in the set must be accepted by the following grammar: <blockquote> <dl> <dt><i>SupportedAnnotationTypeString:</i> <dd><i>ModulePrefix</i><sub><i>opt</i></sub> <i>TypeName</i> <i>DotStar</i><sub><i>opt</i></sub> <dd><code>*</code> <dt><i>ModulePrefix:</i> <dd><i>TypeName</i> <code>/</code> <dt><i>DotStar:</i> <dd><code>.</code> <code>*</code> </dl> </blockquote> where <i>TypeName</i> is as defined in <cite>The Java&trade; Language Specification</cite>.
 * @apiNote When running in an environment which supports modules,processors are encouraged to include the module prefix when describing their supported annotation types. The method  {@link AbstractProcessor#getSupportedAnnotationTypes AbstractProcessor.getSupportedAnnotationTypes} provides supportfor stripping off the module prefix when running in an environment without modules.
 * @return the names of the annotation types supported by this processor
 * @see javax.annotation.processing.SupportedAnnotationTypes
 * @jls 3.8 Identifiers
 * @jls 6.5.5 Meaning of Type Names
 */
Set<String> getSupportedAnnotationTypes();