Author: sergeyb
Date: Wed Dec  1 21:48:26 2010
New Revision: 1041183

URL: http://svn.apache.org/viewvc?rev=1041183&view=rev
Log:
[CXF-3159] Catching late provider initialization exceptions

Modified:
    
cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/provider/ProviderFactory.java

Modified: 
cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/provider/ProviderFactory.java
URL: 
http://svn.apache.org/viewvc/cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/provider/ProviderFactory.java?rev=1041183&r1=1041182&r2=1041183&view=diff
==============================================================================
--- 
cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/provider/ProviderFactory.java
 (original)
+++ 
cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/provider/ProviderFactory.java
 Wed Dec  1 21:48:26 2010
@@ -59,9 +59,9 @@ public final class ProviderFactory {
     private static final ProviderFactory SHARED_FACTORY = new 
ProviderFactory();
     
     static {
-        
SHARED_FACTORY.setProviders(createProvider("org.apache.cxf.jaxrs.provider.JAXBElementProvider"),
-                                    
createProvider("org.apache.cxf.jaxrs.provider.JSONProvider"),
-                                    new BinaryDataProvider(),
+        setDefaultProvider(SHARED_FACTORY, 
"org.apache.cxf.jaxrs.provider.JAXBElementProvider");
+        setDefaultProvider(SHARED_FACTORY, 
"org.apache.cxf.jaxrs.provider.JSONProvider");        
+        SHARED_FACTORY.setProviders(new BinaryDataProvider(),
                                     new SourceProvider(),
                                     new FormEncodingProvider(),
                                     new PrimitiveTextProvider(),
@@ -91,11 +91,14 @@ public final class ProviderFactory {
     private ProviderFactory() {
     }
     
-    private static Object createProvider(String className) {
+    
+    private static void setDefaultProvider(ProviderFactory factory, String 
className) {
+        
         try {
-            return ClassLoaderUtils.loadClass(className, 
ProviderFactory.class).newInstance();
+            Object provider = ClassLoaderUtils.loadClass(className, 
ProviderFactory.class).newInstance();
+            factory.setProviders(provider);
         } catch (Throwable ex) {
-            String message = "Problem with instantiating the default provider 
" + className;
+            String message = "Problem with setting the default provider " + 
className;
             if (ex.getMessage() != null) {
                 message += ex.getMessage();
             } else {
@@ -103,7 +106,6 @@ public final class ProviderFactory {
             }
             LOG.info(message);
         }
-        return  null;
     }
     
     public static ProviderFactory getInstance() {


Reply via email to