IllegalArgumentException: имя для аргумента типа [java.lang.Long] не указано, а информация об имени параметра недоступна через отражение. Убедитесь, что компилятор использует флаг '-parameters'.
Опция компилятора -parameters уже передана (проверено в журналах отладки Gradle, вероятно, из подключаемого модуля Spring Boot), и когда я запускаю javap для проверки скомпилированного класса, я вижу раздел метаданных MethodParameters с правильными аргументами метода.
Кроме того, это Кажется, проблема возникает периодически (как наблюдалось в Datadog). Как и в случае, вызовы иногда завершаются успешно, а иногда завершаются неудачно, даже для одних и тех же методов.
Мы используем закрепленные номера версий Spring (3.3.13) и его зависимостей, поэтому маловероятно, что это какое-то изменение в версии Spring. Кроме того, это было изменено давным-давно, поэтому не должно быть основной причиной.
Это оставляет мне две теории:
- Ошибка в JVM. Мы используем OpenJDK версии 17.0.15+6-alpine-r0, хотя я не могу найти никаких открытых проблем для этой версии.
- Ява-агент Datadog, который мы используем для инструментирования, каким-то образом портит метаданные MethodParameters классов контроллера.
Подробнее здесь: https://stackoverflow.com/questions/798 ... hod-parame
Мобильная версия