Index: /home/oleg/src/apache.org/jakarta-commons/httpclient-trunk/src/java/org/apache/commons/httpclient/methods/multipart/Part.java =================================================================== --- /home/oleg/src/apache.org/jakarta-commons/httpclient-trunk/src/java/org/apache/commons/httpclient/methods/multipart/Part.java (revision 327791) +++ /home/oleg/src/apache.org/jakarta-commons/httpclient-trunk/src/java/org/apache/commons/httpclient/methods/multipart/Part.java (working copy) @@ -419,7 +419,11 @@ for (int i = 0; i < parts.length; i++) { // set the part boundary before we calculate the part's length parts[i].setPartBoundary(partBoundary); - total += parts[i].length(); + long l = parts[i].length(); + if (l < 0) { + return -1; + } + total += l; } total += EXTRA_BYTES.length; total += partBoundary.length;