]
Kris Verlaenen updated DROOLS-5342:
-----------------------------------
Sprint: 2020 Week 19-21 (from May 4), 2020 Week 22-24 (from May 25) (was: 2020 Week
19-21 (from May 4))
Default value of "drools.lambda.introspector.cache.size"
for externalized lambda
--------------------------------------------------------------------------------
Key: DROOLS-5342
URL:
https://issues.redhat.com/browse/DROOLS-5342
Project: Drools
Issue Type: Task
Components: executable model
Affects Versions: 7.37.0.Final
Reporter: Toshiya Kobayashi
Assignee: Toshiya Kobayashi
Priority: Major
Regarding the cache size default value of LambdaIntrospector.methodFingerprintsMap,
If "drools.externaliseCanonicalModelLambda" option is not enabled, the cache is
frequently used so it will not likely retain old classloaders. So the default value
'32' would be fine.
If "drools.externaliseCanonicalModelLambda" option is enabled, the cache is
used in rare occasions:
A) Lambda for binding variable (DROOLS-5328)
B) Lambda which ExecModelLambdaPostProcessor failed to externalize (DROOLS-5329)
So one build may use only a few entries in a cache Map. Then, the cache eventually may
retain several old classloaders after multiple builds. Generally, the classloader leak
issue is prioritized over build time performance benefit so '0' is the good
default value when externaliseCanonicalModelLambda is enabled.