--- a/langtools/test/tools/javac/modules/AnnotationProcessing.java Thu Jan 05 15:39:57 2017 -0800
+++ b/langtools/test/tools/javac/modules/AnnotationProcessing.java Fri Jan 06 14:16:45 2017 +0100
@@ -23,7 +23,7 @@
/**
* @test
- * @bug 8133884 8162711 8133896
+ * @bug 8133884 8162711 8133896 8172158
* @summary Verify that annotation processing works.
* @library /tools/lib
* @modules
@@ -979,6 +979,38 @@
}
}
+ @Test
+ public void testDisambiguateAnnotationsNoModules(Path base) throws Exception {
+ Path classes = base.resolve("classes");
+
+ Files.createDirectories(classes);
+
+ Path src = base.resolve("src");
+
+ tb.writeJavaFiles(src,
+ "package api; public @interface A {}",
+ "package api; public @interface B {}",
+ "package impl; import api.*; @A @B public class T {}");
+
+ List<String> log = new JavacTask(tb)
+ .options("-processor", SelectAnnotationATestAP.class.getName() + "," + SelectAnnotationBTestAP.class.getName(),
+ "-source", "8", "-target", "8")
+ .outdir(classes)
+ .files(findJavaFiles(src))
+ .run()
+ .writeAll()
+ .getOutputLines(OutputKind.STDERR);
+
+ List<String> expected = Arrays.asList("SelectAnnotationATestAP",
+ "SelectAnnotationBTestAP",
+ "SelectAnnotationATestAP",
+ "SelectAnnotationBTestAP");
+
+ if (!expected.equals(log)) {
+ throw new AssertionError("Output does not match; output: " + log);
+ }
+ }
+
@SupportedAnnotationTypes("m2x/api.A")
public static final class SelectAnnotationATestAP extends AbstractProcessor {