diff --git a/src/main/java/org/codehaus/plexus/archiver/zip/ConcurrentJarCreator.java b/src/main/java/org/codehaus/plexus/archiver/zip/ConcurrentJarCreator.java index eb2b638..35b6dc9 100644 --- a/src/main/java/org/codehaus/plexus/archiver/zip/ConcurrentJarCreator.java +++ b/src/main/java/org/codehaus/plexus/archiver/zip/ConcurrentJarCreator.java @@ -43,8 +43,14 @@ static class DeferredSupplier implements ScatterGatherBackingStoreSupplier { + private int threshold; + + public DeferredSupplier(int threshold) { + this.threshold = threshold; + } + public ScatterGatherBackingStore get() throws IOException { - return new DeferredScatterOutputStream(); + return new DeferredScatterOutputStream(threshold); } } @@ -56,7 +62,7 @@ } public ConcurrentJarCreator(int nThreads) throws IOException { - ScatterGatherBackingStoreSupplier defaultSupplier = new DeferredSupplier(); + ScatterGatherBackingStoreSupplier defaultSupplier = new DeferredSupplier(100000000 / nThreads); directories = createDeferred(defaultSupplier); manifest = createDeferred(defaultSupplier); diff --git a/src/main/java/org/codehaus/plexus/archiver/zip/DeferredScatterOutputStream.java b/src/main/java/org/codehaus/plexus/archiver/zip/DeferredScatterOutputStream.java index 4f28985..e46b6a6 100644 --- a/src/main/java/org/codehaus/plexus/archiver/zip/DeferredScatterOutputStream.java +++ b/src/main/java/org/codehaus/plexus/archiver/zip/DeferredScatterOutputStream.java @@ -25,8 +25,11 @@ public class DeferredScatterOutputStream implements ScatterGatherBackingStore { - OffloadingOutputStream dfos = new OffloadingOutputStream(100000000, "scatterzipfragment", "zip", null); + OffloadingOutputStream dfos; + public DeferredScatterOutputStream(int threshold) { + dfos = new OffloadingOutputStream(threshold, "scatterzipfragment", "zip", null); + } public InputStream getInputStream() throws IOException { return dfos.getInputStream();