cxf-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Sergey Beryozkin (JIRA)" <>
Subject [jira] [Commented] (CXF-6837) Add cache for MessageBodyReader/Writer
Date Mon, 04 Apr 2016 09:15:25 GMT


Sergey Beryozkin commented on CXF-6837:

Looks like we do not understand each other, may be it is my fault. 

Let me try again. The point of the cache that when CXF has, say,
public Response post(List<A> data) {}

and it needs to select MessageBodyReader for List of A, it looks up the cache and gets MessageBodyReader
for List of A immediately (i.e, no repeated generic types are checked) and then it only does
isReadable(), and then MessageBodyReader for List of A reads the data, believing it must return
List of A. At the moment the cache uses a 'List' + MediaType key to store a reader for List
of A.

Next List of B comes in. So the reader for List of B is checked and added to the cache using
only 'List' and MediaType therefore losing a List of A record. Now List of A is needed, we
check the cache, we get a provider keyed by 'List' and MediaType, and ask it to read List
A - but the provider is written to return a List of B.

Where is my logic above failing ?


> Add cache for MessageBodyReader/Writer
> --------------------------------------
>                 Key: CXF-6837
>                 URL:
>             Project: CXF
>          Issue Type: Improvement
>          Components: JAX-RS
>    Affects Versions: 3.1.5, 3.0.8
>         Environment: windows
>            Reporter: Neal Hu
>             Fix For: 3.2.0
>         Attachments:, ProviderFactory.patch
> CXF selects the msgBodyReader/writer in the reader/writer list for every request, which
has big impact to the performance. Jersey also has the cache in org.glassfish.jersey.message.internal.MessageBodyFactory._getMessageBodyReader(...).
I have tried add the cache for CXF in ProviderFactory and been proved that it has improved
7-8% for json requests in JMeter. Please let me know if you'd like me to add the enhancement
for CXF. Thanks. 

This message was sent by Atlassian JIRA

View raw message