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/24 23:44:58 UTC
svn commit: r1342450 - in /cxf/branches/2.3.x-fixes: ./
common/common/src/main/java/org/apache/cxf/common/logging/JDKBugHacks.java
Author: dkulp
Date: Thu May 24 21:44:58 2012
New Revision: 1342450
URL: http://svn.apache.org/viewvc?rev=1342450&view=rev
Log:
Merged revisions 1342444 via svn merge from
https://svn.us.apache.org/repos/asf/cxf/branches/2.4.x-fixes
........
r1342444 | dkulp | 2012-05-24 17:38:22 -0400 (Thu, 24 May 2012) | 17 lines
Merged revisions 1342366 via svn merge from
https://svn.apache.org/repos/asf/cxf/branches/2.5.x-fixes
........
r1342366 | dkulp | 2012-05-24 14:30:21 -0400 (Thu, 24 May 2012) | 9 lines
Merged revisions 1342039 via git cherry-pick from
https://svn.apache.org/repos/asf/cxf/trunk
........
r1342039 | dkulp | 2012-05-23 16:37:41 -0400 (Wed, 23 May 2012) | 2 lines
[CXF-4313] Allow more options to disable various hacks
........
........
........
Modified:
cxf/branches/2.3.x-fixes/ (props changed)
cxf/branches/2.3.x-fixes/common/common/src/main/java/org/apache/cxf/common/logging/JDKBugHacks.java
Propchange: cxf/branches/2.3.x-fixes/
------------------------------------------------------------------------------
Binary property 'svnmerge-integrated' - no diff available.
Modified: cxf/branches/2.3.x-fixes/common/common/src/main/java/org/apache/cxf/common/logging/JDKBugHacks.java
URL: http://svn.apache.org/viewvc/cxf/branches/2.3.x-fixes/common/common/src/main/java/org/apache/cxf/common/logging/JDKBugHacks.java?rev=1342450&r1=1342449&r2=1342450&view=diff
==============================================================================
--- cxf/branches/2.3.x-fixes/common/common/src/main/java/org/apache/cxf/common/logging/JDKBugHacks.java (original)
+++ cxf/branches/2.3.x-fixes/common/common/src/main/java/org/apache/cxf/common/logging/JDKBugHacks.java Thu May 24 21:44:58 2012
@@ -96,34 +96,18 @@ final class JDKBugHacks {
try {
//Trigger a call to sun.awt.AppContext.getAppContext()
- ImageIO.getCacheDirectory();
- } catch (Throwable t) {
- //ignore
- }
- try {
- // Several components end up opening JarURLConnections without first
- // disabling caching. This effectively locks the file.
- // JAXB does this and thus affects us pretty badly.
- // Doesn't matter that this JAR doesn't exist - just as long as
- // the URL is well-formed
- boolean skip = skipHack("org.apache.cxf.JDKBugHacks.defaultUsesCaches");
- if (!skip) {
- URL url = new URL("jar:file://dummy.jar!/");
- URLConnection uConn = new URLConnection(url) {
- @Override
- public void connect() throws IOException {
- // NOOP
- }
- };
- uConn.setDefaultUseCaches(false);
+ if (!skipHack("org.apache.cxf.JDKBugHacks.imageIO")) {
+ ImageIO.getCacheDirectory();
}
- } catch (Throwable e) {
+ } catch (Throwable t) {
//ignore
}
try {
//DocumentBuilderFactory seems to SOMETIMES pin the classloader
- DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
- factory.newDocumentBuilder();
+ if (!skipHack("org.apache.cxf.JDKBugHacks.documentBuilderFactory")) {
+ DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
+ factory.newDocumentBuilder();
+ }
} catch (Throwable e) {
//ignore
}
@@ -134,10 +118,12 @@ final class JDKBugHacks {
// eventual calls to requestLatency(long) are:
// - javax.management.remote.rmi.RMIConnectorServer.start()
try {
- Class<?> clazz = Class.forName("sun.misc.GC");
- Method method = clazz.getDeclaredMethod("requestLatency",
- new Class[] {Long.TYPE});
- method.invoke(null, Long.valueOf(3600000));
+ if (!skipHack("org.apache.cxf.JDKBugHacks.gcRequestLatency")) {
+ Class<?> clazz = Class.forName("sun.misc.GC");
+ Method method = clazz.getDeclaredMethod("requestLatency",
+ new Class[] {Long.TYPE});
+ method.invoke(null, Long.valueOf(36000000));
+ }
} catch (Throwable e) {
//ignore
}
@@ -146,18 +132,22 @@ final class JDKBugHacks {
// class loader.
try {
// Policy.getPolicy();
- Class<?> policyClass = Class
- .forName("javax.security.auth.Policy");
- Method method = policyClass.getMethod("getPolicy");
- method.invoke(null);
+ if (!skipHack("org.apache.cxf.JDKBugHacks.policy")) {
+ Class<?> policyClass = Class
+ .forName("javax.security.auth.Policy");
+ Method method = policyClass.getMethod("getPolicy");
+ method.invoke(null);
+ }
} catch (Throwable e) {
// ignore
}
try {
// Initializing javax.security.auth.login.Configuration retains a static reference
// to the context class loader.
- Class.forName("javax.security.auth.login.Configuration", true,
- ClassLoader.getSystemClassLoader());
+ if (!skipHack("org.apache.cxf.JDKBugHacks.authConfiguration")) {
+ Class.forName("javax.security.auth.login.Configuration", true,
+ ClassLoader.getSystemClassLoader());
+ }
} catch (Throwable e) {
// Ignore
}
@@ -165,7 +155,29 @@ final class JDKBugHacks {
// initializes the Java Cryptography Architecture. Under certain
// conditions this starts a Token poller thread with TCCL equal
// to the web application class loader.
- java.security.Security.getProviders();
+ if (!skipHack("org.apache.cxf.JDKBugHacks.securityProviders")) {
+ java.security.Security.getProviders();
+ }
+
+ try {
+ // Several components end up opening JarURLConnections without first
+ // disabling caching. This effectively locks the file.
+ // JAXB does this and thus affects us pretty badly.
+ // Doesn't matter that this JAR doesn't exist - just as long as
+ // the URL is well-formed
+ if (!skipHack("org.apache.cxf.JDKBugHacks.defaultUsesCaches")) {
+ URL url = new URL("jar:file://dummy.jar!/");
+ URLConnection uConn = new URLConnection(url) {
+ @Override
+ public void connect() throws IOException {
+ // NOOP
+ }
+ };
+ uConn.setDefaultUseCaches(false);
+ }
+ } catch (Throwable e) {
+ //ignore
+ }
} finally {
Thread.currentThread().setContextClassLoader(orig);
}