[514621] Resource Copy task fails with *.zip files above 328MB
https://bugs.eclipse.org/bugs/show_bug.cgi?id=514621
diff --git a/plugins/org.eclipse.oomph.setup.core/src/org/eclipse/oomph/setup/internal/core/util/SetupCoreUtil.java b/plugins/org.eclipse.oomph.setup.core/src/org/eclipse/oomph/setup/internal/core/util/SetupCoreUtil.java
index ae9700c..b73d4a3 100644
--- a/plugins/org.eclipse.oomph.setup.core/src/org/eclipse/oomph/setup/internal/core/util/SetupCoreUtil.java
+++ b/plugins/org.eclipse.oomph.setup.core/src/org/eclipse/oomph/setup/internal/core/util/SetupCoreUtil.java
@@ -38,6 +38,7 @@
import org.eclipse.oomph.setup.Scope;
import org.eclipse.oomph.setup.SetupFactory;
import org.eclipse.oomph.setup.User;
+import org.eclipse.oomph.setup.impl.ResourceCopyTaskImpl;
import org.eclipse.oomph.setup.internal.core.SetupContext;
import org.eclipse.oomph.setup.internal.core.SetupCorePlugin;
import org.eclipse.oomph.setup.internal.core.util.ECFURIHandlerImpl.AuthorizationHandler;
@@ -494,7 +495,7 @@
@Override
public InputStream createInputStream(URI uri, Map<?, ?> options) throws IOException
{
- if (!"zip".equals(uri.fileExtension()))
+ if (!"zip".equals(uri.fileExtension()) || Boolean.FALSE.equals(options.get(ResourceCopyTaskImpl.OPTION_ZIP_CACHE)))
{
return super.createInputStream(uri, options);
}
@@ -538,6 +539,11 @@
@Override
public InputStream createInputStream(URI uri, Map<?, ?> options) throws IOException
{
+ if (Boolean.FALSE.equals(options.get(ResourceCopyTaskImpl.OPTION_ZIP_CACHE)))
+ {
+ return super.createInputStream(uri, options);
+ }
+
// Look for a cached version first.
WeakReference<byte[]> bytesReference = ZIPS.get(uri);
if (bytesReference != null)
diff --git a/plugins/org.eclipse.oomph.setup/src/org/eclipse/oomph/setup/impl/ResourceCopyTaskImpl.java b/plugins/org.eclipse.oomph.setup/src/org/eclipse/oomph/setup/impl/ResourceCopyTaskImpl.java
index 0c302d9..2503a9c 100644
--- a/plugins/org.eclipse.oomph.setup/src/org/eclipse/oomph/setup/impl/ResourceCopyTaskImpl.java
+++ b/plugins/org.eclipse.oomph.setup/src/org/eclipse/oomph/setup/impl/ResourceCopyTaskImpl.java
@@ -26,6 +26,7 @@
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
+import java.util.Collections;
/**
* <!-- begin-user-doc -->
@@ -44,6 +45,8 @@
*/
public class ResourceCopyTaskImpl extends SetupTaskImpl implements ResourceCopyTask
{
+ public static final String OPTION_ZIP_CACHE = "OPTION_ZIP_CACHE";
+
/**
* The default value of the '{@link #isForce() <em>Force</em>}' attribute.
* <!-- begin-user-doc -->
@@ -384,7 +387,7 @@
try
{
- input = uriConverter.createInputStream(sourceURI);
+ input = uriConverter.createInputStream(sourceURI, Collections.singletonMap(OPTION_ZIP_CACHE, Boolean.FALSE));
output = uriConverter.createOutputStream(targetURI, null);
IOUtil.copy(input, output);
}