Then you have to destroy conversation in somewhere :)
________________________________ From: Mark Struberg <[email protected]> To: [email protected] Sent: Wed, March 24, 2010 2:07:31 PM Subject: Re: attention - danger zone ;) The main reason is that the current logic over the time stores all beans into the CreationalContext of my @ConversationScoped bean (even normalscoped ones) so this causes mem leaks and crashes when trying to passivate this context. LieGrue, strub --- Gurkan Erdogdu <[email protected]> schrieb am Mi, 24.3.2010: > Von: Gurkan Erdogdu <[email protected]> > Betreff: Re: attention - danger zone ;) > An: [email protected] > Datum: Mittwoch, 24. März, 2010 12:23 Uhr > >>>So while the > InterceptorProxy instance is 1:1 bound to the contextual > instance, the NormalScopedBeanProxy is 1:1 bound to > >>>the injection point. > But there is no 1:1 relation between those 2 proxies but a > n:m. And that is > what made the old code so >>>complicated to read, > because all the resolving > needed to switch dynamically. > > I am not the same here! I do not think that old code is so > complex! It > creates interceptor/decorator stack once in the first > method call and saves > it into creational context for later use. > > This must not be the sole reason to change all logic > completely. > > --Gurkan > > > 2010/3/24 Mark Struberg <[email protected]> > > > hi sven! > > > > yes and no :) > > > > ad 1.) yes, I aim for separating those concerns into 2 > different > > MethodHandlers which will get manifested in 2 proxy > objects. > > > > ad 2.) the logic is really simple: If a bean defines > interceptors or > > decorators, we create a contextual instance which > includes this > > functionality. We do this by creating a proxy and 1:1 > delegating to exactly > > the one contextual instance it serves. So for each > contextual instance which > > needs to get intercepted/decorated, we create a single > proxy to serve this > > purpose > > > > For all @NormalScoped beans, I'll create a > NormalScopedBeanProxy which only > > serves to resolve the correct contextual instance > (with any interception > > already applied) and delegates all method invocations > to this underlying > > contextual instance. > > > > So while the InterceptorProxy instance is 1:1 bound to > the contextual > > instance, the NormalScopedBeanProxy is 1:1 bound to > the injection point. But > > there is no 1:1 relation between those 2 proxies but a > n:m. And that is what > > made the old code so complicated to read, because all > the resolving needed > > to switch dynamically. > > > > ad 3.) Yes, if the context is a passivating one, then > the contextual > > instance (including all it's interceptors/decorators) > will get serialized to > > that passivation storage. This is now exactly as it is > defined in the spec! > > > > ad 4.) exactly! > > > > LieGrue, > > strub > > > > > > --- Sven Linstaedt <[email protected]> > schrieb am Di, > > 23.3.2010: > > > > > Von: Sven Linstaedt <[email protected]> > > > Betreff: Re: attention - danger zone ;) > > > An: [email protected] > > > Datum: Dienstag, 23. März, 2010 23:17 Uhr > > > Hi Mark, > > > > > > just for my personal understanding: The proposed > changes > > > imply: > > > > > > 1. Introducing two seperate MethodHandler. One > for > > > resolving NormalScope > > > beans to the actual instance. Another one for > applying the > > > interception/decoration stack. > > > > > > 2. As only one MethodHandler can be attached to > proxy class > > > instances, for > > > dependent scoped beans the > interception/decoration handler > > > is attached. For > > > normal scope instances the resolving handler is > attached. > > > > > > 3. The interception/decoration MethodHandler > including the > > > actual > > > interceptor/decorator instances is part of the > bean state > > > (?), so it is > > > serialized to a normal scope along with the bean > instance. > > > > > > 4. This implies the scope receives not the > concrete bean > > > instance, but > > > rather the proxy class instance with attached > > > MethodHandler, which in turn > > > contains of the bean instance and > interceptor/decorator > > > instances? > > > > > > > > > br, Sven > > > > > > > > > 2010/3/23 Mark Struberg <[email protected]> > > > > > > > The current > NormalScopedBeanInterceptorHandler is a > > > subclass of the > > > > InterceptorHandler. > > > > > > > > But while the InterceptorHandler is fixed > 1:1 to a > > > contextual instance, the > > > > proxy we need to handle the NormalScoped > behaviour is > > > different for each and > > > > every injection point. There is currently a > lot code > > > to work around this > > > > logical separation, but I consider this to > be what it > > > is - a workaround. See > > > > my comments on OWB-329. Maybe I was not > clear enough > > > and should elaborate > > > > further? > > > > > > > > txs and LieGrue, > > > > strub > > > > > > > > --- Gurkan Erdogdu <[email protected]> > > > schrieb am Di, 23.3.2010: > > > > > > > > > Von: Gurkan Erdogdu <[email protected]> > > > > > Betreff: Re: attention - danger zone > ;) > > > > > An: [email protected] > > > > > Datum: Dienstag, 23. März, 2010 19:51 > Uhr > > > > > >>>I'm currently refactoring > > > > > the decorator / interceptor stuff by > > > > > splitting the Interceptor and > Decorator > > > MethodHandlers from > > > > > the > > > > > > >>>NormalScopedBeanMethodHandler. > > > > > Why? Interceptor/Decorator is handled > in the > > > abstract class > > > > > InterceptorHandler not in > > > NormalScopedBeanMethodHandler. > > > > > > > > > > What is the problem with current > approach? > > > Currently > > > > > InterceptorHandler performs > interceptor/decorator > > > stack for > > > > > bean just one case. > > > > > > > > > > Thanks; > > > > > > > > > > --Gurkan > > > > > > > > > > > > > > > > > > > > > > > > > ________________________________ > > > > > From: Mark Struberg <[email protected]> > > > > > To: [email protected] > > > > > Sent: Tue, March 23, 2010 8:09:49 PM > > > > > Subject: attention - danger zone ;) > > > > > > > > > > Hi! > > > > > > > > > > I'm currently refactoring the decorator > / > > > interceptor stuff > > > > > by splitting the Interceptor and > Decorator > > > MethodHandlers > > > > > from the > NormalScopedBeanMethodHandler. > > > > > > > > > > This will also allow implementing those > parts as > > > pure > > > > > subclasses later. > > > > > > > > > > I'm back to only 2 broken tests and my > real world > > > app is > > > > > running again. > > > > > > > > > > Please do not checkin big changes into > SVN in > > > > > webbeans-impl. > > > > > > > > > > txs and LieGrue, > > > > > strub > > > > > > > > > > > > > > __________________________________________________ > > > > > 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! > > > > > > > > > __________________________________________________ > > > > Do You Yahoo!? > > > > Sie sind Spam leid? Yahoo! Mail verfügt > über einen > > > herausragenden Schutz > > > > gegen Massenmails. > > > > http://mail.yahoo.com > > > > > > > > > > > __________________________________________________ > > Do You Yahoo!? > > Sie sind Spam leid? Yahoo! Mail verfügt über einen > herausragenden Schutz > > gegen Massenmails. > > http://mail.yahoo.com > > > > > > -- > Gurkan Erdogdu > http://gurkanerdogdu.blogspot.com > __________________________________________________ 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!
