This is an automated email from the ASF dual-hosted git repository.

wusheng pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/skywalking-graalvm-distro.git


The following commit(s) were added to refs/heads/main by this push:
     new f52364f  Fix hierarchy rule name lookup for v2 class naming convention
f52364f is described below

commit f52364f74d5ddc394928bbc87ee9b2493934d233
Author: Wu Sheng <[email protected]>
AuthorDate: Tue Mar 10 07:58:51 2026 +0800

    Fix hierarchy rule name lookup for v2 class naming convention
    
    The v2 HierarchyRuleClassGenerator names classes as
    hierarchy_definition_<ruleName> (e.g. hierarchy_definition_name).
    The loadPrecompiledRules() method was stripping "HierarchyRule_"
    prefix (v1 convention) instead of "hierarchy_definition_" prefix,
    causing all E2E tests to fail at startup.
---
 .../oap/server/core/config/HierarchyDefinitionService.java         | 7 ++++---
 1 file changed, 4 insertions(+), 3 deletions(-)

diff --git 
a/oap-libs-for-graalvm/server-core-for-graalvm/src/main/java/org/apache/skywalking/oap/server/core/config/HierarchyDefinitionService.java
 
b/oap-libs-for-graalvm/server-core-for-graalvm/src/main/java/org/apache/skywalking/oap/server/core/config/HierarchyDefinitionService.java
index c0f46f2..1589f78 100644
--- 
a/oap-libs-for-graalvm/server-core-for-graalvm/src/main/java/org/apache/skywalking/oap/server/core/config/HierarchyDefinitionService.java
+++ 
b/oap-libs-for-graalvm/server-core-for-graalvm/src/main/java/org/apache/skywalking/oap/server/core/config/HierarchyDefinitionService.java
@@ -90,9 +90,10 @@ public class HierarchyDefinitionService implements 
org.apache.skywalking.oap.ser
                 Class<?> clazz = Class.forName(fqcn);
                 BiFunction<Service, Service, Boolean> rule =
                     (BiFunction<Service, Service, Boolean>) 
clazz.getDeclaredConstructor().newInstance();
-                // Extract rule name: HierarchyRule_<sanitizedName> -> reverse 
sanitize
-                String ruleName = simpleName.startsWith("HierarchyRule_")
-                    ? 
simpleName.substring("HierarchyRule_".length()).replace('_', '-')
+                // Extract rule name: hierarchy_definition_<sanitizedName> -> 
reverse sanitize
+                // e.g. hierarchy_definition_lower_short_name_remove_ns -> 
lower-short-name-remove-ns
+                String ruleName = 
simpleName.startsWith("hierarchy_definition_")
+                    ? 
simpleName.substring("hierarchy_definition_".length()).replace('_', '-')
                     : simpleName;
                 rules.put(ruleName, rule);
                 log.debug("Loaded pre-compiled hierarchy rule: {} -> {}", 
ruleName, fqcn);

Reply via email to