Hi Niklas! This sounds like a bug. An exception and error condition should indeed be the reasonable behavior. The test case looks suspicious, however. Doesn't it manually insert something into the managed directories?
Anway, added a fix like this now: if (!targetFile.delete()) { throw new IOException("Could not delete file " + removeFile.getName() + " in directory targetDir"); } Hope you are satisfied with this?! Cheers Oliver 2005/11/10, Niklas Gustavsson <[EMAIL PROTECTED]>: > Hi > > when using commons-transations we found an unexpected behavior when the > application did not have access rights to delete a file. This is not > detected by the FileResourceManager that happily reports the transaction > as successfully commited. The file still remains on the file system. > > The following test case shows the same behavior, but for keeping a file > open: > > public void testFailedDelete() throws Exception { > LoggerFacade logger = new Log4jLogger(Logger > .getLogger(FailDeleteTest.class)); > > String storeDir = "test-store"; > String workDir = "test-work"; > String testFile = "foo.txt"; > > new File(storeDir).mkdirs(); > new File(workDir).mkdirs(); > > FileResourceManager resMan = new FileResourceManager(storeDir, > workDir, false, logger); > resMan.start(); > > > File file = new File(storeDir, testFile); > > // hold on to the file > FileOutputStream fos = new FileOutputStream(file); > > String txId = resMan.generatedUniqueTxId(); > > resMan.startTransaction(txId); > > // no try to delete it > resMan.deleteResource(txId, testFile); > > resMan.commitTransaction(txId); > > // the file will remain even though we successfully > // commited the delete > assertTrue(file.exists()); > } > > I've tracked this down to the folliowing snippet in FileResourceManager: > if (removeFile.isFile()) { > if (targetFile.exists()) { > targetFile.delete(); > } > // indicate, this has been done > removeFile.delete(); > > I think a check that targetFile.delete() actually succeeds would fix > this problem. I'll be happy to write up a patch if you agree that this > should be fixed. > > /niklas > > ------- > Niklas Gustavsson > http://www.protocol7.com > mailto:[EMAIL PROTECTED] > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: [EMAIL PROTECTED] > For additional commands, e-mail: [EMAIL PROTECTED] > > --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]