public NexusClientErrorResponseException convertIf400WithErrorMessage(final UniformInterfaceException e) {
final ClientResponse response = e.getResponse();
if (ClientResponse.Status.BAD_REQUEST.equals(response.getClientResponseStatus())) {
final String body = getResponseBody(response);
ErrorResponse errorResponse = null;
try {
errorResponse = (ErrorResponse) getXStream().fromXML(body, new ErrorResponse());
}
catch (Exception e1) {
// ignore
// XStreamException if body is not ErrorResponse
}
if (errorResponse != null) {
// convert them to hide stupid "old" REST model, and not have it leak out
final ArrayList<NexusClientErrorResponseException.ErrorMessage> errors =
new ArrayList<NexusClientErrorResponseException.ErrorMessage>(errorResponse.getErrors().size());
for (ErrorMessage message : errorResponse.getErrors()) {
errors.add(
new NexusClientErrorResponseException.ErrorMessage(message.getId(), message.getMsg()));
}
return new NexusClientErrorResponseException(
response.getClientResponseStatus().getReasonPhrase(),