Author: markt
Date: Sun Aug 7 10:47:38 2011
New Revision: 1154691
URL: http://svn.apache.org/viewvc?rev=1154691&view=rev
Log:
Correctly nest locks and unlocks to resolve FindBugs warning
Modified:
tomcat/trunk/java/org/apache/juli/FileHandler.java
Modified: tomcat/trunk/java/org/apache/juli/FileHandler.java
URL:
http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/juli/FileHandler.java?rev=1154691&r1=1154690&r2=1154691&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/juli/FileHandler.java (original)
+++ tomcat/trunk/java/org/apache/juli/FileHandler.java Sun Aug 7 10:47:38 2011
@@ -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);
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]