Project

General

Profile

bug #8842

Updated by Andreas Kohlbecker about 4 years ago

CdmServiceRequestExecutor uses the field  

 ~~~java 
 private RemoteInvocation currentRemoteInvocation; 
 ~~~ 

 to remember the invocation between the    step of serializing the request data and of sending the request in the method `AbstractHttpInvokerRequestExecutor.executeRequest(HttpInvokerClientConfiguration config, RemoteInvocation invocation)` 
 This method is final and thus can not be overwritten. As workaround `currentRemoteInvocation` has apparently been introduced in `CdmServiceRequestExecutor`. This fields, however, causes this bean to be no longer stateless. 
 Concurrent access from multiple threads can cause things to get mixed up. As consequence cdm entities terms could be stored in the wrong "session"-cache and terms the application could miss finding entities terms in the cache causing casing them to be loaded twice. **This second situation can be a root cause for MultipleRepresentationExceptions**   

Back