I'm trying to build Archiva for the first time in a long time, and am
running into some unit test failures that are quite probably Windows
only. The problem is that trying to track these down quickly leads
into Nexus code and thence into Lucene code, so I'm looking for ideas
from someone who knows the code better than I do (which is probably
pretty much everyone else here).

The (first) problem occurs in ArchivaIndexingTaskExecutorTest, in the
tearDown method. Here's the relevant chunk of code:

        context.close( false );

        // delete created index in the repository
        File indexDir = new File( repositoryConfig.getLocation(), ".indexer" );
        FileUtils.deleteDirectory( indexDir );
        assertFalse( indexDir.exists() );

The deleteDirectory() call throws an exception because it cannot
delete a file (_1.cfs) in that directory, which would happen when the
file is still open. This means that either the context.close() method
didn't do its thing properly or something earlier on didn't clean up
after itself. Unfortunately, that context.close() call leads directly
into Nexus, and that in turn leads quickly into Lucene. I'm not about
to start debugging either of those. (Debugging this is hard enough
when I can't generate the IDEA project because I can't build Archiva
in the first place!)

I'm not sure where to go from here. Skipping the deletion causes
subsequent failures, and since the problem is an unclosed file,
there's a bug somewhere that needs to be fixed. Almost certainly,
other people are not seeing it because *nix has different ideas about
deleting open files.

Oh - there are other "nearby" tests that are failing, but I'm not sure
if they're related to this problem or not. Also, there are other
non-nearby test failures that I was trying to track down yesterday,
but those are not showing up today because it is no longer the 1st of
the month. (Yes, I'm serious.)

Thoughts?

--
Martin Cooper

Reply via email to