From 69252ac73fdd2c9a2c7094171b96dacd6b95cbca Mon Sep 17 00:00:00 2001 From: 18867967 Date: Wed, 20 Dec 2023 11:05:06 +0300 Subject: [PATCH] Return correct name of action --- .../boot/support/BootStateMachineMonitor.java | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/spring-statemachine-autoconfigure/src/main/java/org/springframework/statemachine/boot/support/BootStateMachineMonitor.java b/spring-statemachine-autoconfigure/src/main/java/org/springframework/statemachine/boot/support/BootStateMachineMonitor.java index fc1b4a42d..6553884b1 100644 --- a/spring-statemachine-autoconfigure/src/main/java/org/springframework/statemachine/boot/support/BootStateMachineMonitor.java +++ b/spring-statemachine-autoconfigure/src/main/java/org/springframework/statemachine/boot/support/BootStateMachineMonitor.java @@ -1,5 +1,5 @@ /* - * Copyright 2016-2019 the original author or authors. + * Copyright 2016-2023 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -15,6 +15,7 @@ */ package org.springframework.statemachine.boot.support; +import java.lang.reflect.Field; import java.util.HashMap; import java.util.Map; import java.util.concurrent.TimeUnit; @@ -74,7 +75,7 @@ public void transition(StateMachine stateMachine, Transition transit @Override public void action(StateMachine stateMachine, Function, Mono> action, long duration) { - String actionName = actionFunctionToName(action); + String actionName = actionToName(action); getActionCounterBuilder(action).register(meterRegistry).increment(); getActionTimerBuilder(action).register(meterRegistry).record(duration, TimeUnit.MILLISECONDS); Map traceInfo = new HashMap<>(); @@ -135,11 +136,14 @@ private static String transitionToName(Transition transition) { } private static String actionToName(Function, Mono> action) { - return ObjectUtils.getDisplayString(action); - } - - private static String actionFunctionToName(Function, Mono> action) { - return ObjectUtils.getDisplayString(action); + try { + Field[] fields = action.getClass().getDeclaredFields(); + Field actionField = fields[0]; + actionField.setAccessible(true); + return actionField.get(action).getClass().getSimpleName(); + } catch (IllegalAccessException ex) { + return ObjectUtils.getDisplayString(action); + } } private static String nullStateId(State state) {