-
Notifications
You must be signed in to change notification settings - Fork 291
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Fix native-image generation of reactive applications #8012
Conversation
BenchmarksStartupParameters
See matching parameters
SummaryFound 0 performance improvements and 0 performance regressions! Performance is the same for 55 metrics, 8 unstable metrics. Startup time reports for petclinicgantt
title petclinic - global startup overhead: candidate=1.44.0-SNAPSHOT~07f2b42687, baseline=1.44.0-SNAPSHOT~966ef84e87
dateFormat X
axisFormat %s
section tracing
Agent [baseline] (1.093 s) : 0, 1093020
Total [baseline] (10.425 s) : 0, 10424791
Agent [candidate] (1.097 s) : 0, 1097170
Total [candidate] (10.45 s) : 0, 10449811
section appsec
Agent [baseline] (1.227 s) : 0, 1227360
Total [baseline] (10.752 s) : 0, 10751938
Agent [candidate] (1.235 s) : 0, 1235459
Total [candidate] (10.923 s) : 0, 10922653
section iast
Agent [baseline] (1.226 s) : 0, 1226278
Total [baseline] (10.98 s) : 0, 10979573
Agent [candidate] (1.238 s) : 0, 1237547
Total [candidate] (11.115 s) : 0, 11114778
section profiling
Agent [baseline] (1.326 s) : 0, 1325906
Total [baseline] (10.853 s) : 0, 10852907
Agent [candidate] (1.324 s) : 0, 1323840
Total [candidate] (10.853 s) : 0, 10853069
gantt
title petclinic - break down per module: candidate=1.44.0-SNAPSHOT~07f2b42687, baseline=1.44.0-SNAPSHOT~966ef84e87
dateFormat X
axisFormat %s
section tracing
BytebuddyAgent [baseline] (695.35 ms) : 0, 695350
BytebuddyAgent [candidate] (698.695 ms) : 0, 698695
GlobalTracer [baseline] (318.233 ms) : 0, 318233
GlobalTracer [candidate] (318.912 ms) : 0, 318912
AppSec [baseline] (54.424 ms) : 0, 54424
AppSec [candidate] (54.464 ms) : 0, 54464
Remote Config [baseline] (681.819 µs) : 0, 682
Remote Config [candidate] (692.719 µs) : 0, 693
Telemetry [baseline] (10.595 ms) : 0, 10595
Telemetry [candidate] (10.571 ms) : 0, 10571
section appsec
BytebuddyAgent [baseline] (712.03 ms) : 0, 712030
BytebuddyAgent [candidate] (717.623 ms) : 0, 717623
GlobalTracer [baseline] (315.352 ms) : 0, 315352
GlobalTracer [candidate] (316.828 ms) : 0, 316828
AppSec [baseline] (167.578 ms) : 0, 167578
AppSec [candidate] (168.559 ms) : 0, 168559
IAST [baseline] (19.677 ms) : 0, 19677
IAST [candidate] (19.235 ms) : 0, 19235
Remote Config [baseline] (644.692 µs) : 0, 645
Remote Config [candidate] (661.98 µs) : 0, 662
Telemetry [baseline] (8.187 ms) : 0, 8187
Telemetry [candidate] (8.333 ms) : 0, 8333
section iast
BytebuddyAgent [baseline] (817.225 ms) : 0, 817225
BytebuddyAgent [candidate] (824.171 ms) : 0, 824171
GlobalTracer [baseline] (308.566 ms) : 0, 308566
GlobalTracer [candidate] (310.662 ms) : 0, 310662
AppSec [baseline] (57.655 ms) : 0, 57655
AppSec [candidate] (58.934 ms) : 0, 58934
IAST [baseline] (20.858 ms) : 0, 20858
IAST [candidate] (21.495 ms) : 0, 21495
Remote Config [baseline] (641.612 µs) : 0, 642
Remote Config [candidate] (664.505 µs) : 0, 665
Telemetry [baseline] (7.522 ms) : 0, 7522
Telemetry [candidate] (7.675 ms) : 0, 7675
section profiling
BytebuddyAgent [baseline] (692.975 ms) : 0, 692975
BytebuddyAgent [candidate] (691.309 ms) : 0, 691309
GlobalTracer [baseline] (437.391 ms) : 0, 437391
GlobalTracer [candidate] (436.526 ms) : 0, 436526
AppSec [baseline] (53.991 ms) : 0, 53991
AppSec [candidate] (54.218 ms) : 0, 54218
Remote Config [baseline] (653.875 µs) : 0, 654
Remote Config [candidate] (653.681 µs) : 0, 654
Telemetry [baseline] (7.679 ms) : 0, 7679
Telemetry [candidate] (7.74 ms) : 0, 7740
ProfilingAgent [baseline] (93.909 ms) : 0, 93909
ProfilingAgent [candidate] (94.074 ms) : 0, 94074
Profiling [baseline] (93.933 ms) : 0, 93933
Profiling [candidate] (94.098 ms) : 0, 94098
Startup time reports for insecure-bankgantt
title insecure-bank - global startup overhead: candidate=1.44.0-SNAPSHOT~07f2b42687, baseline=1.44.0-SNAPSHOT~966ef84e87
dateFormat X
axisFormat %s
section tracing
Agent [baseline] (1.097 s) : 0, 1096757
Total [baseline] (8.731 s) : 0, 8730619
Agent [candidate] (1.09 s) : 0, 1090406
Total [candidate] (8.662 s) : 0, 8662076
section iast
Agent [baseline] (1.219 s) : 0, 1218790
Total [baseline] (9.241 s) : 0, 9240663
Agent [candidate] (1.22 s) : 0, 1220281
Total [candidate] (9.214 s) : 0, 9213693
section iast_HARDCODED_SECRET_DISABLED
Agent [baseline] (1.228 s) : 0, 1227864
Total [baseline] (9.186 s) : 0, 9186321
Agent [candidate] (1.218 s) : 0, 1218318
Total [candidate] (9.179 s) : 0, 9178795
section iast_TELEMETRY_OFF
Agent [baseline] (1.224 s) : 0, 1224482
Total [baseline] (9.273 s) : 0, 9273143
Agent [candidate] (1.22 s) : 0, 1219990
Total [candidate] (9.223 s) : 0, 9223008
gantt
title insecure-bank - break down per module: candidate=1.44.0-SNAPSHOT~07f2b42687, baseline=1.44.0-SNAPSHOT~966ef84e87
dateFormat X
axisFormat %s
section tracing
BytebuddyAgent [baseline] (698.691 ms) : 0, 698691
BytebuddyAgent [candidate] (693.101 ms) : 0, 693101
GlobalTracer [baseline] (319.885 ms) : 0, 319885
GlobalTracer [candidate] (317.637 ms) : 0, 317637
AppSec [baseline] (55.127 ms) : 0, 55127
AppSec [candidate] (54.668 ms) : 0, 54668
Remote Config [baseline] (686.911 µs) : 0, 687
Remote Config [candidate] (668.537 µs) : 0, 669
Telemetry [baseline] (8.506 ms) : 0, 8506
Telemetry [candidate] (10.62 ms) : 0, 10620
section iast
BytebuddyAgent [baseline] (811.617 ms) : 0, 811617
BytebuddyAgent [candidate] (812.524 ms) : 0, 812524
GlobalTracer [baseline] (305.944 ms) : 0, 305944
GlobalTracer [candidate] (307.184 ms) : 0, 307184
AppSec [baseline] (58.312 ms) : 0, 58312
AppSec [candidate] (57.849 ms) : 0, 57849
IAST [baseline] (20.989 ms) : 0, 20989
IAST [candidate] (20.786 ms) : 0, 20786
Remote Config [baseline] (628.777 µs) : 0, 629
Remote Config [candidate] (637.096 µs) : 0, 637
Telemetry [baseline] (7.539 ms) : 0, 7539
Telemetry [candidate] (7.505 ms) : 0, 7505
section iast_HARDCODED_SECRET_DISABLED
BytebuddyAgent [baseline] (818.079 ms) : 0, 818079
BytebuddyAgent [candidate] (811.081 ms) : 0, 811081
GlobalTracer [baseline] (309.013 ms) : 0, 309013
GlobalTracer [candidate] (306.608 ms) : 0, 306608
AppSec [baseline] (57.65 ms) : 0, 57650
AppSec [candidate] (56.918 ms) : 0, 56918
IAST [baseline] (21.052 ms) : 0, 21052
IAST [candidate] (21.802 ms) : 0, 21802
Remote Config [baseline] (642.411 µs) : 0, 642
Remote Config [candidate] (635.69 µs) : 0, 636
Telemetry [baseline] (7.599 ms) : 0, 7599
Telemetry [candidate] (7.568 ms) : 0, 7568
section iast_TELEMETRY_OFF
BytebuddyAgent [baseline] (814.143 ms) : 0, 814143
BytebuddyAgent [candidate] (813.28 ms) : 0, 813280
GlobalTracer [baseline] (308.777 ms) : 0, 308777
GlobalTracer [candidate] (306.514 ms) : 0, 306514
AppSec [baseline] (57.222 ms) : 0, 57222
AppSec [candidate] (57.879 ms) : 0, 57879
IAST [baseline] (22.462 ms) : 0, 22462
IAST [candidate] (20.425 ms) : 0, 20425
Remote Config [baseline] (620.022 µs) : 0, 620
Remote Config [candidate] (619.017 µs) : 0, 619
Telemetry [baseline] (7.531 ms) : 0, 7531
Telemetry [candidate] (7.46 ms) : 0, 7460
LoadParameters
See matching parameters
SummaryFound 0 performance improvements and 0 performance regressions! Performance is the same for 12 metrics, 16 unstable metrics. Request duration reports for petclinicgantt
title petclinic - request duration [CI 0.99] : candidate=1.44.0-SNAPSHOT~07f2b42687, baseline=1.44.0-SNAPSHOT~966ef84e87
dateFormat X
axisFormat %s
section baseline
no_agent (1.367 ms) : 1348, 1386
. : milestone, 1367,
appsec (1.74 ms) : 1716, 1764
. : milestone, 1740,
appsec_no_iast (1.758 ms) : 1734, 1783
. : milestone, 1758,
iast (1.5 ms) : 1477, 1524
. : milestone, 1500,
profiling (1.511 ms) : 1489, 1534
. : milestone, 1511,
tracing (1.483 ms) : 1457, 1508
. : milestone, 1483,
section candidate
no_agent (1.363 ms) : 1344, 1382
. : milestone, 1363,
appsec (1.769 ms) : 1744, 1794
. : milestone, 1769,
appsec_no_iast (1.742 ms) : 1717, 1767
. : milestone, 1742,
iast (1.518 ms) : 1496, 1541
. : milestone, 1518,
profiling (1.503 ms) : 1479, 1527
. : milestone, 1503,
tracing (1.471 ms) : 1446, 1496
. : milestone, 1471,
Request duration reports for insecure-bankgantt
title insecure-bank - request duration [CI 0.99] : candidate=1.44.0-SNAPSHOT~07f2b42687, baseline=1.44.0-SNAPSHOT~966ef84e87
dateFormat X
axisFormat %s
section baseline
no_agent (375.227 µs) : 355, 396
. : milestone, 375,
iast (489.754 µs) : 468, 511
. : milestone, 490,
iast_FULL (647.43 µs) : 626, 669
. : milestone, 647,
iast_GLOBAL (518.248 µs) : 496, 541
. : milestone, 518,
iast_HARDCODED_SECRET_DISABLED (496.784 µs) : 475, 518
. : milestone, 497,
iast_INACTIVE (455.037 µs) : 434, 476
. : milestone, 455,
iast_TELEMETRY_OFF (485.606 µs) : 464, 507
. : milestone, 486,
tracing (456.424 µs) : 434, 478
. : milestone, 456,
section candidate
no_agent (378.748 µs) : 358, 400
. : milestone, 379,
iast (489.843 µs) : 468, 511
. : milestone, 490,
iast_FULL (651.274 µs) : 630, 673
. : milestone, 651,
iast_GLOBAL (520.181 µs) : 499, 542
. : milestone, 520,
iast_HARDCODED_SECRET_DISABLED (486.551 µs) : 465, 508
. : milestone, 487,
iast_INACTIVE (447.405 µs) : 427, 468
. : milestone, 447,
iast_TELEMETRY_OFF (479.103 µs) : 458, 501
. : milestone, 479,
tracing (448.025 µs) : 427, 469
. : milestone, 448,
DacapoParameters
See matching parameters
SummaryFound 0 performance improvements and 0 performance regressions! Performance is the same for 12 metrics, 0 unstable metrics. Execution time for biojavagantt
title biojava - execution time [CI 0.99] : candidate=1.44.0-SNAPSHOT~07f2b42687, baseline=1.44.0-SNAPSHOT~966ef84e87
dateFormat X
axisFormat %s
section baseline
no_agent (15.437 s) : 15437000, 15437000
. : milestone, 15437000,
appsec (15.112 s) : 15112000, 15112000
. : milestone, 15112000,
iast (18.769 s) : 18769000, 18769000
. : milestone, 18769000,
iast_GLOBAL (17.776 s) : 17776000, 17776000
. : milestone, 17776000,
profiling (14.747 s) : 14747000, 14747000
. : milestone, 14747000,
tracing (14.885 s) : 14885000, 14885000
. : milestone, 14885000,
section candidate
no_agent (14.919 s) : 14919000, 14919000
. : milestone, 14919000,
appsec (14.708 s) : 14708000, 14708000
. : milestone, 14708000,
iast (18.597 s) : 18597000, 18597000
. : milestone, 18597000,
iast_GLOBAL (18.206 s) : 18206000, 18206000
. : milestone, 18206000,
profiling (14.893 s) : 14893000, 14893000
. : milestone, 14893000,
tracing (15.03 s) : 15030000, 15030000
. : milestone, 15030000,
Execution time for tomcatgantt
title tomcat - execution time [CI 0.99] : candidate=1.44.0-SNAPSHOT~07f2b42687, baseline=1.44.0-SNAPSHOT~966ef84e87
dateFormat X
axisFormat %s
section baseline
no_agent (1.465 ms) : 1453, 1476
. : milestone, 1465,
appsec (2.339 ms) : 2298, 2380
. : milestone, 2339,
iast (2.096 ms) : 2044, 2149
. : milestone, 2096,
iast_GLOBAL (2.124 ms) : 2071, 2177
. : milestone, 2124,
profiling (1.948 ms) : 1905, 1990
. : milestone, 1948,
tracing (1.923 ms) : 1883, 1963
. : milestone, 1923,
section candidate
no_agent (1.466 ms) : 1455, 1477
. : milestone, 1466,
appsec (2.324 ms) : 2282, 2365
. : milestone, 2324,
iast (2.083 ms) : 2031, 2136
. : milestone, 2083,
iast_GLOBAL (2.122 ms) : 2070, 2174
. : milestone, 2122,
profiling (1.945 ms) : 1903, 1987
. : milestone, 1945,
tracing (1.921 ms) : 1881, 1961
. : milestone, 1921,
|
… AsyncResultDecorator
ef6e3dc
to
a2c6f0a
Compare
a2c6f0a
to
07f2b42
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thank you for the nice refactoring
@@ -83,7 +83,7 @@ public static void after(@Advice.Enter final AgentScope scope) { | |||
public static class AsyncExtensionInstallAdvice { | |||
@Advice.OnMethodExit(suppress = Throwable.class) | |||
public static void init() { | |||
ReactorAsyncResultSupportExtension.initialize(); | |||
ReactorAsyncResultExtension.initialize(); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I also tried to kick it in on the typeInitializer
but it did not work
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Same - I have some ideas to improve this kind of pre-initialization, but need to run further experiments.
So far one approach which shows promise is to trigger their initialization during the transformation step, similar to how we inject the helpers. However this needs some additional support to work with native-image because the initialization is then not tied to the stock class-loading mechanism, but the transformation mechanism on top of it.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
💡 #8028
| Package | Type | Package file | Manager | Update | Change | |---|---|---|---|---|---| | [com.google.api.grpc:proto-google-common-protos](https://github.com/googleapis/sdk-platform-java) | dependencies | misk/gradle/libs.versions.toml | gradle | minor | `2.49.0` -> `2.50.0` | | [com.google.cloud:google-cloud-core-http](https://github.com/googleapis/sdk-platform-java) | dependencies | misk/gradle/libs.versions.toml | gradle | minor | `2.48.0` -> `2.49.0` | | [com.google.cloud:google-cloud-spanner](https://github.com/googleapis/java-spanner) | dependencies | misk/gradle/libs.versions.toml | gradle | minor | `6.82.0` -> `6.83.0` | | [com.google.cloud:google-cloud-logging](https://github.com/googleapis/java-logging) | dependencies | misk/gradle/libs.versions.toml | gradle | minor | `3.20.7` -> `3.21.0` | | [com.google.cloud:google-cloud-datastore](https://github.com/googleapis/java-datastore) | dependencies | misk/gradle/libs.versions.toml | gradle | minor | `2.24.3` -> `2.25.1` | | [com.google.cloud:google-cloud-core](https://github.com/googleapis/sdk-platform-java) | dependencies | misk/gradle/libs.versions.toml | gradle | minor | `2.48.0` -> `2.49.0` | | [com.google.api:gax](https://github.com/googleapis/sdk-platform-java) | dependencies | misk/gradle/libs.versions.toml | gradle | minor | `2.58.0` -> `2.59.0` | | [com.autonomousapps.dependency-analysis](https://github.com/autonomousapps/dependency-analysis-android-gradle-plugin) | plugin | misk/gradle/libs.versions.toml | gradle | patch | `2.6.0` -> `2.6.1` | | [com.datadoghq:dd-trace-api](https://github.com/datadog/dd-trace-java) | dependencies | misk/gradle/libs.versions.toml | gradle | minor | `1.43.0` -> `1.44.1` | | [com.datadoghq:dd-trace-ot](https://github.com/datadog/dd-trace-java) | dependencies | misk/gradle/libs.versions.toml | gradle | minor | `1.43.0` -> `1.44.1` | | [software.amazon.awssdk:sdk-core](https://aws.amazon.com/sdkforjava) | dependencies | misk/gradle/libs.versions.toml | gradle | patch | `2.29.32` -> `2.29.34` | | [software.amazon.awssdk:dynamodb-enhanced](https://aws.amazon.com/sdkforjava) | dependencies | misk/gradle/libs.versions.toml | gradle | patch | `2.29.32` -> `2.29.34` | | [software.amazon.awssdk:dynamodb](https://aws.amazon.com/sdkforjava) | dependencies | misk/gradle/libs.versions.toml | gradle | patch | `2.29.32` -> `2.29.34` | | [software.amazon.awssdk:aws-core](https://aws.amazon.com/sdkforjava) | dependencies | misk/gradle/libs.versions.toml | gradle | patch | `2.29.32` -> `2.29.34` | | [software.amazon.awssdk:bom](https://aws.amazon.com/sdkforjava) | dependencies | misk/gradle/libs.versions.toml | gradle | patch | `2.29.32` -> `2.29.34` | | [software.amazon.awssdk:auth](https://aws.amazon.com/sdkforjava) | dependencies | misk/gradle/libs.versions.toml | gradle | patch | `2.29.32` -> `2.29.34` | | [com.amazonaws:aws-java-sdk-sqs](https://aws.amazon.com/sdkforjava) ([source](https://github.com/aws/aws-sdk-java)) | dependencies | misk/gradle/libs.versions.toml | gradle | patch | `1.12.779` -> `1.12.780` | | [com.amazonaws:aws-java-sdk-s3](https://aws.amazon.com/sdkforjava) ([source](https://github.com/aws/aws-sdk-java)) | dependencies | misk/gradle/libs.versions.toml | gradle | patch | `1.12.779` -> `1.12.780` | | [com.amazonaws:aws-java-sdk-dynamodb](https://aws.amazon.com/sdkforjava) ([source](https://github.com/aws/aws-sdk-java)) | dependencies | misk/gradle/libs.versions.toml | gradle | patch | `1.12.779` -> `1.12.780` | | [com.amazonaws:aws-java-sdk-core](https://aws.amazon.com/sdkforjava) ([source](https://github.com/aws/aws-sdk-java)) | dependencies | misk/gradle/libs.versions.toml | gradle | patch | `1.12.779` -> `1.12.780` | --- ### Release Notes <details> <summary>googleapis/sdk-platform-java (com.google.api.grpc:proto-google-common-protos)</summary> ### [`v2.50.0`](https://github.com/googleapis/sdk-platform-java/blob/HEAD/CHANGELOG.md#2500-2024-11-14) ##### Features - Add experimental S2A integration in client libraries grpc transport ([#​3326](googleapis/sdk-platform-java#3326)) ([1138ca6](googleapis/sdk-platform-java@1138ca6)) - enable selective generation based on service config include list ([#​3323](googleapis/sdk-platform-java#3323)) ([0cddadb](googleapis/sdk-platform-java@0cddadb)) - introduce `java.time` to java-core ([#​3330](googleapis/sdk-platform-java#3330)) ([f202c3b](googleapis/sdk-platform-java@f202c3b)) - Update Gapic-Generator to generate libraries using `java.time` methods ([#​3321](googleapis/sdk-platform-java#3321)) ([b21c9a4](googleapis/sdk-platform-java@b21c9a4)) ##### Bug Fixes - Fix flaky test ScheduledRetryingExecutorTest.testCancelOuterFutureAfterStart ([#​3335](googleapis/sdk-platform-java#3335)) ([e73740d](googleapis/sdk-platform-java@e73740d)) - httpjson callables to trace attempts (started, failed) ([#​3300](googleapis/sdk-platform-java#3300)) ([15a64ee](googleapis/sdk-platform-java@15a64ee)) - instantiate GaxProperties at build time to ensure we get the protobuf version ([#​3365](googleapis/sdk-platform-java#3365)) ([bb2a3be](googleapis/sdk-platform-java@bb2a3be)) - protobuf version not always getting set in headers ([#​3322](googleapis/sdk-platform-java#3322)) ([7f6e470](googleapis/sdk-platform-java@7f6e470)) - use BuildKit instead of legacy builder to build the Hermetic Build images ([#​3338](googleapis/sdk-platform-java#3338)) ([222fb45](googleapis/sdk-platform-java@222fb45)) ##### Dependencies - update google auth library dependencies to v1.30.0 ([#​3367](googleapis/sdk-platform-java#3367)) ([a31c682](googleapis/sdk-platform-java@a31c682)) - update grpc dependencies to v1.68.1 ([#​3240](googleapis/sdk-platform-java#3240)) ([c8e3941](googleapis/sdk-platform-java@c8e3941)) ##### Documentation - fix list num ([#​3356](googleapis/sdk-platform-java#3356)) ([b7d6296](googleapis/sdk-platform-java@b7d6296)) - **hermetic-build:** indicate usage of Docker Buildkit in development guide ([#​3337](googleapis/sdk-platform-java#3337)) ([01e742d](googleapis/sdk-platform-java@01e742d)) - modify hermetic build docs ([#​3331](googleapis/sdk-platform-java#3331)) ([25023af](googleapis/sdk-platform-java@25023af)) </details> <details> <summary>googleapis/java-spanner (com.google.cloud:google-cloud-spanner)</summary> ### [`v6.83.0`](https://github.com/googleapis/java-spanner/blob/HEAD/CHANGELOG.md#6830-2024-12-13) ##### Features - Add Metrics host for built in metrics ([#​3519](googleapis/java-spanner#3519)) ([4ed455a](googleapis/java-spanner@4ed455a)) - Add opt-in for using multiplexed sessions for blind writes ([#​3540](googleapis/java-spanner#3540)) ([216f53e](googleapis/java-spanner@216f53e)) - Add UUID in Spanner TypeCode enum ([41f83dc](googleapis/java-spanner@41f83dc)) - Introduce java.time variables and methods ([#​3495](googleapis/java-spanner#3495)) ([8a7d533](googleapis/java-spanner@8a7d533)) - **spanner:** Support multiplexed session for Partitioned operations ([#​3231](googleapis/java-spanner#3231)) ([4501a3e](googleapis/java-spanner@4501a3e)) - Support 'set local' for retry_aborts_internally ([#​3532](googleapis/java-spanner#3532)) ([331942f](googleapis/java-spanner@331942f)) ##### Bug Fixes - **deps:** Update the Java code generator (gapic-generator-java) to 2.51.0 ([41f83dc](googleapis/java-spanner@41f83dc)) ##### Dependencies - Update sdk platform java dependencies ([#​3549](googleapis/java-spanner#3549)) ([6235f0f](googleapis/java-spanner@6235f0f)) </details> <details> <summary>googleapis/java-logging (com.google.cloud:google-cloud-logging)</summary> ### [`v3.21.0`](https://github.com/googleapis/java-logging/blob/HEAD/CHANGELOG.md#3210-2024-12-13) ##### Features - Introduce `java.time` methods ([#​1729](googleapis/java-logging#1729)) ([323eb33](googleapis/java-logging@323eb33)) ##### Bug Fixes - **deps:** Update the Java code generator (gapic-generator-java) to 2.51.0 ([04d8868](googleapis/java-logging@04d8868)) ##### Dependencies - Update dependency io.opentelemetry:opentelemetry-bom to v1.45.0 ([#​1638](googleapis/java-logging#1638)) ([7e007d4](googleapis/java-logging@7e007d4)) - Update sdk platform java dependencies ([#​1736](googleapis/java-logging#1736)) ([88b4cdf](googleapis/java-logging@88b4cdf)) </details> <details> <summary>googleapis/java-datastore (com.google.cloud:google-cloud-datastore)</summary> ### [`v2.25.1`](https://github.com/googleapis/java-datastore/blob/HEAD/CHANGELOG.md#2251-2024-12-13) ##### Bug Fixes - **deps:** Update the Java code generator (gapic-generator-java) to 2.51.0 ([106ee4d](googleapis/java-datastore@106ee4d)) ##### Dependencies - Update sdk platform java dependencies ([#​1685](googleapis/java-datastore#1685)) ([4372350](googleapis/java-datastore@4372350)) ### [`v2.25.0`](https://github.com/googleapis/java-datastore/blob/HEAD/CHANGELOG.md#2250-2024-12-11) ##### Features - Introduce `java.time` methods and variables ([#​1671](googleapis/java-datastore#1671)) ([5a78a80](googleapis/java-datastore@5a78a80)) ##### Dependencies - Update dependency com.google.cloud:gapic-libraries-bom to v1.48.0 ([#​1605](googleapis/java-datastore#1605)) ([5c6a678](googleapis/java-datastore@5c6a678)) ##### Documentation - Update gapic upgrade installation instructions ([#​1677](googleapis/java-datastore#1677)) ([b3fbfcc](googleapis/java-datastore@b3fbfcc)) </details> <details> <summary>autonomousapps/dependency-analysis-android-gradle-plugin (com.autonomousapps.dependency-analysis)</summary> ### [`v2.6.1`](https://github.com/autonomousapps/dependency-analysis-android-gradle-plugin/blob/HEAD/CHANGELOG.md#Version-261) - \[Fix]: `superClassName` can be null (Object has no superclass). </details> <details> <summary>datadog/dd-trace-java (com.datadoghq:dd-trace-api)</summary> ### [`v1.44.1`](https://github.com/DataDog/dd-trace-java/releases/tag/v1.44.1): 1.44.1 ##### Components ##### Continuous Integration Visibility - 🐛 Fix tracing JUnit5 tests in Maven projects with multiple forks ([#​8089](DataDog/dd-trace-java#8089) - [@​nikita-tkachenko-datadog](https://github.com/nikita-tkachenko-datadog)) ### [`v1.44.0`](https://github.com/DataDog/dd-trace-java/releases/tag/v1.44.0): 1.44.0 ##### Known Issues > \[!WARNING]\ > This release contains a known issue that causes failures when using Test Optimization to trace JUnit 5 tests in a Maven project where Maven Surefire is configured with `forkCount` > 1. > The issue is fixed in v1.44.1 ##### Breaking Changes > \[!WARNING]\ > Support for `X-Forwarded` header is dropped from default client IP resolution. > It can still be re-activated using the `dd.trace.client-ip-header=x-forwarded` system property, or the `DD_TRACE_CLIENT_IP_HEADER=x-forwarded` environment variable. See [#​7946](DataDog/dd-trace-java#7946). ##### Components ##### Application Security Management (IAST) - ✨ Set unexpected IAST exceptions to debug log level ([#​8044](DataDog/dd-trace-java#8044) - [@​smola](https://github.com/smola)) - ✨ Increase IAST propagation to StringBuffer subSequence ([#​8038](DataDog/dd-trace-java#8038) - [@​Mariovido](https://github.com/Mariovido)) - ✨ Increase IAST propagation to StringBuilder subSequence ([#​8026](DataDog/dd-trace-java#8026) - [@​Mariovido](https://github.com/Mariovido)) - ✨ Add IAST propagation to String valueOf ([#​8013](DataDog/dd-trace-java#8013) - [@​Mariovido](https://github.com/Mariovido)) - ✨ Increase IAST propagation to StringBuilder append ([#​8010](DataDog/dd-trace-java#8010) - [@​Mariovido](https://github.com/Mariovido)) - ✨ Expand SSRF support in IAST to apache-httpclient-5 and apache-httpasyncclient-4 ([#​7920](DataDog/dd-trace-java#7920) - [@​Mariovido](https://github.com/Mariovido)) ##### Build & Tooling - ✨ Generate Muzzle classes for Groovy instrumentations ([#​8004](DataDog/dd-trace-java#8004) - [@​nikita-tkachenko-datadog](https://github.com/nikita-tkachenko-datadog)) ##### Continuous Integration Visibility - ✨ Support distributed traces in tests ([#​8078](DataDog/dd-trace-java#8078) - [@​nikita-tkachenko-datadog](https://github.com/nikita-tkachenko-datadog)) - ✨ Implement fail-fast tests ordering for JUnit 5 ([#​8055](DataDog/dd-trace-java#8055) - [@​nikita-tkachenko-datadog](https://github.com/nikita-tkachenko-datadog)) - ✨ Mark JUnit 5 setup and teardown action spans as failed if there is an error ([#​8033](DataDog/dd-trace-java#8033) - [@​nikita-tkachenko-datadog](https://github.com/nikita-tkachenko-datadog)) - ✨ Add tracing of setup and teardown actions in JUnit 4 ([#​8030](DataDog/dd-trace-java#8030) - [@​daniel-mohedano](https://github.com/daniel-mohedano)) ##### Crash tracking - ✨ Improve crash tracking install logging ([#​8045](DataDog/dd-trace-java#8045) - [@​PerfectSlayer](https://github.com/PerfectSlayer)) ##### Data Streams Monitoring - 🐛 Add Data Streams support in AWS SQS without raw message delivery ([#​8071](DataDog/dd-trace-java#8071) - [@​piochelepiotr](https://github.com/piochelepiotr)) - ✨ Add new tag for enabled products / features to DSM checkpoints ([#​8051](DataDog/dd-trace-java#8051) - [@​kr-igor](https://github.com/kr-igor)) - 💡 Instrument self hosted Kafka connectors ([#​7959](DataDog/dd-trace-java#7959) - [@​piochelepiotr](https://github.com/piochelepiotr)) ##### Dynamic Instrumentation - ✨ Add Micronaut 4 support for code origin for spans ([#​8039](DataDog/dd-trace-java#8039) - [@​jpbempel](https://github.com/jpbempel)) - ✨ Refactor probe matching for methods ([#​8021](DataDog/dd-trace-java#8021) - [@​jpbempel](https://github.com/jpbempel)) - ✨ Update the CodeOriginProbe fingerprint to not rely on a stack walk ([#​8016](DataDog/dd-trace-java#8016) - [@​evanchooly](https://github.com/evanchooly)) - ✨ Implement code origin support for grpc server entry spans ([#​7942](DataDog/dd-trace-java#7942) - [@​evanchooly](https://github.com/evanchooly)) ##### GraalVM native-image - 🐛 Update Graal build-time instrumentation config for TracePropagationStyle ([#​8065](DataDog/dd-trace-java#8065) - [@​MattAlp](https://github.com/MattAlp)) - 🐛 Fix NoClassDefFoundError: Could not initialize class DDSpanLink$EncoderHolder in Graal native-image ([#​8036](DataDog/dd-trace-java#8036) - [@​mcculls](https://github.com/mcculls)) - 🐛🧹 Fix native-image generation of reactive applications ([#​8012](DataDog/dd-trace-java#8012) - [@​mcculls](https://github.com/mcculls)) ##### OpenTracing - 🧹 Custom ScopeManagers are deprecated and will be removed in a future release of dd-trace-ot ([#​8058](DataDog/dd-trace-java#8058) - [@​mcculls](https://github.com/mcculls)) ##### Tracer core - ✨🧪 Service naming: split by jee deployment ([#​8064](DataDog/dd-trace-java#8064) - [@​amarziali](https://github.com/amarziali)) - ✨ Exclude jboss mdb proxies from instrumenting ([#​8061](DataDog/dd-trace-java#8061) - [@​amarziali](https://github.com/amarziali)) - ✨ Add a built-in trace interceptor for keeping traces depending of their latency ([#​8040](DataDog/dd-trace-java#8040) - [@​cecile75](https://github.com/cecile75)) - 💡 Introduce marker mechanism for eagerly initializing helpers ([#​8028](DataDog/dd-trace-java#8028) - [@​mcculls](https://github.com/mcculls)) - 💡 Add JSON component ([#​7973](DataDog/dd-trace-java#7973) - [@​PerfectSlayer](https://github.com/PerfectSlayer)) - ✨⚠️ Remove support for X-Forwarded in client IP resolution ([#​7946](DataDog/dd-trace-java#7946) - [@​smola](https://github.com/smola)) ##### Instrumentations ##### Apache HttpComponents - ✨ Expand SSRF support in IAST to apache-httpclient-5 and apache-httpasyncclient-4 ([#​7920](DataDog/dd-trace-java#7920) - [@​Mariovido](https://github.com/Mariovido)) ##### gRPC instrumentation - 🐛 Use lower priorities for grpc server errors ([#​8043](DataDog/dd-trace-java#8043) - [@​amarziali](https://github.com/amarziali)) ##### JDBC instrumentation - ✨ Add trace injection for prepared statements in Postgres ([#​7940](DataDog/dd-trace-java#7940) - [@​nenadnoveljic](https://github.com/nenadnoveljic)) ##### JMS instrumentation - 🐛 Protect mdb from instrumenting multiple time the same event ([#​8062](DataDog/dd-trace-java#8062) - [@​amarziali](https://github.com/amarziali)) ##### Kafka instrumentation - 💡 Instrument self hosted Kafka connectors ([#​7959](DataDog/dd-trace-java#7959) - [@​piochelepiotr](https://github.com/piochelepiotr)) ##### OpenTelemetry instrumentation - 🐛 Support using OpenTelemetry Event API inside `@WithSpan` annotated method ([#​8019](DataDog/dd-trace-java#8019) - [@​mcculls](https://github.com/mcculls)) ##### Reactor instrumentation - 🐛🧹 Fix native-image generation of reactive applications ([#​8012](DataDog/dd-trace-java#8012) - [@​mcculls](https://github.com/mcculls)) ##### Spring instrumentation - 🐛 Avoid double instrumenting lambdas on latest spring scheduling ([#​8005](DataDog/dd-trace-java#8005) - [@​amarziali](https://github.com/amarziali)) ##### All other instrumentations - 🐛 Twilio: allow service name flattening ([#​8025](DataDog/dd-trace-java#8025) - [@​amarziali](https://github.com/amarziali)) - ✨ Instrument Mulesoft 4.5.0+ ([#​7981](DataDog/dd-trace-java#7981) - [@​amarziali](https://github.com/amarziali)) </details> <details> <summary>aws/aws-sdk-java (com.amazonaws:aws-java-sdk-sqs)</summary> ### [`v1.12.780`](https://github.com/aws/aws-sdk-java/blob/HEAD/CHANGELOG.md#112780-2024-12-11) [Compare Source](aws/aws-sdk-java@1.12.779...1.12.780) #### **Amazon Simple Storage Service** - ### Bugfixes - AWS SDK for Java 1.x now includes additional validation for Amazon S3 client APIs to handle scenarios where an empty string ('') is passed as the key argument to the following operations: PutObject, DeleteObject, ListObjects, GetObjectMetaData, ListObjectsV2, SetObjectTagging, GetObjectTagging, SetObjectAcl, GetObjectAcl, SetObjectLegalHold, GetObjectLegalHold, CopyObject, CopyPart, SelectObjectContent, SetObjectRetention, GetObjectRetention, AbortMultipartUpload, CompleteMultipartUpload, InitiateMultipartUpload, ListParts, UploadPart, RestoreObjectV2, and RestoreObject. The SDK will validate the key argument and throw an exception if it is an empty string, ensuring correct and expected behavior. </details> --- ### Configuration 📅 **Schedule**: Branch creation - "after 6pm every weekday,before 2am every weekday" in timezone Australia/Melbourne, Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://github.com/renovatebot/renovate/discussions) if that's undesired. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate). GitOrigin-RevId: 69831bc62ea4d80cdcd42cef2aa9bd8eda28ae8c
What Does This Do
Refactors registration of
AsyncResult
extensions so it doesn't pull inAsyncResultDecorator
and all the associated decorator and function classes at bytecode transformation time, which would pollute the analyzed heap and lead to them all needing to be marked as build-time.Also marks the runtime holder of
AsyncResult
extensions as re-runnable. This avoids having to list all the different extensions that might end up registered as build-time, but also avoids double registrations where the same extension is registered at build-time via native-image - and at runtime via the compiled type initializer.Motivation
The recent refactoring of
AsyncResult
extensions caused a regression in our native-image support, but only when a reactive library was on the application class-path.Contributor Checklist
type:
and (comp:
orinst:
) labels in addition to any usefull labelsclose
,fix
or any linking keywords when referencing an issue.Use
solves
instead, and assign the PR milestone to the issueJira ticket: AIDM-447