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