One of our application is invoking another application via a Spring Rest Template.
HttpEntity<Object> httpEntity = new HttpEntity<>(null);
restTemplate.exchange(URL, HttpMethod.GET, httpEntity,String.class)
We haven't set any headers explicitly for the request. We are encountering the below exception:
Caused by: java.lang.IllegalArgumentException: Comparison method violates its general contract!
at java.util.TimSort.mergeHi(TimSort.java:895)
at java.util.TimSort.mergeAt(TimSort.java:512)
at java.util.TimSort.mergeCollapse(TimSort.java:437)
at java.util.TimSort.sort(TimSort.java:241)
at java.util.Arrays.sort(Arrays.java:1512)
at java.util.ArrayList.sort(ArrayList.java:1454)
at java.util.Collections.sort(Collections.java:175)
at org.springframework.http.MediaType.sortBySpecificity(MediaType.java:441)
at org.springframework.web.client.RestTemplate$AcceptHeaderRequestCallback.doWithRequest(RestTemplate.java:691)
at org.springframework.web.client.RestTemplate$HttpEntityRequestCallback.doWithRequest(RestTemplate.java:743)
at org.springframework.web.client.RestTemplate.doExecute(RestTemplate.java:567)
at org.springframework.web.client.RestTemplate.execute(RestTemplate.java:530)
at org.springframework.web.client.RestTemplate.exchange(RestTemplate.java:448)
The Java version we are using is: 1.8.0_45 and Spring: 4.1.6
If anyone could help that would be really great. I will be happy to provide any more details on this if required.
Thanking in anticipation.
MediaType.sortBySpecificity(MediaType.java:441)
and see what values are being sorted and how they implementComparable
. This might be a bug inMediaType
. – Keratin4.1.6
and4.2.0
, so you need to get a list of the Accept header values that are being sorted for more help. – Keratin