metrics-aspectj Метод @Timed для базового класса создает исключение NullPointerException при расширении класса
Я использовал библиотеку metrics-aspectj и нашел очень удобным аннотировать метод для сбора метрик производительности. Недавно я попал в стену, когда пытался расширить класс с аннотированными методами. Вот что я вижу:
@Metrics
public class Base {
public void something_not_timed() {
...
}
@Timed(name="method1-ProcessTime")
public void method1() {
...
}
}
Я использую базовый класс в производстве без проблем. Теперь мне нужно расширить этот класс.
public class Derived extends Base {
@Override
public void something_not_timed() {
....
}
}
Как видите, method1() не переопределяется. Но проблема в том, что всякий раз, когда я использую method1 () в классе Derived, я получаю исключение NullPointerException в method1_aroundBody1$advice().
Я не знаком с AspectJ, поэтому не могу понять, что мне не хватает, любой совет будет высоко оценен.
Спасибо!
С уважением, Кэри
1 ответ
Это ошибка в метрике-аспекте. Вы все равно открыли билет на это, я заметил. Я создал небольшой демонстрационный репозиторий для этой проблемы и более подробно описал его в своем ответе на ваш билет на GitHub.