Author: maartenc Date: Fri Feb 26 23:52:34 2010 New Revision: 916871 URL: http://svn.apache.org/viewvc?rev=916871&view=rev Log: FIX: artifact-lock strategy could hang Ivy when resolving dynamic revisions (junit test)
Modified: ant/ivy/core/trunk/test/java/org/apache/ivy/core/resolve/ResolveTest.java Modified: ant/ivy/core/trunk/test/java/org/apache/ivy/core/resolve/ResolveTest.java URL: http://svn.apache.org/viewvc/ant/ivy/core/trunk/test/java/org/apache/ivy/core/resolve/ResolveTest.java?rev=916871&r1=916870&r2=916871&view=diff ============================================================================== --- ant/ivy/core/trunk/test/java/org/apache/ivy/core/resolve/ResolveTest.java (original) +++ ant/ivy/core/trunk/test/java/org/apache/ivy/core/resolve/ResolveTest.java Fri Feb 26 23:52:34 2010 @@ -2543,6 +2543,31 @@ assertFalse(getArchiveFileInCache("org1", "mod1.2", "2.1", "mod1.2", "jar", "jar").exists()); } + public void testResolveWithDynamicRevisionsAndArtifactLockStrategy() throws Exception { + // mod4.1 v 4.5 depends on + // - mod1.2 v 1+ and forces it + // - mod3.1 v 1.2 which depends on mod1.2 v 2+ + Ivy ivy = new Ivy(); + ivy.configure(new File("test/repositories/ivysettings-artifact-lock.xml")); + ivy.resolve(new File("test/repositories/2/mod4.1/ivy-4.5.xml") + .toURL(), getResolveOptions(new String[] {"*"})); + + List lockFiles = new ArrayList(); + findLockFiles(cache, lockFiles); + assertTrue("There were lockfiles left in the cache: " + lockFiles, lockFiles.isEmpty()); + } + + private void findLockFiles(File dir, List result) { + File[] files = dir.listFiles(); + for (int i = 0; i < files.length; i++) { + if (files[i].isDirectory()) { + findLockFiles(files[i], result); + } else if (files[i].getName().endsWith(".lck")) { + result.add(files[i]); + } + } + } + public void testResolveForceWithDynamicRevisions() throws Exception { // mod4.1 v 4.5 depends on // - mod1.2 v 1+ and forces it