-
Bug
-
Resolution: Fixed
-
P4
-
None
-
master
Thomas Fitzsimmons noticed this issue in https://github.com/openjdk/jdk17u-dev/pull/2955
BasicAnnoTests uses @Test annotations for test cases, which a 'posn' representation the expected location of an annotation to check for. Some tests have multiple @Test annotations with the same position:
@Test(posn=0, annoType = TA.class, expect = "70")
@Test(posn=0, annoType = TB.class, expect = "71")
@TA(70) @TB(71) String f;
The tests creates a map indexed by posn, so if multiple annotations have the same posn only one of them is processed: https://github.com/openjdk/jdk/blame/325a2c3f76a45248e6f8baa63477db15e55be705/test/langtools/tools/javac/processing/model/type/BasicAnnoTests.java#L174-L177
The following change should cause the test to fail, but doesn't, because the modified @Test annotation is not being processed due to this bug:
$ diff --git a/test/langtools/tools/javac/processing/model/type/BasicAnnoTests.java b/test/langtools/tools/javac/processing/model/type/BasicAnnoTests.java
index 904e4e78cad..01206faeb6d 100644
--- a/test/langtools/tools/javac/processing/model/type/BasicAnnoTests.java
+++ b/test/langtools/tools/javac/processing/model/type/BasicAnnoTests.java
@@ -697,7 +697,7 @@ class Inner8<@TA(50) T> {
<T> void m60(@TA(60) @TB(61) String t) { }
class Inner70<T> {
- @Test(posn=0, annoType = TA.class, expect = "70")
+ @Test(posn=0, annoType = TA.class, expect = "99")
@Test(posn=0, annoType = TB.class, expect = "71")
@TA(70) @TB(71) String f;
}
$ make test TEST="jtreg:test/langtools/tools/javac/processing/model/type/BasicAnnoTests.java"
...
Passed: tools/javac/processing/model/type/BasicAnnoTests.java
BasicAnnoTests uses @Test annotations for test cases, which a 'posn' representation the expected location of an annotation to check for. Some tests have multiple @Test annotations with the same position:
@Test(posn=0, annoType = TA.class, expect = "70")
@Test(posn=0, annoType = TB.class, expect = "71")
@TA(70) @TB(71) String f;
The tests creates a map indexed by posn, so if multiple annotations have the same posn only one of them is processed: https://github.com/openjdk/jdk/blame/325a2c3f76a45248e6f8baa63477db15e55be705/test/langtools/tools/javac/processing/model/type/BasicAnnoTests.java#L174-L177
The following change should cause the test to fail, but doesn't, because the modified @Test annotation is not being processed due to this bug:
$ diff --git a/test/langtools/tools/javac/processing/model/type/BasicAnnoTests.java b/test/langtools/tools/javac/processing/model/type/BasicAnnoTests.java
index 904e4e78cad..01206faeb6d 100644
--- a/test/langtools/tools/javac/processing/model/type/BasicAnnoTests.java
+++ b/test/langtools/tools/javac/processing/model/type/BasicAnnoTests.java
@@ -697,7 +697,7 @@ class Inner8<@TA(50) T> {
<T> void m60(@TA(60) @TB(61) String t) { }
class Inner70<T> {
- @Test(posn=0, annoType = TA.class, expect = "70")
+ @Test(posn=0, annoType = TA.class, expect = "99")
@Test(posn=0, annoType = TB.class, expect = "71")
@TA(70) @TB(71) String f;
}
$ make test TEST="jtreg:test/langtools/tools/javac/processing/model/type/BasicAnnoTests.java"
...
Passed: tools/javac/processing/model/type/BasicAnnoTests.java
- links to
-
Commit(master) openjdk/jdk/d562d3c7
-
Review(master) openjdk/jdk17u-dev/3158
-
Review(master) openjdk/jdk21u-dev/1276
-
Review(master) openjdk/jdk/21998