Yes, look create(Bean) in
http://svn.apache.org/repos/asf/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/inject/instance/InstanceImpl.java
and
http://svn.apache.org/repos/asf/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/context/creational/CreationalContextImpl.java
 destroyDependent

point is even string can be destroyed with some logic (think to producers
@Disposes)


Romain Manni-Bucau
@rmannibucau <https://twitter.com/rmannibucau> |  Blog
<http://rmannibucau.wordpress.com> | Github <https://github.com/rmannibucau> |
LinkedIn <https://www.linkedin.com/in/rmannibucau>

2015-02-27 19:32 GMT+01:00 Lars-Fredrik Smedberg <[email protected]>:

> @Romain that is okay i guess as long as the produced value is not request
> (perhaps on a per user basis) dependent... in that case i would like to
> create it in the scope of the method called on the applicationscoped bean...
>
> So I guess if I have this scenario I would need to either
>
> 1) do as u suggest by storing the value in the @postconstruct if it
> possible (see above)
>
> 2) make the dependent object scoped
>
> 3) set another scope on the @ApplicationScoped  or @Singleton
>
> Out of curiosity... when the value is for example a String or Locale which
> is not subclassable...is owb holding on to the value somehow and prevent
> them from being gc ed?
>
> ...or maybe i got it all wrong. ...
> On Feb 27, 2015 7:26 PM, "Romain Manni-Bucau" <[email protected]>
> wrote:
>
>> When I used this pattern I always did (for perf reason but side effect is
>>  behavior is what you want):
>>
>> @PostConstruct
>> private void resolve() {
>>    value = instance......get();
>> }
>>
>> then in the code don't use instance at all but value.
>>
>>
>>
>> Romain Manni-Bucau
>> @rmannibucau <https://twitter.com/rmannibucau> |  Blog
>> <http://rmannibucau.wordpress.com> | Github
>> <https://github.com/rmannibucau> | LinkedIn
>> <https://www.linkedin.com/in/rmannibucau>
>>
>> 2015-02-27 19:15 GMT+01:00 John D. Ament <[email protected]>:
>>
>>> Are you calling get() on the Instance with each request (or whatever0
>>> that comes into this bean?
>>>
>>> On Fri, Feb 27, 2015 at 1:13 PM Karl Kildén <[email protected]>
>>> wrote:
>>>
>>>> To explain myself further ALL I had on my heap was my
>>>> Instance<MyInterface>... and gc released 0.5% memory :)
>>>>
>>>> I had 200 000 of them at least. They where supposed to be four
>>>> singletons. My idea was inject into @ApplicationScoped and omit to give
>>>> them scope because they will be @ApplicationScoped anyways... Seems every
>>>> invocation of my @ApplicationScoped bean recreated all instances.
>>>>
>>>> What I had was unrecoverable mem leak. Now I could be doing something
>>>> stupid or Instance<MyInterface> has a problem or something else...
>>>>
>>>> Cheers
>>>>
>>>>
>>>>
>>>> On 27 February 2015 at 19:05, Romain Manni-Bucau <[email protected]
>>>> > wrote:
>>>>
>>>>> If dependent it will be kept in enclosing bean.
>>>>>  Le 27 févr. 2015 19:00, "Lars-Fredrik Smedberg" <[email protected]>
>>>>> a écrit :
>>>>>
>>>>> So does this mean that there will be a memory leak in the case Karl
>>>>>> described?
>>>>>>
>>>>>> I have used similar constructs before so im curios (@Inject @Provider
>>>>>> <some dep scoped bean> in an @ApplicationScoped bean and called get () on
>>>>>> the injected provider).
>>>>>>
>>>>>> I thought for a while that it might get garbage collected when the
>>>>>> created bean is outof scope or maybe then there is no way for @PreDestroy
>>>>>> to be called?
>>>>>>
>>>>>> Regards
>>>>>> LF
>>>>>>
>>>>>> I thought that the created dep scoped bean would be
>>>>>> On Feb 27, 2015 6:07 PM, "Romain Manni-Bucau" <[email protected]>
>>>>>> wrote:
>>>>>>
>>>>>>> Yes.
>>>>>>>
>>>>>>> Will be destoyed with the bean where it is injected IIRC so the app
>>>>>>> here.
>>>>>>> Le 27 févr. 2015 16:59, <[email protected]> a écrit :
>>>>>>>
>>>>>>>> Hello! I have a bean with @ApplicationScoped. When I inject
>>>>>>>> Instance<MyInterface> instance and my actual beans implementing 
>>>>>>>> MyInstance
>>>>>>>> are dependentscoped they get recreated over and over and are not gc'd.
>>>>>>>>
>>>>>>>> Expected behavior?
>>>>>>>>
>>>>>>>> Cheers
>>>>>>>
>>>>>>>
>>>>
>>

Reply via email to