Repository: logging-log4j2
Updated Branches:
  refs/heads/master b13c4e0d8 -> 97ebed83b


[LOG4J2-981] Incorrect unlock in ProviderUtil.

Project: http://git-wip-us.apache.org/repos/asf/logging-log4j2/repo
Commit: http://git-wip-us.apache.org/repos/asf/logging-log4j2/commit/97ebed83
Tree: http://git-wip-us.apache.org/repos/asf/logging-log4j2/tree/97ebed83
Diff: http://git-wip-us.apache.org/repos/asf/logging-log4j2/diff/97ebed83

Branch: refs/heads/master
Commit: 97ebed83bfc3ebf313e8979525a15e86b9911a3f
Parents: b13c4e0
Author: Gary Gregory <[email protected]>
Authored: Sat Mar 21 11:17:11 2015 -0700
Committer: Gary Gregory <[email protected]>
Committed: Sat Mar 21 11:17:11 2015 -0700

----------------------------------------------------------------------
 .../java/org/apache/logging/log4j/util/ProviderUtil.java  | 10 ++++++----
 src/changes/changes.xml                                   |  3 +++
 2 files changed, 9 insertions(+), 4 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/97ebed83/log4j-api/src/main/java/org/apache/logging/log4j/util/ProviderUtil.java
----------------------------------------------------------------------
diff --git 
a/log4j-api/src/main/java/org/apache/logging/log4j/util/ProviderUtil.java 
b/log4j-api/src/main/java/org/apache/logging/log4j/util/ProviderUtil.java
index f638d75..7b42dbc 100644
--- a/log4j-api/src/main/java/org/apache/logging/log4j/util/ProviderUtil.java
+++ b/log4j-api/src/main/java/org/apache/logging/log4j/util/ProviderUtil.java
@@ -117,14 +117,16 @@ public final class ProviderUtil {
         if (INSTANCE == null) {
             try {
                 STARTUP_LOCK.lockInterruptibly();
-                if (INSTANCE == null) {
-                    INSTANCE = new ProviderUtil();
+                try {
+                    if (INSTANCE == null) {
+                        INSTANCE = new ProviderUtil();
+                    }
+                } finally {
+                    STARTUP_LOCK.unlock();
                 }
             } catch (final InterruptedException e) {
                 LOGGER.fatal("Interrupted before Log4j Providers could be 
loaded.", e);
                 Thread.currentThread().interrupt();
-            } finally {
-                STARTUP_LOCK.unlock();
             }
         }
     }

http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/97ebed83/src/changes/changes.xml
----------------------------------------------------------------------
diff --git a/src/changes/changes.xml b/src/changes/changes.xml
index 6ae9dba..b6b16c6 100644
--- a/src/changes/changes.xml
+++ b/src/changes/changes.xml
@@ -30,6 +30,9 @@
       <action issue="LOG4J2-980" dev="ggregory" type="fix" due-to="Mikhail 
Mazurskiy">
         Numerical overflow in BurstFilter not handled correctly.
       </action>
+      <action issue="LOG4J2-981" dev="ggregory" type="fix" due-to="Mikhail 
Mazurskiy">
+        Incorrect unlock in ProviderUtil.
+      </action>
       <action issue="LOG4J2-966" dev="ggregory" type="fix" due-to="Gary 
Gregory">
         KeyStoreConfiguration.createKeyStoreConfiguration() ignores 
keyManagerFactoryAlgorithm.
       </action>

Reply via email to