You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cxf.apache.org by dk...@apache.org on 2012/05/25 16:50:35 UTC

svn commit: r1342657 - in /cxf/trunk: api/src/main/java/org/apache/cxf/common/logging/JDKBugHacks.java parent/pom.xml

Author: dkulp
Date: Fri May 25 14:50:34 2012
New Revision: 1342657

URL: http://svn.apache.org/viewvc?rev=1342657&view=rev
Log:
[CXF-4313] Add ability to completely turn off all the JDK hacks

Modified:
    cxf/trunk/api/src/main/java/org/apache/cxf/common/logging/JDKBugHacks.java
    cxf/trunk/parent/pom.xml

Modified: cxf/trunk/api/src/main/java/org/apache/cxf/common/logging/JDKBugHacks.java
URL: http://svn.apache.org/viewvc/cxf/trunk/api/src/main/java/org/apache/cxf/common/logging/JDKBugHacks.java?rev=1342657&r1=1342656&r2=1342657&view=diff
==============================================================================
--- cxf/trunk/api/src/main/java/org/apache/cxf/common/logging/JDKBugHacks.java (original)
+++ cxf/trunk/api/src/main/java/org/apache/cxf/common/logging/JDKBugHacks.java Fri May 25 14:50:34 2012
@@ -89,13 +89,15 @@ final class JDKBugHacks {
     }
     
     public static void doHacks() {
+        if (skipHack("org.apache.cxf.JDKBugHacks.all")) {
+            return;
+        }                
         try {
             // Use the system classloader as the victim for all this
             // ClassLoader pinning we're about to do.
             ClassLoaderHolder orig = ClassLoaderUtils
                 .setThreadContextClassloader(ClassLoader.getSystemClassLoader());
             try {
-                
                 try {
                     //Trigger a call to sun.awt.AppContext.getAppContext()
                     if (!skipHack("org.apache.cxf.JDKBugHacks.imageIO")) {
@@ -122,9 +124,14 @@ final class JDKBugHacks {
                 try {
                     if (!skipHack("org.apache.cxf.JDKBugHacks.gcRequestLatency")) {
                         Class<?> clazz = Class.forName("sun.misc.GC");
-                        Method method = clazz.getDeclaredMethod("requestLatency",
+                        Method method = clazz.getDeclaredMethod("currentLatencyTarget");
+                        Long l = (Long)method.invoke(null);
+                        if (l != null && l.longValue() == 0) {
+                            //something already set it, move on
+                            method = clazz.getDeclaredMethod("requestLatency",
                                 new Class[] {Long.TYPE});
-                        method.invoke(null, Long.valueOf(36000000));
+                            method.invoke(null, Long.valueOf(36000000));
+                        }
                     }                    
                 } catch (Throwable e) {
                     //ignore

Modified: cxf/trunk/parent/pom.xml
URL: http://svn.apache.org/viewvc/cxf/trunk/parent/pom.xml?rev=1342657&r1=1342656&r2=1342657&view=diff
==============================================================================
--- cxf/trunk/parent/pom.xml (original)
+++ cxf/trunk/parent/pom.xml Fri May 25 14:50:34 2012
@@ -385,6 +385,7 @@
                         <systemPropertyVariables>
                             <java.io.tmpdir>${basedir}/target</java.io.tmpdir>
                             <cxf.useRandomFirstPort>true</cxf.useRandomFirstPort>
+                            <org.apache.cxf.JDKBugHacks.all>true</org.apache.cxf.JDKBugHacks.all>
                             <org.apache.ws.commons.schema.protectReadOnlyCollections>${cxf.protect-xmlschema-collections}</org.apache.ws.commons.schema.protectReadOnlyCollections>
                             <cxf.validateServiceSchemas>${cxf.validateServices}</cxf.validateServiceSchemas>
                             <java.awt.headless>${java.awt.headless}</java.awt.headless>