From: markt Date: Sun, 7 Aug 2011 10:47:38 +0000 (+0000) Subject: Correctly nest locks and unlocks to resolve FindBugs warning X-Git-Url: https://git.internetallee.de/?a=commitdiff_plain;h=2c30641a88b32497bc36932cc54e0f2f1c9ee802;p=tomcat7.0 Correctly nest locks and unlocks to resolve FindBugs warning git-svn-id: https://svn.apache.org/repos/asf/tomcat/trunk@1154691 13f79535-47bb-0310-9956-ffa450edef68 --- diff --git a/java/org/apache/juli/FileHandler.java b/java/org/apache/juli/FileHandler.java index d5fd6e2ad..6569fb06e 100644 --- a/java/org/apache/juli/FileHandler.java +++ b/java/org/apache/juli/FileHandler.java @@ -172,29 +172,29 @@ public class FileHandler String tsString = ts.toString().substring(0, 19); String tsDate = tsString.substring(0, 10); - writerLock.readLock().lock(); try { + writerLock.readLock().lock(); // If the date has changed, switch log files if (rotatable && !date.equals(tsDate)) { - // Update to writeLock before we switch - writerLock.readLock().unlock(); - writerLock.writeLock().lock(); - - // Make sure another thread hasn't already done this - if (!date.equals(tsDate)) { - closeWriter(); - date = tsDate; - openWriter(); + try { + // Update to writeLock before we switch + writerLock.readLock().unlock(); + writerLock.writeLock().lock(); + + // Make sure another thread hasn't already done this + if (!date.equals(tsDate)) { + closeWriter(); + date = tsDate; + openWriter(); + } + } finally { + writerLock.writeLock().unlock(); + // Down grade to read-lock. This ensures the writer remains valid + // until the log message is written + writerLock.readLock().lock(); } - // Down grade to read-lock. This ensures the writer remains valid - // until the log message is written - writerLock.readLock().lock(); } - } finally { - writerLock.writeLock().unlock(); - } - try { String result = null; try { result = getFormatter().format(record);