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.

Другие вопросы по тегам