You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@openwebbeans.apache.org by rm...@apache.org on 2013/08/20 14:59:49 UTC

svn commit: r1515809 - /openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/util/OwbCustomObjectInputStream.java

Author: rmannibucau
Date: Tue Aug 20 12:59:49 2013
New Revision: 1515809

URL: http://svn.apache.org/r1515809
Log:
fixing our OwbCustomObjectInputStream implementation to handle resolveProxyClass

Modified:
    openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/util/OwbCustomObjectInputStream.java

Modified: openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/util/OwbCustomObjectInputStream.java
URL: http://svn.apache.org/viewvc/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/util/OwbCustomObjectInputStream.java?rev=1515809&r1=1515808&r2=1515809&view=diff
==============================================================================
--- openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/util/OwbCustomObjectInputStream.java (original)
+++ openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/util/OwbCustomObjectInputStream.java Tue Aug 20 12:59:49 2013
@@ -22,6 +22,7 @@ import java.io.IOException;
 import java.io.InputStream;
 import java.io.ObjectInputStream;
 import java.io.ObjectStreamClass;
+import java.lang.reflect.Proxy;
 
 public class OwbCustomObjectInputStream extends ObjectInputStream
 {
@@ -39,4 +40,22 @@ public class OwbCustomObjectInputStream 
         return Class.forName(desc.getName(), false, classLoader);
     }
 
+    @Override
+    protected Class resolveProxyClass(String[] interfaces) throws IOException, ClassNotFoundException
+    {
+        final Class[] cinterfaces = new Class[interfaces.length];
+        for (int i = 0; i < interfaces.length; i++)
+        {
+            cinterfaces[i] = Class.forName(interfaces[i], false, classLoader);
+        }
+
+        try
+        {
+            return Proxy.getProxyClass(classLoader, cinterfaces);
+        }
+        catch (IllegalArgumentException e)
+        {
+            throw new ClassNotFoundException(null, e);
+        }
+    }
 }