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:46:20 UTC

[cxf] 02/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 master
in repository https://gitbox.apache.org/repos/asf/cxf.git

commit 513f83ecbadcae805d541ee246bf1ae0e80fda53
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
---
 .../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 8088b56..d20f95a 100644
--- a/core/src/main/java/org/apache/cxf/resource/DefaultResourceManager.java
+++ b/core/src/main/java/org/apache/cxf/resource/DefaultResourceManager.java
@@ -114,7 +114,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;