@@ -959,7 +959,7 @@ public void test045() {
959959 * }
960960 * }
961961 */
962- this .runConformTest (
962+ this .runNegativeTest (
963963 new String [] {
964964 "_X.java" ,
965965 "import java.lang.reflect.Field;\n " +
@@ -993,7 +993,122 @@ public void test045() {
993993 " }\n " +
994994 "}"
995995 },
996- "SUCCESS" );
996+ "----------\n " +
997+ "1. ERROR in _X.java (at line 5)\n " +
998+ " String i\\ u0001;\n " +
999+ " ^^^^^^^\n " +
1000+ "Duplicate local variable i\n " +
1001+ "----------\n " +
1002+ "2. ERROR in _X.java (at line 6)\n " +
1003+ " String i\\ u0002;\n " +
1004+ " ^^^^^^^\n " +
1005+ "Duplicate local variable i\n " +
1006+ "----------\n " +
1007+ "3. ERROR in _X.java (at line 7)\n " +
1008+ " String i\\ u0003;\n " +
1009+ " ^^^^^^^\n " +
1010+ "Duplicate local variable i\n " +
1011+ "----------\n " +
1012+ "4. ERROR in _X.java (at line 8)\n " +
1013+ " String i\\ u0004;\n " +
1014+ " ^^^^^^^\n " +
1015+ "Duplicate local variable i\n " +
1016+ "----------\n " +
1017+ "5. ERROR in _X.java (at line 9)\n " +
1018+ " String i\\ u0005;\n " +
1019+ " ^^^^^^^\n " +
1020+ "Duplicate local variable i\n " +
1021+ "----------\n " +
1022+ "6. ERROR in _X.java (at line 10)\n " +
1023+ " String i\\ u0006;\n " +
1024+ " ^^^^^^^\n " +
1025+ "Duplicate local variable i\n " +
1026+ "----------\n " +
1027+ "7. ERROR in _X.java (at line 11)\n " +
1028+ " String i\\ u0007;\n " +
1029+ " ^^^^^^^\n " +
1030+ "Duplicate local variable i\n " +
1031+ "----------\n " +
1032+ "8. ERROR in _X.java (at line 12)\n " +
1033+ " String i\\ u0008;\n " +
1034+ " ^^^^^^^\n " +
1035+ "Duplicate local variable i\n " +
1036+ "----------\n " +
1037+ "9. ERROR in _X.java (at line 13)\n " +
1038+ " String i\\ u000e;\n " +
1039+ " ^^^^^^^\n " +
1040+ "Duplicate local variable i\n " +
1041+ "----------\n " +
1042+ "10. ERROR in _X.java (at line 14)\n " +
1043+ " String i\\ u000f;\n " +
1044+ " ^^^^^^^\n " +
1045+ "Duplicate local variable i\n " +
1046+ "----------\n " +
1047+ "11. ERROR in _X.java (at line 15)\n " +
1048+ " String i\\ u0010;\n " +
1049+ " ^^^^^^^\n " +
1050+ "Duplicate local variable i\n " +
1051+ "----------\n " +
1052+ "12. ERROR in _X.java (at line 16)\n " +
1053+ " String i\\ u0011;\n " +
1054+ " ^^^^^^^\n " +
1055+ "Duplicate local variable i\n " +
1056+ "----------\n " +
1057+ "13. ERROR in _X.java (at line 17)\n " +
1058+ " String i\\ u0012;\n " +
1059+ " ^^^^^^^\n " +
1060+ "Duplicate local variable i\n " +
1061+ "----------\n " +
1062+ "14. ERROR in _X.java (at line 18)\n " +
1063+ " String i\\ u0013;\n " +
1064+ " ^^^^^^^\n " +
1065+ "Duplicate local variable i\n " +
1066+ "----------\n " +
1067+ "15. ERROR in _X.java (at line 19)\n " +
1068+ " String i\\ u0014;\n " +
1069+ " ^^^^^^^\n " +
1070+ "Duplicate local variable i\n " +
1071+ "----------\n " +
1072+ "16. ERROR in _X.java (at line 20)\n " +
1073+ " String i\\ u0015;\n " +
1074+ " ^^^^^^^\n " +
1075+ "Duplicate local variable i\n " +
1076+ "----------\n " +
1077+ "17. ERROR in _X.java (at line 21)\n " +
1078+ " String i\\ u0016;\n " +
1079+ " ^^^^^^^\n " +
1080+ "Duplicate local variable i\n " +
1081+ "----------\n " +
1082+ "18. ERROR in _X.java (at line 22)\n " +
1083+ " String i\\ u0017;\n " +
1084+ " ^^^^^^^\n " +
1085+ "Duplicate local variable i\n " +
1086+ "----------\n " +
1087+ "19. ERROR in _X.java (at line 23)\n " +
1088+ " String i\\ u0018;\n " +
1089+ " ^^^^^^^\n " +
1090+ "Duplicate local variable i\n " +
1091+ "----------\n " +
1092+ "20. ERROR in _X.java (at line 24)\n " +
1093+ " String i\\ u0019;\n " +
1094+ " ^^^^^^^\n " +
1095+ "Duplicate local variable i\n " +
1096+ "----------\n " +
1097+ "21. ERROR in _X.java (at line 25)\n " +
1098+ " String i\\ u001a;\n " +
1099+ " ^^^^^^^\n " +
1100+ "Duplicate local variable i\n " +
1101+ "----------\n " +
1102+ "22. ERROR in _X.java (at line 26)\n " +
1103+ " String i\\ u001b;\n " +
1104+ " ^^^^^^^\n " +
1105+ "Duplicate local variable i\n " +
1106+ "----------\n " +
1107+ "23. ERROR in _X.java (at line 27)\n " +
1108+ " String i\\ u007f;\n " +
1109+ " ^^^^^^^\n " +
1110+ "Duplicate local variable i\n " +
1111+ "----------\n " );
9971112 }
9981113 // https://bugs.eclipse.org/bugs/show_bug.cgi?id=264950
9991114 public void test046 () {
@@ -1881,5 +1996,72 @@ public void testIssue4674() {
18811996 assertTrue ("Should not have InvalidInputException" , false );
18821997 }
18831998 }
1884-
1999+ public void testIssue4001_1 () {
2000+ this .runConformTest (
2001+ new String [] {
2002+ "X.java" ,
2003+ """
2004+ public class X {
2005+ String fieldWithUnicode\u0001 Char = "";
2006+ public static void main(String[] args) {
2007+ try {
2008+ Class<?> clazz = Class.forName("X");
2009+ java.lang.reflect.Method method = clazz.getDeclaredMethod("methodWithUnicode\u0001 Char");
2010+ System.out.println("Method found: " + method.getName());
2011+ } catch (ClassNotFoundException e) {
2012+ System.out.println("Class not found.");
2013+ } catch (NoSuchMethodException e) {
2014+ System.out.println("Method not found.");
2015+ }
2016+ try {
2017+ Class<?> clazz = Class.forName("X");
2018+ java.lang.reflect.Field method = clazz.getDeclaredField("fieldWithUnicode\u0001 Char");
2019+ System.out.println("Field found: " + method.getName());
2020+ } catch (ClassNotFoundException e) {
2021+ System.out.println("Class not found.");
2022+ } catch (NoSuchFieldException e) {
2023+ System.out.println("Field not found.");
2024+ }
2025+ }
2026+ public static void methodWithUnicode\u0001 Char() {
2027+ }
2028+ }""" ,
2029+ },
2030+ "Method not found.\n " +
2031+ "Field not found." );
2032+ }
2033+ public void testIssue4001_2 () {
2034+ this .runConformTest (
2035+ new String [] {
2036+ "X.java" ,
2037+ """
2038+ public class X {
2039+ String fieldWithUnicode\u0001 Char = "";
2040+ public static void main(String[] args) {
2041+ try {
2042+ Class<?> clazz = Class.forName("X");
2043+ java.lang.reflect.Method method = clazz.getDeclaredMethod("methodWithUnicodeChar");
2044+ System.out.println("Method found: " + method.getName());
2045+ } catch (ClassNotFoundException e) {
2046+ System.out.println("Class not found.");
2047+ } catch (NoSuchMethodException e) {
2048+ System.out.println("Method not found.");
2049+ }
2050+ try {
2051+ Class<?> clazz = Class.forName("X");
2052+ java.lang.reflect.Field method = clazz.getDeclaredField("fieldWithUnicodeChar");
2053+ System.out.println("Field found: " + method.getName());
2054+ } catch (ClassNotFoundException e) {
2055+ System.out.println("Class not found.");
2056+ } catch (NoSuchFieldException e) {
2057+ System.out.println("Field not found.");
2058+ }
2059+ }
2060+ public static void methodWithUnicode\u0001 Char() {
2061+ }
2062+ }""" ,
2063+ },
2064+ "Method found: methodWithUnicodeChar\n " +
2065+ "Field found: fieldWithUnicodeChar" );
2066+ }
18852067}
0 commit comments