Skip to content

Conversation

@PerfectSlayer
Copy link
Contributor

@PerfectSlayer PerfectSlayer commented Sep 18, 2025

What Does This Do

This PR adds methods that may mutate final fields to the list of ForbiddenAPIs. It also identifies current use-cases of these methods and whether or not the usage will need to be changed.

Motivation

Let's "Prepare to Make Final Mean Final". Starting in Java 26, mutating final fields will emit warnings, and in a future release, this behavior will result in exceptions.

Additional Notes

Contributor Checklist

Jira ticket: APMLP-594

@datadog-datadog-prod-us1

This comment has been minimized.

@pr-commenter
Copy link

pr-commenter bot commented Sep 18, 2025

Benchmarks

Startup

Parameters

Baseline Candidate
baseline_or_candidate baseline candidate
git_branch master bbujon/jep500
git_commit_date 1769530654 1769551653
git_commit_sha 78be799 5e40aba
release_version 1.59.0-SNAPSHOT~78be799166 1.54.0-SNAPSHOT~5e40aba082
See matching parameters
Baseline Candidate
application insecure-bank insecure-bank
ci_job_date 1769553476 1769553476
ci_job_id 1381920711 1381920711
ci_pipeline_id 93174660 93174660
cpu_model Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz
kernel_version Linux runner-zfyrx7zua-project-304-concurrent-0-mqfjilgy 6.8.0-1031-aws #33~22.04.1-Ubuntu SMP Thu Jun 26 14:22:30 UTC 2025 x86_64 x86_64 x86_64 GNU/Linux Linux runner-zfyrx7zua-project-304-concurrent-0-mqfjilgy 6.8.0-1031-aws #33~22.04.1-Ubuntu SMP Thu Jun 26 14:22:30 UTC 2025 x86_64 x86_64 x86_64 GNU/Linux
module Agent Agent
parent None None

Summary

Found 0 performance improvements and 0 performance regressions! Performance is the same for 64 metrics, 7 unstable metrics.

Startup time reports for insecure-bank
gantt
    title insecure-bank - global startup overhead: candidate=1.54.0-SNAPSHOT~5e40aba082, baseline=1.59.0-SNAPSHOT~78be799166

    dateFormat X
    axisFormat %s
section tracing
Agent [baseline] (1.054 s) : 0, 1053871
Total [baseline] (8.71 s) : 0, 8710170
Agent [candidate] (1.06 s) : 0, 1059829
Total [candidate] (8.74 s) : 0, 8740077
section iast
Agent [baseline] (1.226 s) : 0, 1225724
Total [baseline] (9.404 s) : 0, 9404385
Agent [candidate] (1.223 s) : 0, 1222943
Total [candidate] (9.327 s) : 0, 9326723
Loading
  • baseline results
Module Variant Duration Δ tracing
Agent tracing 1.054 s -
Agent iast 1.226 s 171.852 ms (16.3%)
Total tracing 8.71 s -
Total iast 9.404 s 694.215 ms (8.0%)
  • candidate results
Module Variant Duration Δ tracing
Agent tracing 1.06 s -
Agent iast 1.223 s 163.114 ms (15.4%)
Total tracing 8.74 s -
Total iast 9.327 s 586.645 ms (6.7%)
gantt
    title insecure-bank - break down per module: candidate=1.54.0-SNAPSHOT~5e40aba082, baseline=1.59.0-SNAPSHOT~78be799166

    dateFormat X
    axisFormat %s
section tracing
crashtracking [baseline] (1.175 ms) : 0, 1175
crashtracking [candidate] (1.178 ms) : 0, 1178
BytebuddyAgent [baseline] (620.899 ms) : 0, 620899
BytebuddyAgent [candidate] (623.207 ms) : 0, 623207
AgentMeter [baseline] (28.662 ms) : 0, 28662
AgentMeter [candidate] (29.024 ms) : 0, 29024
GlobalTracer [baseline] (256.673 ms) : 0, 256673
GlobalTracer [candidate] (258.419 ms) : 0, 258419
AppSec [baseline] (32.706 ms) : 0, 32706
AppSec [candidate] (33.017 ms) : 0, 33017
Debugger [baseline] (60.878 ms) : 0, 60878
Debugger [candidate] (62.889 ms) : 0, 62889
Remote Config [baseline] (619.887 µs) : 0, 620
Remote Config [candidate] (620.928 µs) : 0, 621
Telemetry [baseline] (9.824 ms) : 0, 9824
Telemetry [candidate] (9.852 ms) : 0, 9852
Flare Poller [baseline] (6.94 ms) : 0, 6940
Flare Poller [candidate] (6.112 ms) : 0, 6112
section iast
crashtracking [baseline] (1.175 ms) : 0, 1175
crashtracking [candidate] (1.176 ms) : 0, 1176
BytebuddyAgent [baseline] (789.958 ms) : 0, 789958
BytebuddyAgent [candidate] (788.616 ms) : 0, 788616
AgentMeter [baseline] (11.164 ms) : 0, 11164
AgentMeter [candidate] (11.126 ms) : 0, 11126
GlobalTracer [baseline] (247.938 ms) : 0, 247938
GlobalTracer [candidate] (247.361 ms) : 0, 247361
IAST [baseline] (26.881 ms) : 0, 26881
IAST [candidate] (26.877 ms) : 0, 26877
AppSec [baseline] (33.423 ms) : 0, 33423
AppSec [candidate] (34.398 ms) : 0, 34398
Debugger [baseline] (67.079 ms) : 0, 67079
Debugger [candidate] (65.498 ms) : 0, 65498
Remote Config [baseline] (540.38 µs) : 0, 540
Remote Config [candidate] (550.531 µs) : 0, 551
Telemetry [baseline] (8.669 ms) : 0, 8669
Telemetry [candidate] (8.558 ms) : 0, 8558
Flare Poller [baseline] (3.493 ms) : 0, 3493
Flare Poller [candidate] (3.447 ms) : 0, 3447
Loading
Startup time reports for petclinic
gantt
    title petclinic - global startup overhead: candidate=1.54.0-SNAPSHOT~5e40aba082, baseline=1.59.0-SNAPSHOT~78be799166

    dateFormat X
    axisFormat %s
section tracing
Agent [baseline] (1.065 s) : 0, 1065339
Total [baseline] (11.013 s) : 0, 11012700
Agent [candidate] (1.056 s) : 0, 1055573
Total [candidate] (10.943 s) : 0, 10943244
section appsec
Agent [baseline] (1.232 s) : 0, 1231954
Total [baseline] (11.065 s) : 0, 11064719
Agent [candidate] (1.244 s) : 0, 1244370
Total [candidate] (11.067 s) : 0, 11066725
section iast
Agent [baseline] (1.235 s) : 0, 1235375
Total [baseline] (11.208 s) : 0, 11208369
Agent [candidate] (1.249 s) : 0, 1248638
Total [candidate] (11.142 s) : 0, 11141851
section profiling
Agent [baseline] (1.184 s) : 0, 1184073
Total [baseline] (10.929 s) : 0, 10928604
Agent [candidate] (1.183 s) : 0, 1183004
Total [candidate] (10.92 s) : 0, 10919565
Loading
  • baseline results
Module Variant Duration Δ tracing
Agent tracing 1.065 s -
Agent appsec 1.232 s 166.615 ms (15.6%)
Agent iast 1.235 s 170.036 ms (16.0%)
Agent profiling 1.184 s 118.734 ms (11.1%)
Total tracing 11.013 s -
Total appsec 11.065 s 52.019 ms (0.5%)
Total iast 11.208 s 195.669 ms (1.8%)
Total profiling 10.929 s -84.096 ms (-0.8%)
  • candidate results
Module Variant Duration Δ tracing
Agent tracing 1.056 s -
Agent appsec 1.244 s 188.797 ms (17.9%)
Agent iast 1.249 s 193.065 ms (18.3%)
Agent profiling 1.183 s 127.431 ms (12.1%)
Total tracing 10.943 s -
Total appsec 11.067 s 123.481 ms (1.1%)
Total iast 11.142 s 198.607 ms (1.8%)
Total profiling 10.92 s -23.679 ms (-0.2%)
gantt
    title petclinic - break down per module: candidate=1.54.0-SNAPSHOT~5e40aba082, baseline=1.59.0-SNAPSHOT~78be799166

    dateFormat X
    axisFormat %s
section tracing
crashtracking [baseline] (1.185 ms) : 0, 1185
crashtracking [candidate] (1.176 ms) : 0, 1176
BytebuddyAgent [baseline] (627.382 ms) : 0, 627382
BytebuddyAgent [candidate] (621.884 ms) : 0, 621884
AgentMeter [baseline] (29.034 ms) : 0, 29034
AgentMeter [candidate] (28.633 ms) : 0, 28633
GlobalTracer [baseline] (259.301 ms) : 0, 259301
GlobalTracer [candidate] (256.885 ms) : 0, 256885
AppSec [baseline] (33.396 ms) : 0, 33396
AppSec [candidate] (32.8 ms) : 0, 32800
Debugger [baseline] (62.855 ms) : 0, 62855
Debugger [candidate] (63.816 ms) : 0, 63816
Remote Config [baseline] (635.466 µs) : 0, 635
Remote Config [candidate] (616.793 µs) : 0, 617
Telemetry [baseline] (9.182 ms) : 0, 9182
Telemetry [candidate] (9.166 ms) : 0, 9166
Flare Poller [baseline] (6.797 ms) : 0, 6797
Flare Poller [candidate] (5.305 ms) : 0, 5305
section appsec
crashtracking [baseline] (1.185 ms) : 0, 1185
crashtracking [candidate] (1.192 ms) : 0, 1192
BytebuddyAgent [baseline] (651.774 ms) : 0, 651774
BytebuddyAgent [candidate] (659.915 ms) : 0, 659915
AgentMeter [baseline] (11.791 ms) : 0, 11791
AgentMeter [candidate] (11.97 ms) : 0, 11970
GlobalTracer [baseline] (257.528 ms) : 0, 257528
GlobalTracer [candidate] (259.779 ms) : 0, 259779
AppSec [baseline] (167.637 ms) : 0, 167637
AppSec [candidate] (168.573 ms) : 0, 168573
Debugger [baseline] (67.747 ms) : 0, 67747
Debugger [candidate] (67.914 ms) : 0, 67914
Remote Config [baseline] (680.335 µs) : 0, 680
Remote Config [candidate] (677.864 µs) : 0, 678
Telemetry [baseline] (9.333 ms) : 0, 9333
Telemetry [candidate] (9.373 ms) : 0, 9373
Flare Poller [baseline] (3.67 ms) : 0, 3670
Flare Poller [candidate] (3.713 ms) : 0, 3713
IAST [baseline] (25.284 ms) : 0, 25284
IAST [candidate] (25.808 ms) : 0, 25808
section iast
crashtracking [baseline] (1.187 ms) : 0, 1187
crashtracking [candidate] (1.212 ms) : 0, 1212
BytebuddyAgent [baseline] (796.736 ms) : 0, 796736
BytebuddyAgent [candidate] (807.949 ms) : 0, 807949
AgentMeter [baseline] (11.266 ms) : 0, 11266
AgentMeter [candidate] (11.713 ms) : 0, 11713
GlobalTracer [baseline] (249.351 ms) : 0, 249351
GlobalTracer [candidate] (251.162 ms) : 0, 251162
AppSec [baseline] (34.022 ms) : 0, 34022
AppSec [candidate] (34.139 ms) : 0, 34139
Debugger [baseline] (67.392 ms) : 0, 67392
Debugger [candidate] (66.729 ms) : 0, 66729
Remote Config [baseline] (561.323 µs) : 0, 561
Remote Config [candidate] (547.925 µs) : 0, 548
Telemetry [baseline] (8.655 ms) : 0, 8655
Telemetry [candidate] (8.533 ms) : 0, 8533
Flare Poller [baseline] (3.521 ms) : 0, 3521
Flare Poller [candidate] (3.457 ms) : 0, 3457
IAST [baseline] (27.127 ms) : 0, 27127
IAST [candidate] (27.358 ms) : 0, 27358
section profiling
ProfilingAgent [baseline] (99.211 ms) : 0, 99211
ProfilingAgent [candidate] (99.01 ms) : 0, 99010
crashtracking [baseline] (1.223 ms) : 0, 1223
crashtracking [candidate] (1.21 ms) : 0, 1210
BytebuddyAgent [baseline] (675.959 ms) : 0, 675959
BytebuddyAgent [candidate] (674.983 ms) : 0, 674983
AgentMeter [baseline] (8.628 ms) : 0, 8628
AgentMeter [candidate] (8.637 ms) : 0, 8637
GlobalTracer [baseline] (216.369 ms) : 0, 216369
GlobalTracer [candidate] (216.383 ms) : 0, 216383
AppSec [baseline] (32.319 ms) : 0, 32319
AppSec [candidate] (32.275 ms) : 0, 32275
Debugger [baseline] (67.515 ms) : 0, 67515
Debugger [candidate] (67.716 ms) : 0, 67716
Remote Config [baseline] (579.747 µs) : 0, 580
Remote Config [candidate] (590.966 µs) : 0, 591
Telemetry [baseline] (8.714 ms) : 0, 8714
Telemetry [candidate] (8.64 ms) : 0, 8640
Flare Poller [baseline] (3.744 ms) : 0, 3744
Flare Poller [candidate] (3.791 ms) : 0, 3791
Profiling [baseline] (99.776 ms) : 0, 99776
Profiling [candidate] (99.578 ms) : 0, 99578
Loading

Load

Parameters

Baseline Candidate
baseline_or_candidate baseline candidate
git_branch master bbujon/jep500
git_commit_date 1769530654 1769551653
git_commit_sha 78be799 5e40aba
release_version 1.59.0-SNAPSHOT~78be799166 1.54.0-SNAPSHOT~5e40aba082
See matching parameters
Baseline Candidate
application insecure-bank insecure-bank
ci_job_date 1769553967 1769553967
ci_job_id 1381920713 1381920713
ci_pipeline_id 93174660 93174660
cpu_model Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz
kernel_version Linux runner-zfyrx7zua-project-304-concurrent-0-0z3au18d 6.8.0-1031-aws #33~22.04.1-Ubuntu SMP Thu Jun 26 14:22:30 UTC 2025 x86_64 x86_64 x86_64 GNU/Linux Linux runner-zfyrx7zua-project-304-concurrent-0-0z3au18d 6.8.0-1031-aws #33~22.04.1-Ubuntu SMP Thu Jun 26 14:22:30 UTC 2025 x86_64 x86_64 x86_64 GNU/Linux

Summary

Found 2 performance improvements and 0 performance regressions! Performance is the same for 19 metrics, 15 unstable metrics.

scenario Δ mean agg_http_req_duration_p50 Δ mean agg_http_req_duration_p95 Δ mean throughput candidate mean agg_http_req_duration_p50 candidate mean agg_http_req_duration_p95 candidate mean throughput baseline mean agg_http_req_duration_p50 baseline mean agg_http_req_duration_p95 baseline mean throughput
scenario:load:petclinic:code_origins:high_load better
[-1.642ms; -0.795ms] or [-8.866%; -4.293%]
better
[-1.970ms; -0.633ms] or [-6.598%; -2.122%]
unstable
[-12.201op/s; +41.326op/s] or [-4.906%; +16.616%]
17.298ms 28.552ms 263.281op/s 18.517ms 29.854ms 248.719op/s
Request duration reports for petclinic
gantt
    title petclinic - request duration [CI 0.99] : candidate=1.54.0-SNAPSHOT~5e40aba082, baseline=1.59.0-SNAPSHOT~78be799166
    dateFormat X
    axisFormat %s
section baseline
no_agent (18.976 ms) : 18782, 19170
.   : milestone, 18976,
appsec (18.515 ms) : 18327, 18703
.   : milestone, 18515,
code_origins (18.763 ms) : 18576, 18951
.   : milestone, 18763,
iast (17.822 ms) : 17644, 17999
.   : milestone, 17822,
profiling (18.324 ms) : 18143, 18506
.   : milestone, 18324,
tracing (17.494 ms) : 17319, 17668
.   : milestone, 17494,
section candidate
no_agent (18.037 ms) : 17850, 18223
.   : milestone, 18037,
appsec (18.729 ms) : 18539, 18920
.   : milestone, 18729,
code_origins (17.723 ms) : 17547, 17899
.   : milestone, 17723,
iast (17.556 ms) : 17382, 17731
.   : milestone, 17556,
profiling (18.504 ms) : 18321, 18688
.   : milestone, 18504,
tracing (17.897 ms) : 17718, 18076
.   : milestone, 17897,
Loading
  • baseline results
Variant Request duration [CI 0.99] Δ no_agent
no_agent 18.976 ms [18.782 ms, 19.17 ms] -
appsec 18.515 ms [18.327 ms, 18.703 ms] -460.846 µs (-2.4%)
code_origins 18.763 ms [18.576 ms, 18.951 ms] -212.764 µs (-1.1%)
iast 17.822 ms [17.644 ms, 17.999 ms] -1.154 ms (-6.1%)
profiling 18.324 ms [18.143 ms, 18.506 ms] -651.739 µs (-3.4%)
tracing 17.494 ms [17.319 ms, 17.668 ms] -1.482 ms (-7.8%)
  • candidate results
Variant Request duration [CI 0.99] Δ no_agent
no_agent 18.037 ms [17.85 ms, 18.223 ms] -
appsec 18.729 ms [18.539 ms, 18.92 ms] 692.695 µs (3.8%)
code_origins 17.723 ms [17.547 ms, 17.899 ms] -313.869 µs (-1.7%)
iast 17.556 ms [17.382 ms, 17.731 ms] -480.152 µs (-2.7%)
profiling 18.504 ms [18.321 ms, 18.688 ms] 467.577 µs (2.6%)
tracing 17.897 ms [17.718 ms, 18.076 ms] -139.379 µs (-0.8%)
Request duration reports for insecure-bank
gantt
    title insecure-bank - request duration [CI 0.99] : candidate=1.54.0-SNAPSHOT~5e40aba082, baseline=1.59.0-SNAPSHOT~78be799166
    dateFormat X
    axisFormat %s
section baseline
no_agent (1.191 ms) : 1180, 1203
.   : milestone, 1191,
iast (3.23 ms) : 3184, 3275
.   : milestone, 3230,
iast_FULL (5.836 ms) : 5777, 5895
.   : milestone, 5836,
iast_GLOBAL (3.599 ms) : 3548, 3650
.   : milestone, 3599,
profiling (2.057 ms) : 2039, 2075
.   : milestone, 2057,
tracing (1.805 ms) : 1790, 1819
.   : milestone, 1805,
section candidate
no_agent (1.201 ms) : 1189, 1213
.   : milestone, 1201,
iast (3.192 ms) : 3153, 3231
.   : milestone, 3192,
iast_FULL (5.912 ms) : 5854, 5971
.   : milestone, 5912,
iast_GLOBAL (3.687 ms) : 3636, 3738
.   : milestone, 3687,
profiling (1.963 ms) : 1947, 1979
.   : milestone, 1963,
tracing (1.797 ms) : 1783, 1811
.   : milestone, 1797,
Loading
  • baseline results
Variant Request duration [CI 0.99] Δ no_agent
no_agent 1.191 ms [1.18 ms, 1.203 ms] -
iast 3.23 ms [3.184 ms, 3.275 ms] 2.038 ms (171.1%)
iast_FULL 5.836 ms [5.777 ms, 5.895 ms] 4.645 ms (389.9%)
iast_GLOBAL 3.599 ms [3.548 ms, 3.65 ms] 2.407 ms (202.1%)
profiling 2.057 ms [2.039 ms, 2.075 ms] 865.593 µs (72.7%)
tracing 1.805 ms [1.79 ms, 1.819 ms] 613.288 µs (51.5%)
  • candidate results
Variant Request duration [CI 0.99] Δ no_agent
no_agent 1.201 ms [1.189 ms, 1.213 ms] -
iast 3.192 ms [3.153 ms, 3.231 ms] 1.991 ms (165.8%)
iast_FULL 5.912 ms [5.854 ms, 5.971 ms] 4.711 ms (392.3%)
iast_GLOBAL 3.687 ms [3.636 ms, 3.738 ms] 2.486 ms (207.0%)
profiling 1.963 ms [1.947 ms, 1.979 ms] 761.967 µs (63.4%)
tracing 1.797 ms [1.783 ms, 1.811 ms] 595.748 µs (49.6%)

Dacapo

Parameters

Baseline Candidate
baseline_or_candidate baseline candidate
git_branch master bbujon/jep500
git_commit_date 1769530654 1769551653
git_commit_sha 78be799 5e40aba
release_version 1.59.0-SNAPSHOT~78be799166 1.54.0-SNAPSHOT~5e40aba082
See matching parameters
Baseline Candidate
application biojava biojava
ci_job_date 1769553721 1769553721
ci_job_id 1381920717 1381920717
ci_pipeline_id 93174660 93174660
cpu_model Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz
kernel_version Linux runner-zfyrx7zua-project-304-concurrent-0-4a3b9gko 6.8.0-1031-aws #33~22.04.1-Ubuntu SMP Thu Jun 26 14:22:30 UTC 2025 x86_64 x86_64 x86_64 GNU/Linux Linux runner-zfyrx7zua-project-304-concurrent-0-4a3b9gko 6.8.0-1031-aws #33~22.04.1-Ubuntu SMP Thu Jun 26 14:22:30 UTC 2025 x86_64 x86_64 x86_64 GNU/Linux

Summary

Found 1 performance improvements and 0 performance regressions! Performance is the same for 10 metrics, 1 unstable metrics.

scenario Δ mean execution_time candidate mean execution_time baseline mean execution_time
scenario:dacapo:tomcat:appsec better
[-1.349ms; -1.011ms] or [-36.731%; -27.545%]
2.491ms 3.671ms
Execution time for biojava
gantt
    title biojava - execution time [CI 0.99] : candidate=1.54.0-SNAPSHOT~5e40aba082, baseline=1.59.0-SNAPSHOT~78be799166
    dateFormat X
    axisFormat %s
section baseline
no_agent (15.515 s) : 15515000, 15515000
.   : milestone, 15515000,
appsec (14.799 s) : 14799000, 14799000
.   : milestone, 14799000,
iast (18.422 s) : 18422000, 18422000
.   : milestone, 18422000,
iast_GLOBAL (17.802 s) : 17802000, 17802000
.   : milestone, 17802000,
profiling (14.983 s) : 14983000, 14983000
.   : milestone, 14983000,
tracing (14.619 s) : 14619000, 14619000
.   : milestone, 14619000,
section candidate
no_agent (15.688 s) : 15688000, 15688000
.   : milestone, 15688000,
appsec (14.854 s) : 14854000, 14854000
.   : milestone, 14854000,
iast (18.42 s) : 18420000, 18420000
.   : milestone, 18420000,
iast_GLOBAL (17.608 s) : 17608000, 17608000
.   : milestone, 17608000,
profiling (15.118 s) : 15118000, 15118000
.   : milestone, 15118000,
tracing (14.709 s) : 14709000, 14709000
.   : milestone, 14709000,
Loading
  • baseline results
Variant Execution Time [CI 0.99] Δ no_agent
no_agent 15.515 s [15.515 s, 15.515 s] -
appsec 14.799 s [14.799 s, 14.799 s] -716.0 ms (-4.6%)
iast 18.422 s [18.422 s, 18.422 s] 2.907 s (18.7%)
iast_GLOBAL 17.802 s [17.802 s, 17.802 s] 2.287 s (14.7%)
profiling 14.983 s [14.983 s, 14.983 s] -532.0 ms (-3.4%)
tracing 14.619 s [14.619 s, 14.619 s] -896.0 ms (-5.8%)
  • candidate results
Variant Execution Time [CI 0.99] Δ no_agent
no_agent 15.688 s [15.688 s, 15.688 s] -
appsec 14.854 s [14.854 s, 14.854 s] -834.0 ms (-5.3%)
iast 18.42 s [18.42 s, 18.42 s] 2.732 s (17.4%)
iast_GLOBAL 17.608 s [17.608 s, 17.608 s] 1.92 s (12.2%)
profiling 15.118 s [15.118 s, 15.118 s] -570.0 ms (-3.6%)
tracing 14.709 s [14.709 s, 14.709 s] -979.0 ms (-6.2%)
Execution time for tomcat
gantt
    title tomcat - execution time [CI 0.99] : candidate=1.54.0-SNAPSHOT~5e40aba082, baseline=1.59.0-SNAPSHOT~78be799166
    dateFormat X
    axisFormat %s
section baseline
no_agent (1.471 ms) : 1459, 1482
.   : milestone, 1471,
appsec (3.671 ms) : 3457, 3886
.   : milestone, 3671,
iast (2.245 ms) : 2176, 2314
.   : milestone, 2245,
iast_GLOBAL (2.288 ms) : 2218, 2357
.   : milestone, 2288,
profiling (2.473 ms) : 2318, 2627
.   : milestone, 2473,
tracing (2.053 ms) : 2000, 2106
.   : milestone, 2053,
section candidate
no_agent (1.472 ms) : 1460, 1483
.   : milestone, 1472,
appsec (2.491 ms) : 2437, 2546
.   : milestone, 2491,
iast (2.244 ms) : 2176, 2313
.   : milestone, 2244,
iast_GLOBAL (2.29 ms) : 2221, 2359
.   : milestone, 2290,
profiling (2.131 ms) : 2073, 2189
.   : milestone, 2131,
tracing (2.059 ms) : 2006, 2113
.   : milestone, 2059,
Loading
  • baseline results
Variant Execution Time [CI 0.99] Δ no_agent
no_agent 1.471 ms [1.459 ms, 1.482 ms] -
appsec 3.671 ms [3.457 ms, 3.886 ms] 2.2 ms (149.6%)
iast 2.245 ms [2.176 ms, 2.314 ms] 774.021 µs (52.6%)
iast_GLOBAL 2.288 ms [2.218 ms, 2.357 ms] 816.602 µs (55.5%)
profiling 2.473 ms [2.318 ms, 2.627 ms] 1.002 ms (68.1%)
tracing 2.053 ms [2.0 ms, 2.106 ms] 581.795 µs (39.6%)
  • candidate results
Variant Execution Time [CI 0.99] Δ no_agent
no_agent 1.472 ms [1.46 ms, 1.483 ms] -
appsec 2.491 ms [2.437 ms, 2.546 ms] 1.02 ms (69.3%)
iast 2.244 ms [2.176 ms, 2.313 ms] 772.577 µs (52.5%)
iast_GLOBAL 2.29 ms [2.221 ms, 2.359 ms] 818.481 µs (55.6%)
profiling 2.131 ms [2.073 ms, 2.189 ms] 659.252 µs (44.8%)
tracing 2.059 ms [2.006 ms, 2.113 ms] 587.659 µs (39.9%)

@PerfectSlayer PerfectSlayer added the tag: no release notes Changes to exclude from release notes label Sep 18, 2025
@PerfectSlayer PerfectSlayer marked this pull request as ready for review September 18, 2025 14:57
@PerfectSlayer PerfectSlayer requested review from a team as code owners September 18, 2025 14:57
@nikita-tkachenko-datadog
Copy link
Contributor

Will we be forbidding setAccessible(...) calls as well? (such as the one done in datadog.trace.util.MethodHandles#privateFieldSetter(java.lang.Class<?>, java.lang.String))

@PerfectSlayer
Copy link
Contributor Author

We won't. Quick quote from my doc about the topic:

But the following will still working:

  • java.lang.reflect.AccessibleObject#setAccessible(boolean) will work to change the accessibility flag and Field.get() / unreflect() / unreflectGetter() will still allow access to private fields value and method calls.

@PerfectSlayer PerfectSlayer marked this pull request as draft September 19, 2025 09:37
@PerfectSlayer
Copy link
Contributor Author

Going back to draft to carefully evaluate and document each calls.
I also envisioned some fixes for some of the calls already.

@github-actions
Copy link
Contributor

github-actions bot commented Jan 1, 2026

This pull request has been marked as stale because it has not had activity over the past quarter. It will be closed in 7 days if no further activity occurs. Feel free to reopen the PR if you are still working on it.

@github-actions github-actions bot added the tag: stale Stale pull requests label Jan 1, 2026
@PerfectSlayer
Copy link
Contributor Author

Let see if it makes the Q1 planning

@PerfectSlayer PerfectSlayer removed the tag: stale Stale pull requests label Jan 5, 2026
@pr-commenter
Copy link

pr-commenter bot commented Jan 21, 2026

Debugger benchmarks

Parameters

Baseline Candidate
baseline_or_candidate baseline candidate
ci_job_date 1769552271 1769552616
end_time 2026-01-27T22:19:12 2026-01-27T22:24:56
git_branch master bbujon/jep500
git_commit_sha 43fff4f 5e40aba
start_time 2026-01-27T22:17:52 2026-01-27T22:23:37
See matching parameters
Baseline Candidate
ci_job_id 1381920734 1381920734
ci_pipeline_id 93174660 93174660
cpu_model Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz
git_commit_date 1769551653 1769551653

Summary

Found 0 performance improvements and 0 performance regressions! Performance is the same for 9 metrics, 6 unstable metrics.

See unchanged results
scenario Δ mean agg_http_req_duration_min Δ mean agg_http_req_duration_p50 Δ mean agg_http_req_duration_p75 Δ mean agg_http_req_duration_p99 Δ mean throughput
scenario:noprobe unstable
[-19.286µs; +33.148µs] or [-7.065%; +12.142%]
unstable
[-28.587µs; +46.243µs] or [-9.124%; +14.759%]
unstable
[-38.346µs; +57.548µs] or [-11.713%; +17.579%]
unstable
[-199.849µs; +37.247µs] or [-19.294%; +3.596%]
same
scenario:basic same same same unstable
[-189.970µs; +5.273µs] or [-23.294%; +0.647%]
unstable
[-104.063op/s; +246.311op/s] or [-3.954%; +9.360%]
scenario:loop unsure
[-8.644µs; -2.729µs] or [-0.097%; -0.031%]
same unsure
[-11.559µs; -0.807µs] or [-0.128%; -0.009%]
same same
Request duration reports for reports
gantt
    title reports - request duration [CI 0.99] : candidate=None, baseline=None
    dateFormat X
    axisFormat %s
section baseline
noprobe (313.328 µs) : 287, 340
.   : milestone, 313,
basic (280.541 µs) : 274, 287
.   : milestone, 281,
loop (8.966 ms) : 8962, 8970
.   : milestone, 8966,
section candidate
noprobe (322.156 µs) : 279, 365
.   : milestone, 322,
basic (277.335 µs) : 271, 284
.   : milestone, 277,
loop (8.962 ms) : 8957, 8966
.   : milestone, 8962,
Loading
  • baseline results
Scenario Request median duration [CI 0.99]
noprobe 313.328 µs [287.002 µs, 339.654 µs]
basic 280.541 µs [273.955 µs, 287.127 µs]
loop 8.966 ms [8.962 ms, 8.97 ms]
  • candidate results
Scenario Request median duration [CI 0.99]
noprobe 322.156 µs [279.198 µs, 365.114 µs]
basic 277.335 µs [270.947 µs, 283.724 µs]
loop 8.962 ms [8.957 ms, 8.966 ms]

@sarahchen6 sarahchen6 marked this pull request as ready for review January 22, 2026 21:26
@sarahchen6 sarahchen6 requested a review from a team as a code owner January 22, 2026 21:26
@sarahchen6 sarahchen6 requested review from tylfin and removed request for a team January 22, 2026 21:26
@tylfin tylfin requested a review from jpbempel January 22, 2026 21:50
@sarahchen6 sarahchen6 requested a review from bric3 January 26, 2026 19:22
return listener;
}

// TODO: JEP 500 - avoid mutating final fields
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

question: Is it possible to log such usage ?

Copy link
Contributor

@sarahchen6 sarahchen6 Jan 27, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hm good idea. I've already started trying to get rid of mutations as a whole (#10440), but we could log when final fields are detected in the meantime.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Let me know if there's a cleaner way to approach the logging 😅 . Otherwise, the next steps after this PR are to rework the three cases of final field mutation

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is it possible to log such usage ?

I would not add log about it as it should not impact customers.
This PR should only be a first step to mark the usages to get rid of, and warn contributors about the future limitation. The follow PRs of this task is to get rid of all those calls.
If you want logging about it, just use the JVM flag for 😉

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

tag: no release notes Changes to exclude from release notes

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants