Description
The org.apache.cxf.jaxrs.client.ClientProxyImpl#getAccept method does not handle an accept header with multiple media types like so:
Accept: application/json, text/plan, */*
It throws an exception:
Caused by: java.lang.IllegalArgumentException: Invalid media type string: application/json, text/plain, */* at org.apache.cxf.jaxrs.impl.MediaTypeHeaderProvider.internalValueOf(MediaTypeHeaderProvider.java:90) at org.apache.cxf.jaxrs.impl.MediaTypeHeaderProvider.valueOf(MediaTypeHeaderProvider.java:65) at org.apache.cxf.jaxrs.utils.JAXRSUtils.toMediaType(JAXRSUtils.java:1723) at org.apache.cxf.jaxrs.client.ClientProxyImpl.getAccept(ClientProxyImpl.java:396) at org.apache.cxf.jaxrs.client.ClientProxyImpl.setRequestHeaders(ClientProxyImpl.java:367)
I think the Accept header value needs to be split by ',' and each part passed to JAXRSUtils.toMediaType(...) to parse each correctly in this code:
for (String s : headers) { types.add(JAXRSUtils.toMediaType(s)); }