[cdi-dev] [JBoss JIRA] (CDI-616) Injection point declared as transient is not useful

Stephan Knitelius (JIRA) issues at jboss.org
Wed Jun 15 08:08:00 EDT 2016


    [ https://issues.jboss.org/browse/CDI-616?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13252810#comment-13252810 ] 

Stephan Knitelius commented on CDI-616:
---------------------------------------

{quote}
Regarding transient fields. Could be useful to have non-normalscoped beans marked transient and manually resolve them from the BeanManager during deserialisation. This is perfectly legit.
{quote}
[~struberg] are you sure, I can't think of (m)any resonalbe usecases? 

Never the less, my suggestion is:
* ERROR - when normal scoped injects are marked transient.
* WARNING - when non-normal scoped injects are marked transient. 

> Injection point declared as transient is not useful
> ---------------------------------------------------
>
>                 Key: CDI-616
>                 URL: https://issues.jboss.org/browse/CDI-616
>             Project: CDI Specification Issues
>          Issue Type: Clarification
>          Components: Concepts
>    Affects Versions: 1.2.Final
>         Environment: n/a
>            Reporter: Emily Jiang
>            Priority: Minor
>
> An injection point declared as 'transient' is not useful, due to the fact of after bean's passivation, the transient field will not be reinjected and its value will be lost. This causes confusion. See Weld forum discussion [link title|https://developer.jboss.org/thread/179486]. In the section 5.5.7, how about to make the following changes?
> The isTransient() method returns true if the injection point is a transient field, and
> false otherwise. If the injection point represents a dynamically obtained instance then the
> isTransient() method returns true if the Instance injection point is a transient field, and
> false otherwise.
> =>
> The isTransient() method returns true if the injection point is a transient field, and
> false otherwise. If the injection point represents a dynamically obtained instance then the
> isTransient() method returns true if the Instance injection point is a transient field, and
> false otherwise. If this injection point is declared as transient, after bean's passivation, the value will not be restored. Instance injection point is the preferred approach.
> Any other better suggestions?



--
This message was sent by Atlassian JIRA
(v6.4.11#64026)


More information about the cdi-dev mailing list