You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cxf.apache.org by ff...@apache.org on 2019/05/23 17:58:32 UTC

[cxf] 01/02: [CXF-8041]catch unchecked exceptions for all ResourceResolvers so all ResourceResolvers have chance to run

This is an automated email from the ASF dual-hosted git repository.

ffang pushed a commit to branch 3.2.x-fixes
in repository https://gitbox.apache.org/repos/asf/cxf.git

commit 0f9926cbda134c8b29e6834d0e172bf0f68d3316
Author: Freeman Fang <fr...@gmail.com>
AuthorDate: Thu May 23 13:46:06 2019 -0400

    [CXF-8041]catch unchecked exceptions for all ResourceResolvers so all ResourceResolvers have chance to run
    
    (cherry picked from commit 513f83ecbadcae805d541ee246bf1ae0e80fda53)
---
 .../org/apache/cxf/resource/DefaultResourceManager.java   | 15 ++++++++++++++-
 1 file changed, 14 insertions(+), 1 deletion(-)

diff --git a/core/src/main/java/org/apache/cxf/resource/DefaultResourceManager.java b/core/src/main/java/org/apache/cxf/resource/DefaultResourceManager.java
index 9b0564d..9aedc77 100644
--- a/core/src/main/java/org/apache/cxf/resource/DefaultResourceManager.java
+++ b/core/src/main/java/org/apache/cxf/resource/DefaultResourceManager.java
@@ -117,7 +117,20 @@ public class DefaultResourceManager implements ResourceManager {
             if (asStream) {
                 ret = type.cast(rr.getAsStream(name));
             } else {
-                ret = rr.resolve(name, type);
+                try  {
+                    ret = rr.resolve(name, type);
+                } catch (RuntimeException ex) {
+                    //ResourceResolver.resolve method expected to 
+                    //return an instance of the resource or null if the
+                    //resource cannot be resolved. So we just catch 
+                    //Unchecked exceptions during resolving resource and log it.   
+                    //So other ResourceResolver get chance to be used
+                    if (LOG.isLoggable(Level.FINE)) {
+                        LOG.log(Level.FINE, 
+                             "run into exception when using" + rr.getClass().getName(), ex);
+                    }
+
+                }
             }
             if (ret != null) {
                 break;