You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@aries.apache.org by ju...@apache.org on 2017/01/31 10:47:31 UTC

[2/2] aries-rsa git commit: use own classloader as fallback if class not found

use own classloader as fallback if class not found

e.g. if the consuming bundle does not import service exception we can
look the class up from our own classloader

Project: http://git-wip-us.apache.org/repos/asf/aries-rsa/repo
Commit: http://git-wip-us.apache.org/repos/asf/aries-rsa/commit/09771c94
Tree: http://git-wip-us.apache.org/repos/asf/aries-rsa/tree/09771c94
Diff: http://git-wip-us.apache.org/repos/asf/aries-rsa/diff/09771c94

Branch: refs/heads/master
Commit: 09771c940422a3f83d3779d6d8b482959605f95a
Parents: 2331e82
Author: Johannes Utzig <ju...@apache.org>
Authored: Mon Jan 30 17:13:59 2017 +0100
Committer: Johannes Utzig <ju...@apache.org>
Committed: Tue Jan 31 11:45:14 2017 +0100

----------------------------------------------------------------------
 .../provider/fastbin/util/ClassLoaderObjectInputStream.java    | 6 ++++++
 1 file changed, 6 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/aries-rsa/blob/09771c94/provider/fastbin/src/main/java/org/apache/aries/rsa/provider/fastbin/util/ClassLoaderObjectInputStream.java
----------------------------------------------------------------------
diff --git a/provider/fastbin/src/main/java/org/apache/aries/rsa/provider/fastbin/util/ClassLoaderObjectInputStream.java b/provider/fastbin/src/main/java/org/apache/aries/rsa/provider/fastbin/util/ClassLoaderObjectInputStream.java
index e9f1d9c..6740938 100644
--- a/provider/fastbin/src/main/java/org/apache/aries/rsa/provider/fastbin/util/ClassLoaderObjectInputStream.java
+++ b/provider/fastbin/src/main/java/org/apache/aries/rsa/provider/fastbin/util/ClassLoaderObjectInputStream.java
@@ -70,6 +70,12 @@ public class ClassLoaderObjectInputStream extends ObjectInputStream {
             if (clazz != null) {
                 return clazz;
             } else {
+                try{
+                    //try to load it with our own classloader (could be e.g. a service exception)
+                    return Class.forName(className, false, this.getClassLoader());
+                } catch(ClassNotFoundException e2) {
+                    //ignore
+                }
                 throw e;
             }
         }