geforkt von Mirrors/Paper
Fix method reflection remapping with null parameter types passed
Fixes #11052
Dieser Commit ist enthalten in:
Ursprung
360b879fa0
Commit
76d8369ad4
@ -395,7 +395,7 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
|
||||
+ }
|
||||
+
|
||||
+ @Override
|
||||
+ protected String mapDeclaredMethodName(final Class<?> clazz, final String name, final Class<?>... parameterTypes) {
|
||||
+ protected String mapDeclaredMethodName(final Class<?> clazz, final String name, final Class<?> @Nullable ... parameterTypes) {
|
||||
+ final @Nullable Map<String, String> mapping = this.strippedMethodMappings.get(clazz.getName());
|
||||
+ if (mapping == null) {
|
||||
+ return name;
|
||||
@ -404,7 +404,7 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
|
||||
+ }
|
||||
+
|
||||
+ @Override
|
||||
+ protected String mapMethodName(final Class<?> clazz, final String name, final Class<?>... parameterTypes) {
|
||||
+ protected String mapMethodName(final Class<?> clazz, final String name, final Class<?> @Nullable ... parameterTypes) {
|
||||
+ final @Nullable String mapped = this.findMappedMethodName(clazz, name, parameterTypes);
|
||||
+ return mapped != null ? mapped : name;
|
||||
+ }
|
||||
@ -424,7 +424,7 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
|
||||
+ return mapped != null ? mapped : name;
|
||||
+ }
|
||||
+
|
||||
+ private @Nullable String findMappedMethodName(final Class<?> clazz, final String name, final Class<?>... parameterTypes) {
|
||||
+ private @Nullable String findMappedMethodName(final Class<?> clazz, final String name, final Class<?> @Nullable ... parameterTypes) {
|
||||
+ final Map<String, String> map = this.strippedMethodMappings.get(clazz.getName());
|
||||
+ @Nullable String mapped = null;
|
||||
+ if (map != null) {
|
||||
@ -474,11 +474,15 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
|
||||
+ return mapped;
|
||||
+ }
|
||||
+
|
||||
+ private static String strippedMethodKey(final String methodName, final Class<?>... parameterTypes) {
|
||||
+ private static String strippedMethodKey(final String methodName, final Class<?> @Nullable ... parameterTypes) {
|
||||
+ return methodName + parameterDescriptor(parameterTypes);
|
||||
+ }
|
||||
+
|
||||
+ private static String parameterDescriptor(final Class<?>... parameterTypes) {
|
||||
+ private static String parameterDescriptor(final Class<?> @Nullable ... parameterTypes) {
|
||||
+ if (parameterTypes == null) {
|
||||
+ // Null parameterTypes is treated as an empty array
|
||||
+ return "()";
|
||||
+ }
|
||||
+ final StringBuilder builder = new StringBuilder();
|
||||
+ builder.append('(');
|
||||
+ for (final Class<?> parameterType : parameterTypes) {
|
||||
|
Laden…
In neuem Issue referenzieren
Einen Benutzer sperren