Details
-
Bug
-
Resolution: Done
-
Minor
-
7.1.0.CR1b
-
None
Description
If 'pass-by-value' is disabled for the ejb client, then no cloning should be performed for parameters of primitive types. Current version of code still tries to clone them, as declared parameter class (primitive type) is not equal to runtime parameter value used during the invocation ('boxed' class for primitive type), this results a lot of cloning requests in case of remote methods with primitive types.
This problem was noticed while looking at results of profiling sampling for intensive concurrent in-vm invocations of remote methods. Despite the disabled 'pass-by-value' option and correct class-pathes for all components, profiling results still show a lot of call to cloners in case of primitive type parameters. The performance impact is not significant, however it's still additional overhead which can be avoided.
In general, I'm not sure if cloning for primitive types is required in other cases as well, however it definitely shouldn't performed if 'pass-by-value' is disabled.