fix(openfeature): return PARSE_ERROR for invalid regex in flag condition#11071
fix(openfeature): return PARSE_ERROR for invalid regex in flag condition#11071
Conversation
BenchmarksStartupParameters
See matching parameters
SummaryFound 0 performance improvements and 0 performance regressions! Performance is the same for 64 metrics, 7 unstable metrics. Startup time reports for insecure-bankgantt
title insecure-bank - global startup overhead: candidate=1.62.0-SNAPSHOT~36ca659c8b, baseline=1.62.0-SNAPSHOT~d36f7e7123
dateFormat X
axisFormat %s
section tracing
Agent [baseline] (1.056 s) : 0, 1055902
Total [baseline] (8.857 s) : 0, 8857235
Agent [candidate] (1.082 s) : 0, 1082403
Total [candidate] (8.907 s) : 0, 8906906
section iast
Agent [baseline] (1.224 s) : 0, 1223612
Total [baseline] (9.553 s) : 0, 9552685
Agent [candidate] (1.222 s) : 0, 1221725
Total [candidate] (9.59 s) : 0, 9590023
gantt
title insecure-bank - break down per module: candidate=1.62.0-SNAPSHOT~36ca659c8b, baseline=1.62.0-SNAPSHOT~d36f7e7123
dateFormat X
axisFormat %s
section tracing
crashtracking [baseline] (1.221 ms) : 0, 1221
crashtracking [candidate] (1.256 ms) : 0, 1256
BytebuddyAgent [baseline] (632.437 ms) : 0, 632437
BytebuddyAgent [candidate] (650.371 ms) : 0, 650371
AgentMeter [baseline] (29.243 ms) : 0, 29243
AgentMeter [candidate] (30.046 ms) : 0, 30046
GlobalTracer [baseline] (248.474 ms) : 0, 248474
GlobalTracer [candidate] (253.153 ms) : 0, 253153
AppSec [baseline] (32.38 ms) : 0, 32380
AppSec [candidate] (33.157 ms) : 0, 33157
Debugger [baseline] (59.681 ms) : 0, 59681
Debugger [candidate] (59.934 ms) : 0, 59934
Remote Config [baseline] (598.858 µs) : 0, 599
Remote Config [candidate] (596.29 µs) : 0, 596
Telemetry [baseline] (8.2 ms) : 0, 8200
Telemetry [candidate] (8.16 ms) : 0, 8160
Flare Poller [baseline] (7.499 ms) : 0, 7499
Flare Poller [candidate] (9.073 ms) : 0, 9073
section iast
crashtracking [baseline] (1.227 ms) : 0, 1227
crashtracking [candidate] (1.221 ms) : 0, 1221
BytebuddyAgent [baseline] (801.373 ms) : 0, 801373
BytebuddyAgent [candidate] (799.454 ms) : 0, 799454
AgentMeter [baseline] (11.447 ms) : 0, 11447
AgentMeter [candidate] (11.442 ms) : 0, 11442
GlobalTracer [baseline] (238.798 ms) : 0, 238798
GlobalTracer [candidate] (238.809 ms) : 0, 238809
IAST [baseline] (25.78 ms) : 0, 25780
IAST [candidate] (25.805 ms) : 0, 25805
AppSec [baseline] (29.735 ms) : 0, 29735
AppSec [candidate] (32.89 ms) : 0, 32890
Debugger [baseline] (65.712 ms) : 0, 65712
Debugger [candidate] (62.555 ms) : 0, 62555
Remote Config [baseline] (560.812 µs) : 0, 561
Remote Config [candidate] (544.881 µs) : 0, 545
Telemetry [baseline] (9.354 ms) : 0, 9354
Telemetry [candidate] (9.348 ms) : 0, 9348
Flare Poller [baseline] (3.478 ms) : 0, 3478
Flare Poller [candidate] (3.539 ms) : 0, 3539
Startup time reports for petclinicgantt
title petclinic - global startup overhead: candidate=1.62.0-SNAPSHOT~36ca659c8b, baseline=1.62.0-SNAPSHOT~d36f7e7123
dateFormat X
axisFormat %s
section tracing
Agent [baseline] (1.06 s) : 0, 1060059
Total [baseline] (11.021 s) : 0, 11020674
Agent [candidate] (1.06 s) : 0, 1060083
Total [candidate] (11.024 s) : 0, 11023638
section appsec
Agent [baseline] (1.249 s) : 0, 1249464
Total [baseline] (11.102 s) : 0, 11101908
Agent [candidate] (1.254 s) : 0, 1254012
Total [candidate] (11.053 s) : 0, 11052981
section iast
Agent [baseline] (1.226 s) : 0, 1225921
Total [baseline] (11.404 s) : 0, 11404267
Agent [candidate] (1.224 s) : 0, 1223570
Total [candidate] (11.427 s) : 0, 11426984
section profiling
Agent [baseline] (1.186 s) : 0, 1186055
Total [baseline] (11.067 s) : 0, 11067487
Agent [candidate] (1.195 s) : 0, 1194936
Total [candidate] (11.091 s) : 0, 11091201
gantt
title petclinic - break down per module: candidate=1.62.0-SNAPSHOT~36ca659c8b, baseline=1.62.0-SNAPSHOT~d36f7e7123
dateFormat X
axisFormat %s
section tracing
crashtracking [baseline] (1.226 ms) : 0, 1226
crashtracking [candidate] (1.232 ms) : 0, 1232
BytebuddyAgent [baseline] (634.292 ms) : 0, 634292
BytebuddyAgent [candidate] (633.608 ms) : 0, 633608
AgentMeter [baseline] (29.411 ms) : 0, 29411
AgentMeter [candidate] (29.425 ms) : 0, 29425
GlobalTracer [baseline] (249.722 ms) : 0, 249722
GlobalTracer [candidate] (249.504 ms) : 0, 249504
AppSec [baseline] (32.421 ms) : 0, 32421
AppSec [candidate] (32.704 ms) : 0, 32704
Debugger [baseline] (60.048 ms) : 0, 60048
Debugger [candidate] (60.319 ms) : 0, 60319
Remote Config [baseline] (586.312 µs) : 0, 586
Remote Config [candidate] (593.263 µs) : 0, 593
Telemetry [baseline] (8.049 ms) : 0, 8049
Telemetry [candidate] (8.183 ms) : 0, 8183
Flare Poller [baseline] (8.122 ms) : 0, 8122
Flare Poller [candidate] (8.308 ms) : 0, 8308
section appsec
crashtracking [baseline] (1.219 ms) : 0, 1219
crashtracking [candidate] (1.212 ms) : 0, 1212
BytebuddyAgent [baseline] (662.494 ms) : 0, 662494
BytebuddyAgent [candidate] (667.069 ms) : 0, 667069
AgentMeter [baseline] (12.023 ms) : 0, 12023
AgentMeter [candidate] (12.12 ms) : 0, 12120
GlobalTracer [baseline] (248.76 ms) : 0, 248760
GlobalTracer [candidate] (249.041 ms) : 0, 249041
IAST [baseline] (24.766 ms) : 0, 24766
IAST [candidate] (24.494 ms) : 0, 24494
AppSec [baseline] (185.245 ms) : 0, 185245
AppSec [candidate] (185.103 ms) : 0, 185103
Debugger [baseline] (66.154 ms) : 0, 66154
Debugger [candidate] (65.774 ms) : 0, 65774
Remote Config [baseline] (607.32 µs) : 0, 607
Remote Config [candidate] (615.458 µs) : 0, 615
Telemetry [baseline] (8.31 ms) : 0, 8310
Telemetry [candidate] (8.541 ms) : 0, 8541
Flare Poller [baseline] (3.506 ms) : 0, 3506
Flare Poller [candidate] (3.524 ms) : 0, 3524
section iast
crashtracking [baseline] (1.218 ms) : 0, 1218
crashtracking [candidate] (1.212 ms) : 0, 1212
BytebuddyAgent [baseline] (802.117 ms) : 0, 802117
BytebuddyAgent [candidate] (800.473 ms) : 0, 800473
AgentMeter [baseline] (11.497 ms) : 0, 11497
AgentMeter [candidate] (11.43 ms) : 0, 11430
GlobalTracer [baseline] (239.555 ms) : 0, 239555
GlobalTracer [candidate] (238.949 ms) : 0, 238949
IAST [baseline] (25.764 ms) : 0, 25764
IAST [candidate] (25.688 ms) : 0, 25688
AppSec [baseline] (31.244 ms) : 0, 31244
AppSec [candidate] (31.923 ms) : 0, 31923
Debugger [baseline] (64.998 ms) : 0, 64998
Debugger [candidate] (64.235 ms) : 0, 64235
Remote Config [baseline] (551.062 µs) : 0, 551
Remote Config [candidate] (551.914 µs) : 0, 552
Telemetry [baseline] (9.281 ms) : 0, 9281
Telemetry [candidate] (9.393 ms) : 0, 9393
Flare Poller [baseline] (3.561 ms) : 0, 3561
Flare Poller [candidate] (3.57 ms) : 0, 3570
section profiling
crashtracking [baseline] (1.173 ms) : 0, 1173
crashtracking [candidate] (1.194 ms) : 0, 1194
BytebuddyAgent [baseline] (692.375 ms) : 0, 692375
BytebuddyAgent [candidate] (697.437 ms) : 0, 697437
AgentMeter [baseline] (9.079 ms) : 0, 9079
AgentMeter [candidate] (9.188 ms) : 0, 9188
GlobalTracer [baseline] (207.193 ms) : 0, 207193
GlobalTracer [candidate] (208.896 ms) : 0, 208896
AppSec [baseline] (32.775 ms) : 0, 32775
AppSec [candidate] (33.197 ms) : 0, 33197
Debugger [baseline] (65.752 ms) : 0, 65752
Debugger [candidate] (66.281 ms) : 0, 66281
Remote Config [baseline] (582.107 µs) : 0, 582
Remote Config [candidate] (577.471 µs) : 0, 577
Telemetry [baseline] (7.829 ms) : 0, 7829
Telemetry [candidate] (7.838 ms) : 0, 7838
Flare Poller [baseline] (3.577 ms) : 0, 3577
Flare Poller [candidate] (3.63 ms) : 0, 3630
ProfilingAgent [baseline] (94.333 ms) : 0, 94333
ProfilingAgent [candidate] (94.861 ms) : 0, 94861
Profiling [baseline] (94.901 ms) : 0, 94901
Profiling [candidate] (95.446 ms) : 0, 95446
LoadParameters
See matching parameters
SummaryFound 1 performance improvements and 1 performance regressions! Performance is the same for 19 metrics, 15 unstable metrics.
Request duration reports for insecure-bankgantt
title insecure-bank - request duration [CI 0.99] : candidate=1.62.0-SNAPSHOT~36ca659c8b, baseline=1.62.0-SNAPSHOT~d36f7e7123
dateFormat X
axisFormat %s
section baseline
no_agent (1.274 ms) : 1262, 1287
. : milestone, 1274,
iast (3.312 ms) : 3263, 3362
. : milestone, 3312,
iast_FULL (6.052 ms) : 5990, 6114
. : milestone, 6052,
iast_GLOBAL (3.645 ms) : 3585, 3704
. : milestone, 3645,
profiling (2.138 ms) : 2118, 2158
. : milestone, 2138,
tracing (1.871 ms) : 1856, 1887
. : milestone, 1871,
section candidate
no_agent (1.25 ms) : 1238, 1263
. : milestone, 1250,
iast (3.394 ms) : 3347, 3441
. : milestone, 3394,
iast_FULL (5.997 ms) : 5937, 6057
. : milestone, 5997,
iast_GLOBAL (3.607 ms) : 3555, 3659
. : milestone, 3607,
profiling (2.088 ms) : 2069, 2106
. : milestone, 2088,
tracing (1.917 ms) : 1901, 1934
. : milestone, 1917,
Request duration reports for petclinicgantt
title petclinic - request duration [CI 0.99] : candidate=1.62.0-SNAPSHOT~36ca659c8b, baseline=1.62.0-SNAPSHOT~d36f7e7123
dateFormat X
axisFormat %s
section baseline
no_agent (19.516 ms) : 19319, 19713
. : milestone, 19516,
appsec (18.717 ms) : 18530, 18905
. : milestone, 18717,
code_origins (18.015 ms) : 17837, 18193
. : milestone, 18015,
iast (18.256 ms) : 18075, 18436
. : milestone, 18256,
profiling (18.808 ms) : 18618, 18998
. : milestone, 18808,
tracing (17.792 ms) : 17616, 17967
. : milestone, 17792,
section candidate
no_agent (17.669 ms) : 17490, 17848
. : milestone, 17669,
appsec (18.79 ms) : 18602, 18978
. : milestone, 18790,
code_origins (18.069 ms) : 17889, 18250
. : milestone, 18069,
iast (17.905 ms) : 17728, 18083
. : milestone, 17905,
profiling (18.276 ms) : 18093, 18458
. : milestone, 18276,
tracing (18.689 ms) : 18506, 18872
. : milestone, 18689,
DacapoParameters
See matching parameters
SummaryFound 0 performance improvements and 0 performance regressions! Performance is the same for 11 metrics, 1 unstable metrics. Execution time for tomcatgantt
title tomcat - execution time [CI 0.99] : candidate=1.62.0-SNAPSHOT~36ca659c8b, baseline=1.62.0-SNAPSHOT~d36f7e7123
dateFormat X
axisFormat %s
section baseline
no_agent (1.496 ms) : 1485, 1508
. : milestone, 1496,
appsec (3.834 ms) : 3611, 4057
. : milestone, 3834,
iast (2.292 ms) : 2222, 2362
. : milestone, 2292,
iast_GLOBAL (2.324 ms) : 2254, 2394
. : milestone, 2324,
profiling (2.113 ms) : 2057, 2168
. : milestone, 2113,
tracing (2.107 ms) : 2053, 2161
. : milestone, 2107,
section candidate
no_agent (1.497 ms) : 1485, 1509
. : milestone, 1497,
appsec (3.775 ms) : 3557, 3994
. : milestone, 3775,
iast (2.272 ms) : 2202, 2341
. : milestone, 2272,
iast_GLOBAL (2.321 ms) : 2252, 2391
. : milestone, 2321,
profiling (2.099 ms) : 2045, 2154
. : milestone, 2099,
tracing (2.104 ms) : 2050, 2158
. : milestone, 2104,
Execution time for biojavagantt
title biojava - execution time [CI 0.99] : candidate=1.62.0-SNAPSHOT~36ca659c8b, baseline=1.62.0-SNAPSHOT~d36f7e7123
dateFormat X
axisFormat %s
section baseline
no_agent (15.213 s) : 15213000, 15213000
. : milestone, 15213000,
appsec (14.95 s) : 14950000, 14950000
. : milestone, 14950000,
iast (18.321 s) : 18321000, 18321000
. : milestone, 18321000,
iast_GLOBAL (18.317 s) : 18317000, 18317000
. : milestone, 18317000,
profiling (15.183 s) : 15183000, 15183000
. : milestone, 15183000,
tracing (15.208 s) : 15208000, 15208000
. : milestone, 15208000,
section candidate
no_agent (15.052 s) : 15052000, 15052000
. : milestone, 15052000,
appsec (14.726 s) : 14726000, 14726000
. : milestone, 14726000,
iast (18.407 s) : 18407000, 18407000
. : milestone, 18407000,
iast_GLOBAL (18.063 s) : 18063000, 18063000
. : milestone, 18063000,
profiling (15.012 s) : 15012000, 15012000
. : milestone, 15012000,
tracing (14.989 s) : 14989000, 14989000
. : milestone, 14989000,
|
- Add test case for NOT_MATCHES with invalid regex pattern, which follows the same PatternSyntaxException propagation path as MATCHES - Fix misleading comment on integer-string-variant-flag test case to accurately describe the PARSE_ERROR trigger (unparseable variant value)
e927da9 to
f22e80f
Compare
|
Hi! 👋 Thanks for your pull request! 🎉 To help us review it, please make sure to:
If you need help, please check our contributing guidelines. |
|
|
||
| // Condition with an intentionally invalid regex pattern (unclosed bracket) | ||
| final List<ConditionConfiguration> conditions = | ||
| singletonList(new ConditionConfiguration(ConditionOperator.MATCHES, "email", "[invalid")); |
|
/merge |
|
View all feedbacks in Devflow UI.
This pull request is not mergeable according to GitHub. Common reasons include pending required checks, missing approvals, or merge conflicts — but it could also be blocked by other repository rules or settings. Use ⏳ Processing |
What Does This Do
Propagates
PatternSyntaxExceptionfrommatchesRegex()up to the mainevaluate()method, which now returnsERRORwithErrorCode.PARSE_ERRORwhen a flag condition contains an invalid regex pattern.Previously, invalid regex patterns were silently caught and treated as non-matching conditions, causing the evaluation to fall through to the default allocation with
DEFAULTreason instead of surfacing the configuration error.Motivation
Fixes system test
Test_FFE_Eval_Metric_Parse_Error_Invalid_Regexwhich expectsreason=error, error_code=parse_errorwhen a flag condition has an invalid regex.Additional Notes
PatternSyntaxExceptionextendsIllegalArgumentException. A targeted catch is added before the existingThrowablecatch to ensure it maps toPARSE_ERRORrather thanGENERAL.Contributor Checklist