[jboss-svn-commits] JBoss Common SVN: r3037 - jboss-logmanager/branches/1.0/src/main/java/org/jboss/logmanager.
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Sun Mar 8 01:58:00 EST 2009
Author: david.lloyd at jboss.com
Date: 2009-03-08 01:57:59 -0500 (Sun, 08 Mar 2009)
New Revision: 3037
Modified:
jboss-logmanager/branches/1.0/src/main/java/org/jboss/logmanager/LogManager.java
jboss-logmanager/branches/1.0/src/main/java/org/jboss/logmanager/LoggerNode.java
Log:
Work around another performance-killing sun bug
Modified: jboss-logmanager/branches/1.0/src/main/java/org/jboss/logmanager/LogManager.java
===================================================================
--- jboss-logmanager/branches/1.0/src/main/java/org/jboss/logmanager/LogManager.java 2009-03-08 05:24:22 UTC (rev 3036)
+++ jboss-logmanager/branches/1.0/src/main/java/org/jboss/logmanager/LogManager.java 2009-03-08 06:57:59 UTC (rev 3037)
@@ -50,11 +50,11 @@
AccessController.doPrivileged(new PrivilegedAction<Void>() {
@SuppressWarnings ({"unchecked"})
public Void run() {
+ /* This mysterious-looking hack is designed to trick JDK logging into not leaking classloaders and
+ so forth when adding levels, by simply shutting down the craptastic level name "registry" that it keeps.
+ */
final Class<java.util.logging.Level> lc = java.util.logging.Level.class;
try {
- /* This mysterious-looking hack is designed to trick JDK logging into not leaking classloaders and
- so forth when adding levels, by simply shutting down the craptastic level name "registry" that it keeps.
- */
synchronized(lc) {
final Field knownField = lc.getDeclaredField("known");
knownField.setAccessible(true);
@@ -66,6 +66,17 @@
} catch (Exception e) {
// ignore; just don't install
}
+ /* Next hack: the default Sun JMX implementation has a horribly inefficient log implementation which
+ kills performance if a custom logmanager is used. We'll just blot that out.
+ */
+ try {
+ final Class<?> traceManagerClass = Class.forName("com.sun.jmx.trace.Trace");
+ final Field outField = traceManagerClass.getDeclaredField("out");
+ outField.setAccessible(true);
+ outField.set(null, null);
+ } catch (Exception e) {
+ // ignore; just skip it
+ }
return null;
}
});
Modified: jboss-logmanager/branches/1.0/src/main/java/org/jboss/logmanager/LoggerNode.java
===================================================================
--- jboss-logmanager/branches/1.0/src/main/java/org/jboss/logmanager/LoggerNode.java 2009-03-08 05:24:22 UTC (rev 3036)
+++ jboss-logmanager/branches/1.0/src/main/java/org/jboss/logmanager/LoggerNode.java 2009-03-08 06:57:59 UTC (rev 3037)
@@ -24,8 +24,6 @@
import java.lang.ref.WeakReference;
import java.util.concurrent.ConcurrentMap;
-import java.util.Map;
-import java.util.HashMap;
import static org.jboss.logmanager.ConcurrentReferenceHashMap.ReferenceType.WEAK;
import static org.jboss.logmanager.ConcurrentReferenceHashMap.ReferenceType.STRONG;
More information about the jboss-svn-commits
mailing list