Per the interface specification, the getContentLength method should return -1 if content length is unknown or greater than Integer.MAX_VALUE. For chunked transfer encoding, the content length is not included in the header, hence will cause a NullPointerException when trying to parse the content length header. Change-Id: Iaa36b5c146a8d654e364635fa0bd2d14129baf17 Signed-off-by: Zhen Chen <czhen@google.com>tags/v4.6.0.201612231935-r
} | } | ||||
public int getContentLength() { | public int getContentLength() { | ||||
return Integer.parseInt(resp.getFirstHeader("content-length") //$NON-NLS-1$ | |||||
.getValue()); | |||||
Header contentLength = resp.getFirstHeader("content-length"); //$NON-NLS-1$ | |||||
if (contentLength == null) { | |||||
return -1; | |||||
} | |||||
try { | |||||
int l = Integer.parseInt(contentLength.getValue()); | |||||
return l < 0 ? -1 : l; | |||||
} catch (NumberFormatException e) { | |||||
return -1; | |||||
} | |||||
} | } | ||||
public void setInstanceFollowRedirects(boolean followRedirects) { | public void setInstanceFollowRedirects(boolean followRedirects) { |