From 913331dabfa3b50efb6be2f2bf2dc2d11dd6021a Mon Sep 17 00:00:00 2001 From: kamaleshnneerasa Date: Fri, 5 Nov 2021 12:02:08 +0530 Subject: [PATCH 1/2] Bug fix regex should match _ --- .../rule/config/service/LabelApplicationRuleValidatorImpl.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/label-application-rule-config-service-impl/src/main/java/org/hypertrace/label/application/rule/config/service/LabelApplicationRuleValidatorImpl.java b/label-application-rule-config-service-impl/src/main/java/org/hypertrace/label/application/rule/config/service/LabelApplicationRuleValidatorImpl.java index fcd21b53..94439409 100644 --- a/label-application-rule-config-service-impl/src/main/java/org/hypertrace/label/application/rule/config/service/LabelApplicationRuleValidatorImpl.java +++ b/label-application-rule-config-service-impl/src/main/java/org/hypertrace/label/application/rule/config/service/LabelApplicationRuleValidatorImpl.java @@ -180,7 +180,7 @@ public void validateLabelExpression(Action.DynamicLabel dynamicLabel) { validKeys.add(tokenExtractionRule.getAlias()); } }); - Pattern pattern = Pattern.compile("\\{(\\\\}|[^}])*}"); + Pattern pattern = Pattern.compile("\\$\\{(\\\\}|[^}])*}"); Matcher matcher = pattern.matcher(labelExpression); int startOffset = 0; while (startOffset < labelExpression.length() && matcher.find(startOffset)) { From fd31ac310886943e3bd423ab2d77a5093a8a1b85 Mon Sep 17 00:00:00 2001 From: kamaleshnneerasa Date: Mon, 8 Nov 2021 10:06:40 +0530 Subject: [PATCH 2/2] unit test fix --- .../config/service/LabelApplicationRuleValidatorImpl.java | 2 +- .../config/service/LabelApplicationRuleValidatorTest.java | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/label-application-rule-config-service-impl/src/main/java/org/hypertrace/label/application/rule/config/service/LabelApplicationRuleValidatorImpl.java b/label-application-rule-config-service-impl/src/main/java/org/hypertrace/label/application/rule/config/service/LabelApplicationRuleValidatorImpl.java index 94439409..48e9b51d 100644 --- a/label-application-rule-config-service-impl/src/main/java/org/hypertrace/label/application/rule/config/service/LabelApplicationRuleValidatorImpl.java +++ b/label-application-rule-config-service-impl/src/main/java/org/hypertrace/label/application/rule/config/service/LabelApplicationRuleValidatorImpl.java @@ -185,7 +185,7 @@ public void validateLabelExpression(Action.DynamicLabel dynamicLabel) { int startOffset = 0; while (startOffset < labelExpression.length() && matcher.find(startOffset)) { String match = matcher.group(); - String key = match.substring(1, match.length() - 1); + String key = match.substring(2, match.length() - 1); startOffset = startOffset + matcher.end(); if (!validKeys.contains(key)) { throwInvalidArgumentException("Invalid key name in label expression"); diff --git a/label-application-rule-config-service-impl/src/test/java/org/hypertrace/label/application/rule/config/service/LabelApplicationRuleValidatorTest.java b/label-application-rule-config-service-impl/src/test/java/org/hypertrace/label/application/rule/config/service/LabelApplicationRuleValidatorTest.java index ff5cec0c..ae717967 100644 --- a/label-application-rule-config-service-impl/src/test/java/org/hypertrace/label/application/rule/config/service/LabelApplicationRuleValidatorTest.java +++ b/label-application-rule-config-service-impl/src/test/java/org/hypertrace/label/application/rule/config/service/LabelApplicationRuleValidatorTest.java @@ -197,7 +197,7 @@ void validateLabelExpression() { Condition.newBuilder().setLeafCondition(errorLeafCondition).build(); CreateLabelApplicationRuleRequest request1 = buildCreateCreateLabelApplicationRuleRequest( - "Label Expression Rule", matchingCondition, Optional.of("${status}_{wrong-key}")); + "Label Expression Rule", matchingCondition, Optional.of("${status}_${wrong-key}")); Throwable exception = assertThrows( StatusRuntimeException.class, @@ -206,7 +206,7 @@ void validateLabelExpression() { }); CreateLabelApplicationRuleRequest request2 = buildCreateCreateLabelApplicationRuleRequest( - "Label Expression Rule", matchingCondition, Optional.of("${status}_{method}")); + "Label Expression Rule", matchingCondition, Optional.of("${status}_${method}")); assertDoesNotThrow( () -> { labelApplicationRuleValidator.validateOrThrow(REQUEST_CONTEXT, request2);