Issue Details (XML | Word | Printable)

Key: NUTCH-96
Type: Bug Bug
Status: Closed Closed
Resolution: Duplicate
Priority: Major Major
Assignee: Piotr Kosiorowski
Reporter: Michael Couck
Votes: 3
Watchers: 2
Operations

If you were logged in you would be able to see more operations.
Nutch

MapFile.Writer throws directory exists exception if run multiple times in the same JVM or server JVM.

Created: 21/Sep/05 05:55 PM   Updated: 25/Mar/06 07:49 PM
Return to search
Component/s: fetcher
Affects Version/s: 0.7
Fix Version/s: 0.7.2

Time Tracking:
Not Specified

Environment: Server 2003, 1.4.2, Resin, WebSphere, Tomcat.

Resolution Date: 25/Mar/06 07:49 PM


 Description  « Hide
I added a bug to the 0.6 version, but I found the same behaviour in the 0.7 version. Specifically the MapFile.Writer doesn't get closed and deleted by WebDBWriter and throws an exception if the directory already exists. Still reluctant to solve this if the solution is not going to get integrated into the official code of Nutch as a retrofit will be necessary with every version released, however I will fix this and submit the patch for evaluation if this is not evaluated in the next couple of days by the Nutch team.

Regards

Michael



 All   Comments   Work Log   Change History   Subversion Commits      Sort Order: Ascending order - Click to sort in descending order
raghavendra prabhu added a comment - 08/Oct/05 03:07 PM
I have already commented on this bug and it is the same error

Anyway i am attaching the same one

Ya Even I come across the same error

The problem seems to be in the MapFile Writer where it tries to create a newWeb Db and the the directory already exists

I tried to remove the file but is being used by some other resource .So it is not gettign deleted

MapFile.Writer newDb = (comparator == null) ? new MapFile.Writer(fs, newDbFile.getPath(), keyClass, valueClass) : new MapFile.Writer(fs, newDbFile.getPath(), comparator, valueClass);

I tried to delete the newDbFile.getPath()
File dbfileexists=new File(newDbFile.getPath());
if (dbfileexists.exists())
{
System.out.println("already exists");
if(FileUtil.fullyDelete(dbfileexists))

{ System.out.println("deleted successfully"); }

else

{ System.out.println("not deleted"); }

}

and found that it already exists and is not getting deleted when you get the error


Piotr Kosiorowski added a comment - 25/Mar/06 07:49 PM
Duplicate of NUTCH-117.