当扩展 class 时,基于 class 的 metrics-aspectj @Timed 方法抛出 NullPointerException
metrics-aspectj @Timed method on base class throws NullPointerException when class is extended
我一直在使用 metrics-aspectj 库,发现注释捕获性能指标的方法非常方便。最近我在尝试扩展带有注释方法的 class 时碰壁了。这是我看到的:
@Metrics
public class Base {
public void something_not_timed() {
...
}
@Timed(name="method1-ProcessTime")
public void method1() {
...
}
}
我一直在生产中使用 Base class,没有任何问题。现在我需要扩展这个 class.
public class Derived extends Base {
@Override
public void something_not_timed() {
....
}
}
如您所见,method1() 未被覆盖。但问题是,每当我在 Derived class 中使用 method1() 时,我都会在 method1_aroundBody1$advice().
中得到 NullPointerException
我不熟悉 AspectJ,所以无法真正弄清楚我缺少什么,任何建议将不胜感激。
谢谢!
此致,
卡里
这是 metrics-aspectj 中的错误。不管怎样,你已经为它开了一张票,我注意到了。我已经为这个问题创建了一个小的演示存储库,并在 my answer to your GitHub ticket.
中对其进行了更详细的描述。
我一直在使用 metrics-aspectj 库,发现注释捕获性能指标的方法非常方便。最近我在尝试扩展带有注释方法的 class 时碰壁了。这是我看到的:
@Metrics
public class Base {
public void something_not_timed() {
...
}
@Timed(name="method1-ProcessTime")
public void method1() {
...
}
}
我一直在生产中使用 Base class,没有任何问题。现在我需要扩展这个 class.
public class Derived extends Base {
@Override
public void something_not_timed() {
....
}
}
如您所见,method1() 未被覆盖。但问题是,每当我在 Derived class 中使用 method1() 时,我都会在 method1_aroundBody1$advice().
中得到 NullPointerException我不熟悉 AspectJ,所以无法真正弄清楚我缺少什么,任何建议将不胜感激。
谢谢!
此致, 卡里
这是 metrics-aspectj 中的错误。不管怎样,你已经为它开了一张票,我注意到了。我已经为这个问题创建了一个小的演示存储库,并在 my answer to your GitHub ticket.
中对其进行了更详细的描述。