Skip to content

CAMEL-23282: fix unbounded BeanInfo cache growth for body OGNL expressions#22438

Open
Croway wants to merge 272 commits intoapache:camel-4.18.xfrom
Croway:ci-issue-CAMEL-23282-4.18.x
Open

CAMEL-23282: fix unbounded BeanInfo cache growth for body OGNL expressions#22438
Croway wants to merge 272 commits intoapache:camel-4.18.xfrom
Croway:ci-issue-CAMEL-23282-4.18.x

Conversation

@Croway
Copy link
Copy Markdown
Contributor

@Croway Croway commented Apr 3, 2026

Backport of #22437 to camel-4.18.x

Summary

  • Always use class-based BeanInfo cache keys instead of instance-based keys
  • Introspection results depend on the class type, not the instance identity
  • Instance-based keys caused cache pollution and memory leaks for ephemeral message bodies used with OGNL expressions like ${body.name}

davsclaus and others added 30 commits August 29, 2025 12:21
…ld have defaultValue as boolean type in json metadata
Use an empty InterceptStrategy in order to include any component polling requests under the correct trace.

Closes CAMEL-22385
 This should allow some context to be provided, allowing agents to be created according to their context (i.e.: cached, per route, etc.).
…y (compat layer)

Compatibility layer for Camel 4.14
* Add an header strategy to allow all headers which do not belong to the protocol to passthrough Camel exchange.
* Deprecated the CamelGooglePubsubAttributes header, which was the way used so far to pass properties and does not apply to third party applications externally to Camel.

Closes #CAMEL-22403
…ache#19230)

* camel-jbang: fix several issues (apache#19168)

CAMEL-22404 camel-jbang-plugin-kubernetes: duplicate declaration of camel:observability-services in pom.xml
CAMEL-22407 camel-jbang-plugin-kubernetes: --config and --resource fails when setting a key or destination file path

* CAMEL-22418 camel run broken when --runtime quarkus|spring-boot (apache#19214)

https://issues.apache.org/jira/browse/CAMEL-22418
…uld correctly keep track of how many consumers are polling using a counter instead of a shared boolean.
ffang and others added 30 commits February 12, 2026 10:05
(cherry picked from commit a5e70c2)
apache#21437)

CAMEL-22998: After changes introduced in scope of CAMEL-21599, kamelets inherit the error handler from the parent route. However, if the parent route has a route configuration with an error handler or an onException block, it won't be inherited.
…meter in ConsulRegistry to be used in deserialize operations (apache#21532)

Signed-off-by: Andrea Cosentino <ancosen@gmail.com>
…apache#21538)

* CAMEL-23030: Avoid stack overflow in aggregate completion with synchronous executor
* CAMEL-23030: Restrict aggregate scheduling change to synchronous executor
…decs is not set

During camel export, unset optional kamelet properties are replaced with
the @@CamelMagicValue@@ placeholder by ExportPropertiesParser. The
CassandraEndpoint.createSessionBuilder() method passes this value
directly to CassandraExtraCodecs.valueOf(), causing an
IllegalArgumentException. Skip processing extraTypeCodecs when it
contains the magic placeholder value.
…LOG so they can be captured by configured logging settings, which may be sending logs to monitoring systems. Although camel run is only/primary for development purpose. (apache#21671)
apache#21943)

* CAMEL-23023: camel-kafka - Kafka consumers are started eager before CamelContext is fully started
…spring-security, spring-batch versions as well as a number of third party dependencies like micrometer, logback, jetty, kafka, jooq, hazelcast, bytebuddy, caffeine, etc) (apache#22112)
…ry parameter to header mapping (apache#22146)

* CAMEL-23222 - camel-coap: Integrate HeaderFilterStrategy for CoAP query parameter to header mapping

Signed-off-by: Andrea Cosentino <ancosen@gmail.com>

* CAMEL-23222 - camel-coap: Integrate HeaderFilterStrategy for CoAP query parameter to header mapping

Signed-off-by: Andrea Cosentino <ancosen@gmail.com>

---------

Signed-off-by: Andrea Cosentino <ancosen@gmail.com>
Backport of apache#22149. Add setInFilterStartsWith(CAMEL_FILTER_STARTS_WITH) to MailHeaderFilterStrategy to prevent external sources from injecting Camel-prefixed headers on inbound messages.
…ubsystem changes in 5.5.0 where it is only available in the enterprise product
* Fix spring-ws test failures by adding log4j-jcl bridge dependency

The spring-ws component tests were failing with ~296 failures due to:
  Could not initialize class org.apache.commons.logging.LogAdapter$Log4jLog

Root cause: The httpclient dependency (used in tests) brings commons-logging
transitively, but the JCL-to-Log4j2 bridge (log4j-jcl) was missing from the
test classpath. Without this bridge, commons-logging cannot initialize when
Log4j2 is present.

This fix adds log4j-jcl as a test dependency. The version is managed in the
parent pom.xml, so no explicit version is needed.

* Fix invalid log4j2.properties syntax breaking tests with log4j-jcl bridge

The logger entry for MessageTracing used Log4j 1.x syntax which caused
ConfigurationException when log4j-jcl routes JCL through Log4j2 core.
Add a 10-minute default timeout for all JMS test methods via
junit-platform.properties. This prevents any individual hung
test from blocking the entire CI build indefinitely.
Nominatim API now requires a User-Agent header, otherwise it returns
403 Forbidden. Backport of 9dbbdac from main.
Align CxfRsHeaderFilterStrategy, CxfHeaderFilterStrategy and
KnativeHttpHeaderFilterStrategy with HttpHeaderFilterStrategy by
adding setInFilterStartsWith(CAMEL_FILTER_STARTS_WITH) so that
internal headers are filtered in both directions.
…sions

Always use class-based cache keys since introspection results depend on
the class type, not the instance identity. Instance-based keys caused
cache pollution and memory leaks for ephemeral message bodies.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.