[ 
https://issues.apache.org/jira/browse/IVY-1197?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13975028#comment-13975028
 ] 

Antoine Levy-Lambert commented on IVY-1197:
-------------------------------------------

I have tried to reproduce the problem using ivy 2.4.0-rc1 with its dependencies.

I have used JDK 1.6.0 and a URL resolver

   <url name="url-resolver-httpd">
      <ivy 
pattern="http://localhost/webdav/[organisation]/[module]/[revision]/ivy.xml"; />
      <artifact 
pattern="http://localhost/webdav/[organisation]/[module]/[revision]/[artifact].[ext]";
 />
    </url>

I am able to upload an artifact of 600 GB without exceptions. My problem is 
that ivy does not seem to know how to create the folders [organisation], 
[module], and [revision]. On the server side I have activated the WebDAV module 
of the httpd server of my Mac. Maybe some WebDAV servers automatically create 
folders when they get a PUT request ?. If I create these folders by hand the 
upload of the 600 GB file works.

I also tried to use the VFS resolver with WebDAV but had no luck. With the 
vfs-1.0 which ships with ivy I got this exception :
Users/antoine/dev/ivy-1197/project/build.xml:31: impossible to publish 
artifacts for myorg#mymodule;03_apr_2014: java.lang.IllegalArgumentException: 
invalid vfs uri webdav://localhost:80/webdav/myorg/mymodule/03_apr_2014/aa.zip 
to put data to: resource has no content

vfs-2.x does not work with ivy 2.4. because vfs has renamed its classes between 
1.x and 2.x

> OutOfMemoryError duriong ivy:publish
> ------------------------------------
>
>                 Key: IVY-1197
>                 URL: https://issues.apache.org/jira/browse/IVY-1197
>             Project: Ivy
>          Issue Type: Bug
>          Components: Core
>    Affects Versions: 2.0
>            Reporter: Michael Rumpf
>         Attachments: ASF.LICENSE.NOT.GRANTED--clipboard.txt, 
> org.apache.ivy.util.url.HttpClientHandler.patch
>
>
> When publishing a large file, an OutOfMemoryError occurs.
> {code}
> [ivy:publish]         published ppg to 
> XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
> BUILD FAILED
> /export/build/hudson/jobs/ppg-rcp/workspace/ppg-rcp/com.daimler.ppg.rcp.builder/build-wrapper.xml:152:
>  The following error occurred while executing this line:
> /export/build/hudson/jobs/ppg-rcp/workspace/ppg-rcp/com.daimler.ppg.rcp.builder/build-wrapper.xml:277:
>  java.lang.OutOfMemoryError: Java heap space
>       at java.util.Arrays.copyOf(Arrays.java:2786)
>       at java.io.ByteArrayOutputStream.write(ByteArrayOutputStream.java:94)
>       at sun.net.www.http.PosterOutputStream.write(PosterOutputStream.java:61)
>       at org.apache.ivy.util.FileUtil.copy(FileUtil.java:168)
>       at 
> org.apache.ivy.util.url.BasicURLHandler.upload(BasicURLHandler.java:200)
>       at 
> org.apache.ivy.util.url.URLHandlerDispatcher.upload(URLHandlerDispatcher.java:82)
>       at org.apache.ivy.util.FileUtil.copy(FileUtil.java:140)
>       at 
> org.apache.ivy.plugins.repository.url.URLRepository.put(URLRepository.java:85)
>       at 
> org.apache.ivy.plugins.repository.AbstractRepository.put(AbstractRepository.java:130)
>       at 
> org.apache.ivy.plugins.resolver.RepositoryResolver.put(RepositoryResolver.java:219)
>       at 
> org.apache.ivy.plugins.resolver.RepositoryResolver.publish(RepositoryResolver.java:209)
>       at 
> org.apache.ivy.core.publish.PublishEngine.publish(PublishEngine.java:282)
>       at 
> org.apache.ivy.core.publish.PublishEngine.publish(PublishEngine.java:261)
>       at 
> org.apache.ivy.core.publish.PublishEngine.publish(PublishEngine.java:170)
>       at org.apache.ivy.Ivy.publish(Ivy.java:600)
>       at org.apache.ivy.ant.IvyPublish.doExecute(IvyPublish.java:299)
>       at org.apache.ivy.ant.IvyTask.execute(IvyTask.java:277)
>       at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:291)
>       at sun.reflect.GeneratedMethodAccessor101.invoke(Unknown Source)
>       at 
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
>       at java.lang.reflect.Method.invoke(Method.java:597)
>       at 
> org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:106)
>       at org.apache.tools.ant.Task.perform(Task.java:348)
>       at org.apache.tools.ant.Target.execute(Target.java:390)
>       at org.apache.tools.ant.Target.performTasks(Target.java:411)
>       at org.apache.tools.ant.Project.executeSortedTargets(Project.java:1397)
>       at 
> org.apache.tools.ant.helper.SingleCheckExecutor.executeTargets(SingleCheckExecutor.java:38)
>       at org.apache.tools.ant.Project.executeTargets(Project.java:1249)
>       at org.apache.tools.ant.taskdefs.Ant.execute(Ant.java:442)
>       at org.apache.tools.ant.taskdefs.CallTarget.execute(CallTarget.java:105)
>       at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:291)
>       at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> Total time: 14 minutes 24 seconds
> Finished: FAILURE
> {code}
> The size of the file that is being uploaded is: 687712714, so around 
> 650-700MB.
> The publish task is part of a Hudson Ant build where the artefacts are 
> published to an Artifactory repository at the end.
> I have given the Job 1300MB for the max heap size.
> It seems as if the whole file is loaded into memory for the upload.



--
This message was sent by Atlassian JIRA
(v6.2#6252)

Reply via email to