Espen Andreassen created CAMEL-15457:
----------------------------------------
Summary: camel-micrometer: NullPonter exception triggered by
EventNotifier
Key: CAMEL-15457
URL: https://issues.apache.org/jira/browse/CAMEL-15457
Project: Camel
Issue Type: Bug
Components: camel-micrometer
Reporter: Espen Andreassen
A recent [comit|[https://github.com/apache/camel/pull/3976]] causes NullPointer
exceptions in some circumstances, though they are caught and logged as "WARN".
Output from the test testCamelRouteEvents() in
MicrometerExchangeEventNotifierTest in master branch:
{noformat}
11:10:11.927 [main] WARN org.apache.camel.support.EventHelper - Error notifying
event ID-devbox-1598260211922-0-1 exchange
Exchange[ID-devbox-1598260211922-0-1] sending to: direct://in. This exception
will be ignored.11:10:11.927 [main] ERROR org.apache.camel.support.EventHelper
- Error notifying event ID-devbox-1598260211922-0-1 exchange
Exchange[ID-devbox-1598260211922-0-1] sending to: direct://in. This exception
will be ignored.java.lang.NullPointerException: null at
java.util.Objects.requireNonNull(Objects.java:221) ~[?:?] at
io.micrometer.core.instrument.ImmutableTag.<init>(ImmutableTag.java:35)
~[micrometer-core-1.5.4.jar:1.5.4] at
io.micrometer.core.instrument.Tag.of(Tag.java:29)
~[micrometer-core-1.5.4.jar:1.5.4] at
io.micrometer.core.instrument.Tags.of(Tags.java:254)
~[micrometer-core-1.5.4.jar:1.5.4] at
org.apache.camel.component.micrometer.eventnotifier.MicrometerExchangeEventNotifierNamingStrategy.getInflightExchangesTags(MicrometerExchangeEventNotifierNamingStrategy.java:58)
~[classes/:?] at
org.apache.camel.component.micrometer.eventnotifier.MicrometerExchangeEventNotifier.handleExchangeEvent(MicrometerExchangeEventNotifier.java:80)
~[classes/:?] at
org.apache.camel.component.micrometer.eventnotifier.MicrometerExchangeEventNotifier.notify(MicrometerExchangeEventNotifier.java:65)
~[classes/:?] at
org.apache.camel.support.EventHelper.doNotifyEvent(EventHelper.java:1236)
~[classes/:?] at
org.apache.camel.support.EventHelper.notifyExchangeSending(EventHelper.java:700)
~[classes/:?]{noformat}
The problem is that the MicrometerExchangeEventNotifier tries to build/update a
metric on inflight exchanges in a route based on an ExchangeEvent with no
associated fromRoute/fromRouteId. Events such as "ExchangeSendingEvent", as is
created in the test, is an example of such an ExchangeEvent.
--
This message was sent by Atlassian Jira
(v8.3.4#803005)