openwebbeans-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Mark Struberg <strub...@yahoo.de>
Subject Re: svn commit: r1565779 - /openwebbeans/branches/owb_1.2.x/webbeans-impl/src/main/java/org/apache/webbeans/proxy/NormalScopeProxyFactory.java
Date Fri, 07 Feb 2014 20:39:05 GMT
-1 for this commit, this will most probably break all EAR or other ClassLoader hierarchy scenarios.
please revert!

The reason for taking the bean classloader is that this is the only classloader which guarantees
perfect visibility.
what if we have to create a bean in a shared EAR lib folder? If we would use the TCCL, then
the created proxy class would get registered in a random WebAppClassLoader, right? And this
would cause NoClassDefFound if the @ApplicationScoped contextual instance would get accessed
from another webapp. 
Do you agree on this?

We've had a long discussion on this already...
OSGi is in general broken in regards to classloading. I see no reason why we should break
sane scenarios for it.

LieGrue,
strub





On Friday, 7 February 2014, 20:58, "rmannibucau@apache.org" <rmannibucau@apache.org>
wrote:
 
Author: rmannibucau
>Date: Fri Feb  7 19:58:32 2014
>New Revision: 1565779
>
>URL: http://svn.apache.org/r1565779
>Log:
>OWB-931 using tccl first in normal scope proxy factory - to port to trunk when validated
against tomee
>
>Modified:
>    openwebbeans/branches/owb_1.2.x/webbeans-impl/src/main/java/org/apache/webbeans/proxy/NormalScopeProxyFactory.java
>
>Modified: openwebbeans/branches/owb_1.2.x/webbeans-impl/src/main/java/org/apache/webbeans/proxy/NormalScopeProxyFactory.java
>URL: http://svn.apache.org/viewvc/openwebbeans/branches/owb_1.2.x/webbeans-impl/src/main/java/org/apache/webbeans/proxy/NormalScopeProxyFactory.java?rev=1565779&r1=1565778&r2=1565779&view=diff
>==============================================================================
>--- openwebbeans/branches/owb_1.2.x/webbeans-impl/src/main/java/org/apache/webbeans/proxy/NormalScopeProxyFactory.java
(original)
>+++ openwebbeans/branches/owb_1.2.x/webbeans-impl/src/main/java/org/apache/webbeans/proxy/NormalScopeProxyFactory.java
Fri Feb  7 19:58:32 2014
>@@ -115,18 +115,17 @@ public class NormalScopeProxyFactory ext
>
>     public <T> T createNormalScopeProxy(Bean<T> bean)
>     {
>-        final ClassLoader classLoader;
>-        if (bean.getBeanClass() != null)
>+        ClassLoader classLoader = WebBeansUtil.getCurrentClassLoader();
>+        if (classLoader == null)
>         {
>-            classLoader = bean.getBeanClass().getClassLoader();
>-        }
>-        else if (OwbBean.class.isInstance(bean) && OwbBean.class.cast(bean).getReturnType()
!= null)
>-        {
>-            classLoader = OwbBean.class.cast(bean).getReturnType().getClassLoader();
>-        }
>-        else
>-        {
>-            classLoader = WebBeansUtil.getCurrentClassLoader();
>+            if (bean.getBeanClass() != null)
>+            {
>+                classLoader = bean.getBeanClass().getClassLoader();
>+            }
>+            else if (OwbBean.class.isInstance(bean) && OwbBean.class.cast(bean).getReturnType()
!= null)
>+            {
>+                classLoader = OwbBean.class.cast(bean).getReturnType().getClassLoader();
>+            }
>         }
>
>         Class<T> classToProxy;
>
>
>
>
>
Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message