[webbeans-commits] Webbeans SVN: r392 - in ri/trunk/webbeans-ri/src: test/java/org/jboss/webbeans/test and 1 other directory.

webbeans-commits at lists.jboss.org webbeans-commits at lists.jboss.org
Wed Dec 3 06:46:16 EST 2008


Author: nickarls
Date: 2008-12-03 06:46:14 -0500 (Wed, 03 Dec 2008)
New Revision: 392

Modified:
   ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/bean/proxy/ProxyPool.java
   ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/ClientProxyTest.java
Log:
fix tests, change exception handling in proxy pool

Modified: ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/bean/proxy/ProxyPool.java
===================================================================
--- ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/bean/proxy/ProxyPool.java	2008-12-03 11:40:01 UTC (rev 391)
+++ ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/bean/proxy/ProxyPool.java	2008-12-03 11:46:14 UTC (rev 392)
@@ -28,7 +28,6 @@
 import javassist.util.proxy.ProxyObject;
 
 import javax.webbeans.DefinitionException;
-import javax.webbeans.UnproxyableDependencyException;
 import javax.webbeans.manager.Bean;
 
 import org.jboss.webbeans.ManagerImpl;
@@ -146,13 +145,25 @@
     * @throws IllegalAccessException When the proxy couldn't be created
     */
    @SuppressWarnings("unchecked")
-   private <T> T createClientProxy(Bean<T> bean, int beanIndex) throws InstantiationException, IllegalAccessException
+   private <T> T createClientProxy(Bean<T> bean, int beanIndex) throws RuntimeException
    {
       ProxyFactory proxyFactory = new ProxyFactory();
       TypeInfo typeInfo = getTypeInfo(bean.getTypes());
       proxyFactory.setInterfaces(typeInfo.interfaces);
       proxyFactory.setSuperclass(typeInfo.superclass);
-      T clientProxy = (T) proxyFactory.createClass().newInstance();
+      T clientProxy;
+      try
+      {
+         clientProxy = (T) proxyFactory.createClass().newInstance();
+      }
+      catch (InstantiationException e)
+      {
+         throw new RuntimeException("Could not instantiate client proxy for " + bean, e);
+      }
+      catch (IllegalAccessException e)
+      {
+         throw new RuntimeException("Could not access bean correctly when creating client proxy for " + bean, e);
+      }
       ProxyMethodHandler proxyMethodHandler = new ProxyMethodHandler(bean, beanIndex, manager);
       ((ProxyObject) clientProxy).setHandler(proxyMethodHandler);
       return clientProxy;
@@ -172,24 +183,13 @@
       Object clientProxy = pool.get(bean);
       if (clientProxy == null)
       {
-         try
+         int beanIndex = manager.getBeans().indexOf(bean);
+         if (beanIndex < 0)
          {
-            int beanIndex = manager.getBeans().indexOf(bean);
-            if (beanIndex < 0)
-            {
-               throw new DefinitionException(bean + " is not known to the manager");
-            }
-            clientProxy = createClientProxy(bean, beanIndex);
+            throw new DefinitionException(bean + " is not known to the manager");
          }
-         catch (DefinitionException e)
-         {
-            throw e;
-         }
-         catch (Exception e)
-         {
-            // TODO: What to *really* do here?
-            throw new UnproxyableDependencyException("Could not create client proxy for " + bean.getName(), e);
-         }
+         clientProxy = createClientProxy(bean, beanIndex);
+
          pool.put(bean, clientProxy);
       }
       return clientProxy;

Modified: ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/ClientProxyTest.java
===================================================================
--- ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/ClientProxyTest.java	2008-12-03 11:40:01 UTC (rev 391)
+++ ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/ClientProxyTest.java	2008-12-03 11:46:14 UTC (rev 392)
@@ -27,6 +27,7 @@
    public void testReflectionsUsedForNormalScope()
    {
       Bean<Tuna> tunaBean = BeanFactory.createSimpleBean(Tuna.class, manager);
+      manager.addBean(tunaBean);
       Tuna tuna = manager.getInstance(tunaBean);
       assert Reflections.isProxy(tuna);
    }
@@ -57,6 +58,7 @@
    public void testSimpleWebBeanReflectionsIsSerializable() throws IOException, ClassNotFoundException
    {
       Bean<TunedTuna> tunaBean = BeanFactory.createSimpleBean(TunedTuna.class, manager);
+      manager.addBean(tunaBean);
       TunedTuna tuna = manager.getInstance(tunaBean);
       assert Reflections.isProxy(tuna);
       byte[] bytes = serializeBean(tuna);




More information about the weld-commits mailing list