# HG changeset patch # User mchung # Date 1302936132 25200 # Node ID 2d7e19ff03d11a76dc00f571c6ecdc9d6781e9d0 # Parent 499a73f2934741faf7bd97ec0aa82c97a2f83327 7032589: FileHandler leaking file descriptor of the file lock Reviewed-by: forax, dcubed diff -r 499a73f29347 -r 2d7e19ff03d1 jdk/src/share/classes/java/util/logging/FileHandler.java --- a/jdk/src/share/classes/java/util/logging/FileHandler.java Fri Apr 15 15:56:12 2011 -0700 +++ b/jdk/src/share/classes/java/util/logging/FileHandler.java Fri Apr 15 23:42:12 2011 -0700 @@ -409,22 +409,25 @@ // Try the next file. continue; } + boolean available; try { - FileLock fl = fc.tryLock(); - if (fl == null) { - // We failed to get the lock. Try next file. - continue; - } + available = fc.tryLock() != null; // We got the lock OK. } catch (IOException ix) { // We got an IOException while trying to get the lock. // This normally indicates that locking is not supported // on the target directory. We have to proceed without // getting a lock. Drop through. + available = true; } - // We got the lock. Remember it. - locks.put(lockFileName, lockFileName); - break; + if (available) { + // We got the lock. Remember it. + locks.put(lockFileName, lockFileName); + break; + } + + // We failed to get the lock. Try next file. + fc.close(); } }