I've made some further development with the analysis. I can now reproduce the error with one of the example projects: multi-project. Append the following lines in the build.xml file in src\example\multi-project

   <property name="ivy.local.default.root" value="repository/local" />
   <property name="ivy.shared.default.root" value="repository/shared" />

   <target name="retreive-test" depends="publish-all">
       <delete dir="test1" />
       <mkdir dir="test1" />
       <ivy:cleancache />
<ivy:retrieve inline="true" organisation="org.apache.ivy.example" module="version" pattern="test1/[artifact].[ext]" />

       <delete dir="test2" />
       <mkdir dir="test2" />
       <ivy:cleancache />
<ivy:retrieve inline="true" organisation="org.apache.ivy.example" module="version" pattern="test2/[artifact].[ext]" /> </target>
The error is:
impossible to ivy retrieve: java.lang.RuntimeException: problem during retrieve of org.apache.ivy.example#version-caller: java.lang.IllegalStateException: Report file 'C:\Documents and Settings\Per\.ivy2\cache\org.apache.ivy.example-version-caller-default.xml' does not exist.

Removing the second <ivy:cleancache /> call makes the program run without error. The error occurs on both beta1 and beta2.
Unless I've misunderstood how inline works?

Per Hermansson


Per Hermansson wrote:
Hi!
I'm experiencing some strange behavior when I call the ant tasks <ivy:cleancache> and <ivy:retrieve> in the following pattern:
<ivy:cleancache />
<ivy:retrieve inline="true"  ... >
<ivy:cleancache />
<ivy:retrieve inline="true"  ... >

When my ant code has that pattern, ant fails during the second <ivy:retrieve> with the following exception: impossible to ivy retrieve: java.lang.RuntimeException: problem during retrieve of ivytest#ivytest-caller: java.lang.IllegalStateException: Report file 'C:\Documents and Settings\Per\.ivy2\cache\ivytest-ivytest-caller-default.xml' does not exist.

When I update my code to the following the error no longer occurs and I get the expected behavior:
<ivy:cleancache />
<ivy:retrieve inline="true"  ... >
<ivy:retrieve inline="true"  ... >

Note that the two <ivy:retrive> calls are identical except that they have different destination folders for the pattern.
Both destination folders start empty at the beginning of the calls.

The first <ivy:retrieve> gives the following warnings during execution:
[ivy:retrieve] :: problems summary ::
[ivy:retrieve] :::: WARNINGS
[ivy:retrieve] impossible to put metadata file in cache: G:\per\Development\java\MinaProgram\Eclipse\IvyTest\source\core\dist\ivy.xml ([EMAIL PROTECTED]). java.io.FileNotFoundException: C:\Documents and [EMAIL PROTECTED] (Det går inte att hitta filen)

The second <ivy:retrieve> gives the following output before failing:
[ivy:retrieve] :: retrieving :: ivytest#ivytest-caller
[ivy:retrieve]     confs: [default, src, tests]

Finally I've tested this on both ivy 2.0.0-beta1 and 2.0.0-beta2 with the same behavior.

// Per Hermansson

Reply via email to