@Override public ResponseContext postEntry(RequestContext request) { try { final AdapterResponse<Entry> response = feedPublisher.postEntry(new PostEntryRequestImpl(request)); if (response.getBody() != null && response.getBody().getSelfLinkResolvedHref() != null) { return entryResponseHandler.handleResponse(request, response).addHeader("Location", response.getBody().getSelfLinkResolvedHref().toString()); } else { return entryResponseHandler.handleResponse(request, response); } } catch (ParseException ex) { return ProviderHelper.createErrorResponse(Abdera.getInstance(), HttpStatus.UNPROCESSABLE_ENTITY.value(), ex.getMessage(), ex); } catch (RequestParsingException rpex) { return ProviderHelper .createErrorResponse(Abdera.getInstance(), HttpStatus.UNPROCESSABLE_ENTITY.value(), "The POST did not contain valid ATOM XML", rpex); } catch (IllegalArgumentException iae) { return ProviderHelper.badrequest(request, iae.getMessage()); } catch (Exception ex) { return ProviderHelper.servererror(request, ex.getMessage(), ex); } }