- if (getResponse.getStatusLine().getStatusCode() != HttpServletResponse.SC_OK) {
- response.sendRedirect("badurl.jspx");
- return;
- }
- if (!isSizeOK(getResponse)) {
- response.sendRedirect("badimage.jspx");
- return;
- }
+ HttpResponse getResponse;
+ try {
+ getResponse = client.execute(getRequest);
+ } catch (IllegalArgumentException iae) {
+ // Thrown if hostname is bad or null
+ log.fine(iae.toString());
+ getRequest.abort();
+ response.sendRedirect("badurl.jspx");
+ return;
+ } catch (IOException ioe) {
+ // Encompasses lots of stuff, including
+ // java.net.SocketException, java.net.UnknownHostException,
+ // javax.net.ssl.SSLPeerUnverifiedException,
+ // org.apache.http.NoHttpResponseException,
+ // org.apache.http.client.ClientProtocolException,
+ log.fine(ioe.toString());
+ getRequest.abort();
+ response.sendRedirect("badurl.jspx");
+ return;
+ }
+
+ if (getResponse.getStatusLine().getStatusCode() != HttpServletResponse.SC_OK) {
+ log.fine("Unsuccessful return code: " + getResponse.getStatusLine().getStatusCode());
+ response.sendRedirect("badurl.jspx");
+ return;
+ }
+ if (!isSizeOK(getResponse)) {
+ log.fine("Too large");
+ response.sendRedirect("badimage.jspx");
+ return;
+ }
+
+ log.info("Decoding " + imageURI);
+ HttpEntity entity = getResponse.getEntity();
+ InputStream is = entity.getContent();
+ try {
+ processStream(is, request, response);
+ } finally {
+ entity.consumeContent();
+ is.close();
+ }