You are right, thanks Rollback done On Thu, May 30, 2013 at 1:15 AM, sebb <[email protected]> wrote:
> On 29 May 2013 21:07, <[email protected]> wrote: > > Author: pmouawad > > Date: Wed May 29 20:07:20 2013 > > New Revision: 1487627 > > > > URL: http://svn.apache.org/r1487627 > > Log: > > Bug 54990 - Download large files avoiding outOfMemory > > Use method from commons-io > > Bugzilla Id: 54990 > > -1 > > That looks simpler, but requires an extra 4k buffer to be allocated. > Not ideal when the idea is to reduce memory overhead. > > > Modified: > > jmeter/trunk/src/jorphan/org/apache/jorphan/util/JOrphanUtils.java > > > > Modified: > jmeter/trunk/src/jorphan/org/apache/jorphan/util/JOrphanUtils.java > > URL: > http://svn.apache.org/viewvc/jmeter/trunk/src/jorphan/org/apache/jorphan/util/JOrphanUtils.java?rev=1487627&r1=1487626&r2=1487627&view=diff > > > ============================================================================== > > --- jmeter/trunk/src/jorphan/org/apache/jorphan/util/JOrphanUtils.java > (original) > > +++ jmeter/trunk/src/jorphan/org/apache/jorphan/util/JOrphanUtils.java > Wed May 29 20:07:20 2013 > > @@ -18,6 +18,7 @@ > > > > package org.apache.jorphan.util; > > > > +import java.io.ByteArrayInputStream; > > import java.io.Closeable; > > import java.io.IOException; > > import java.io.InputStream; > > @@ -29,6 +30,7 @@ import java.util.List; > > import java.util.Map; > > import java.util.StringTokenizer; > > > > +import org.apache.commons.io.IOUtils; > > import org.apache.commons.lang3.StringUtils; > > > > /** > > @@ -523,8 +525,6 @@ public final class JOrphanUtils { > > return StringUtils.isBlank(value); > > } > > > > - private static final int DEFAULT_CHUNK_SIZE = 4096; > > - > > /** > > * Write data to an output stream in chunks with a maximum size of > 4K. > > * This is to avoid OutOfMemory issues if the data buffer is very > large > > @@ -536,13 +536,6 @@ public final class JOrphanUtils { > > */ > > // Bugzilla 54990 > > public static void write(byte[] data, OutputStream output) throws > IOException { > > - int bytes = data.length; > > - int offset = 0; > > - while(bytes > 0) { > > - int chunk = Math.min(bytes, DEFAULT_CHUNK_SIZE); > > - output.write(data, offset, chunk); > > - bytes -= chunk; > > - offset += chunk; > > - } > > + IOUtils.copyLarge(new ByteArrayInputStream(data), output); > > } > > } > > \ No newline at end of file > > > > > -- Cordialement. Philippe Mouawad.
