My point is that those handlers are initiated by something for example via EL 
or some code calls getReference with parameter CreationalContex



________________________________
From: Mark Struberg <[email protected]>
To: [email protected]
Sent: Wed, March 24, 2010 9:52:04 PM
Subject: Re: svn commit: r927155 - in 
/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/intercept: 
ApplicationScopedBeanIntereptorHandler.java 
NormalScopedBeanInterceptorHandler.java

Gurkan, in this very case WE are the client!

Think of the NormalScopedBean proxy as a simple wrapper which always 
automatically says 'oh, lets see if we have a correct contextual instance, and 
if not let's create it before calling the function'. 
This is really exactly the same as a client would do in this case!

LieGrue,
strub

--- Gurkan Erdogdu <[email protected]> schrieb am Mi, 24.3.2010:

> Von: Gurkan Erdogdu <[email protected]>
> Betreff: Re: svn commit: r927155 - in 
> /openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/intercept:
>  ApplicationScopedBeanIntereptorHandler.java 
> NormalScopedBeanInterceptorHandler.java
> An: [email protected]
> Datum: Mittwoch, 24. März, 2010 20:21 Uhr
> I think this is not correct! You can
> not create CreationalContext via null checking.
> CreationalContext is used by the container when any clients
> call getReference in BeanManager and managed by the
> container. 
> 
> I was so tired to explain again and again same things that
> never changes something sorry!
> 
> 
> --Gurkan
> 
> 
> ________________________________
> From: "[email protected]"
> <[email protected]>
> To: [email protected]
> Sent: Wed, March 24, 2010 8:57:45 PM
> Subject: svn commit: r927155 - in
> /openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/intercept:
> ApplicationScopedBeanIntereptorHandler.java
> NormalScopedBeanInterceptorHandler.java
> 
> Author: struberg
> Date: Wed Mar 24 18:57:45 2010
> New Revision: 927155
> 
> URL: http://svn.apache.org/viewvc?rev=927155&view=rev
> Log:
> OWB-329 fix serialization and CreationalContext issues in
> NormalScoped interceptors
> 
> We can easily drop the CreationalContext in the
> NormalScoped interceptors, because
> we only need it if the contextual instance doesn't already
> exist. In this case,
> the new @NormalScoped contextual instance needs to get a
> new CreationalContext anyway!
> 
> Modified:
>    
> openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/intercept/ApplicationScopedBeanIntereptorHandler.java
>    
> openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/intercept/NormalScopedBeanInterceptorHandler.java
> 
> Modified:
> openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/intercept/ApplicationScopedBeanIntereptorHandler.java
> URL: 
> http://svn.apache.org/viewvc/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/intercept/ApplicationScopedBeanIntereptorHandler.java?rev=927155&r1=927154&r2=927155&view=diff
> ==============================================================================
> ---
> openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/intercept/ApplicationScopedBeanIntereptorHandler.java
> (original)
> +++
> openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/intercept/ApplicationScopedBeanIntereptorHandler.java
> Wed Mar 24 18:57:45 2010
> @@ -37,7 +37,7 @@ public class ApplicationScopedBeanIntere
>      private static final long
> serialVersionUID = 1L;
> 
>      /**Cached bean instance*/
> -    private Object cachedInstance = null;
> +    private transient Object cachedInstance =
> null;
>     
>      /**
>       * Creates a new handler.
> 
> Modified:
> openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/intercept/NormalScopedBeanInterceptorHandler.java
> URL: 
> http://svn.apache.org/viewvc/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/intercept/NormalScopedBeanInterceptorHandler.java?rev=927155&r1=927154&r2=927155&view=diff
> ==============================================================================
> ---
> openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/intercept/NormalScopedBeanInterceptorHandler.java
> (original)
> +++
> openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/intercept/NormalScopedBeanInterceptorHandler.java
> Wed Mar 24 18:57:45 2010
> @@ -26,7 +26,7 @@ import javax.enterprise.context.spi.Cont
> import javax.enterprise.context.spi.CreationalContext;
> 
> import org.apache.webbeans.component.OwbBean;
> -import org.apache.webbeans.context.AbstractContext;
> +import
> org.apache.webbeans.context.creational.CreationalContextFactory;
> import
> org.apache.webbeans.context.creational.CreationalContextImpl;
> 
> /**
> @@ -41,7 +41,7 @@ public class NormalScopedBeanInterceptor
>      private static final long
> serialVersionUID = 1L;
>     
>      /**Creational context*/
> -    private CreationalContext<?>
> creationalContext;
> +    private transient CreationalContext<?>
> creationalContext;
> 
>      /**
>       * Creates a new bean instance
> @@ -93,17 +93,21 @@ public class
> NormalScopedBeanInterceptor
>          //Context of the
> bean
>          Context
> webbeansContext =
> getBeanManager().getContext(bean.getScope());
>         
> -        //Already saved in context
> -       
> if((webbeansInstance=webbeansContext.get(bean)) != null)
> +        //Already saved in context?
> +       
> webbeansInstance=webbeansContext.get(bean);
> +        if (webbeansInstance != null)
>          {
> -           
> CreationalContext<Object> creational =
> ((AbstractContext)webbeansContext).getCreationalContext(bean);
> -            if (creational
> != null)
> -            {
> -               
> this.creationalContext = creational;
> -            }
> +            // voila, we are
> finished if we found an existing contextual instance
> +            return
> webbeansInstance;
>          }
> -
> -        //create a new instance
> +        
> +        if (creationalContext ==
> null)
> +        {
> +            // if there was
> no CreationalContext set from external, we create a new one
> +           
> creationalContext =
> CreationalContextFactory.getInstance().getCreationalContext(bean);
> +        }
> +        
> +        // finally, we create a new
> contextual instance
>          webbeansInstance =
> webbeansContext.get((Contextual<Object>)this.bean,
> (CreationalContext<Object>) creationalContext);
>         
>          return
> webbeansInstance;
> 
> 
>      
> ___________________________________________________________________
> Yahoo! Türkiye açıldı!  http://yahoo.com.tr
> İnternet üzerindeki en iyi içeriği Yahoo! Türkiye
> sizlere sunuyor!

__________________________________________________
Do You Yahoo!?
Sie sind Spam leid? Yahoo! Mail verfügt über einen herausragenden Schutz gegen 
Massenmails. 
http://mail.yahoo.com



      ___________________________________________________________________
Yahoo! Türkiye açıldı!  http://yahoo.com.tr
İnternet üzerindeki en iyi içeriği Yahoo! Türkiye sizlere sunuyor!

Reply via email to