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 2011/03/13 04:04:12 UTC

svn commit: r1081036 - /cxf/trunk/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/saaj/SAAJFactoryResolver.java

Author: dkulp
Date: Sun Mar 13 03:04:12 2011
New Revision: 1081036

URL: http://svn.apache.org/viewvc?rev=1081036&view=rev
Log:
[CXF-3363] Add a couple guards around the soap 1.2 factory creations

Modified:
    cxf/trunk/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/saaj/SAAJFactoryResolver.java

Modified: cxf/trunk/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/saaj/SAAJFactoryResolver.java
URL: http://svn.apache.org/viewvc/cxf/trunk/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/saaj/SAAJFactoryResolver.java?rev=1081036&r1=1081035&r2=1081036&view=diff
==============================================================================
--- cxf/trunk/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/saaj/SAAJFactoryResolver.java (original)
+++ cxf/trunk/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/saaj/SAAJFactoryResolver.java Sun Mar 13 03:04:12 2011
@@ -46,7 +46,7 @@ public final class SAAJFactoryResolver {
         MessageFactory messageFactory;
         String messageFactoryClassName = System.getProperty(MESSAGE_FACTORY_KEY);
         if (messageFactoryClassName != null) {
-            messageFactory = newInstanceCxfMessageFactory(messageFactoryClassName,
+            messageFactory = newInstanceCxfSAAJFactory(messageFactoryClassName,
                                                           MessageFactory.class);
         } else if (version instanceof Soap11) {
             try {
@@ -55,7 +55,11 @@ public final class SAAJFactoryResolver {
                 messageFactory = MessageFactory.newInstance();
             }
         } else if (version instanceof Soap12) {
-            messageFactory = MessageFactory.newInstance(SOAPConstants.SOAP_1_2_PROTOCOL);
+            try {
+                messageFactory = MessageFactory.newInstance(SOAPConstants.SOAP_1_2_PROTOCOL);
+            } catch (Throwable t) {
+                messageFactory = MessageFactory.newInstance();
+            }
         } else {
             messageFactory = MessageFactory.newInstance();
         }
@@ -66,7 +70,7 @@ public final class SAAJFactoryResolver {
         SOAPFactory soapFactory;
         String soapFactoryClassName = System.getProperty(SOAP_FACTORY_KEY);
         if (soapFactoryClassName != null) {
-            soapFactory = newInstanceCxfMessageFactory(soapFactoryClassName,
+            soapFactory = newInstanceCxfSAAJFactory(soapFactoryClassName,
                                                        SOAPFactory.class);
         } else if (version instanceof Soap11) {
             try {
@@ -75,14 +79,18 @@ public final class SAAJFactoryResolver {
                 soapFactory = SOAPFactory.newInstance();
             }
         } else if (version instanceof Soap12) {
-            soapFactory = SOAPFactory.newInstance(SOAPConstants.SOAP_1_2_PROTOCOL);
+            try {
+                soapFactory = SOAPFactory.newInstance(SOAPConstants.SOAP_1_2_PROTOCOL);
+            } catch (Throwable t) {
+                soapFactory = SOAPFactory.newInstance();
+            }
         } else {
             soapFactory = SOAPFactory.newInstance();
         }
         return soapFactory;
     }
 
-    private static <T> T newInstanceCxfMessageFactory(String factoryName, Class<T> cls)
+    private static <T> T newInstanceCxfSAAJFactory(String factoryName, Class<T> cls)
         throws SOAPException {
         try {
             Class<?> klass = Class.forName(factoryName);