--- C:\Documents and Settings\lperon\Bureau\commons-httpclient-3.0-rc4\src\java\org\apache\commons\httpclient\methods\multipart\Part.java Mon Oct 10 22:09:12 2005 +++ C:\Documents and Settings\lperon\Bureau\java\org\apache\commons\httpclient\methods\multipart\Part.java Mon Nov 07 17:03:27 2005 @@ -323,6 +323,9 @@ */ public long length() throws IOException { LOG.trace("enter length()"); + if (lengthOfData() < 0) { + return -1; + } ByteArrayOutputStream overhead = new ByteArrayOutputStream(); sendStart(overhead); sendDispositionHeader(overhead); @@ -419,7 +422,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;