[cdi-dev] [JBoss JIRA] Commented: (CDI-153) PassivationCapable producer method/field definition is ambiguous

Mark Struberg (JIRA) jira-events at lists.jboss.org
Fri Sep 9 06:09:26 EDT 2011


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

Mark Struberg commented on CDI-153:
-----------------------------------

Just a note why I was able to cut down so many conditions:


I originally have had:
If a producer method declares a passivating scope and:
* doesn't have a primitive return type, and 
* doesn't have a return type that implements or extends Serializable, and 
* doesn't only return Serializable types at runtime
then the container the container must throw an IllegalProductException

But the first two conditions are imo already covered by the 3rd one and cannot get tested at startup anyway.


> PassivationCapable producer method/field definition is ambiguous
> ----------------------------------------------------------------
>
>                 Key: CDI-153
>                 URL: https://issues.jboss.org/browse/CDI-153
>             Project: CDI Specification Issues
>          Issue Type: Clarification
>          Components: Resolution
>    Affects Versions: 1.0
>            Reporter: Mark Struberg
>             Fix For: 1.1 (Proposed)
>
>
> Currently the spec paragraph 6.6.1 and 6.6.4 contradict themselfs a bit
> 6.6.1 (which is an overview) defines:
> •	A producer method is passivation capable if and only if it never returns a value which is not passivation capable at runtime. A producer method with a primitive return type or a return type that implements or extends Serializable is passivation capable. A producer method with a return type that is declared final and does not implement Serializable is not passivation capable.
> •	A producer field is passivation capable if and only if it never refers to a value which is not passivation capable at runtime. A producer field with a primitive type or a type that implements or extends Serializable is passivation cap- able. A producer field with a type that is declared final and does not implement Serializable is not passivation cap- able.
> and 6.6.4:
> If a producer field declares a passivating scope and:
> •	the container is able to determine that it is not passivation capable by inspecting its type,
> then the container automatically detects the problem and treats it as a deployment problem.
> In some cases, the container is not able to determine whether a producer method or field is passivation capable. If a produ- cer method or field which declares a passivating scope returns an unserializable object at runtime, the container must throw an IllegalProductException. If a producer method or field of scope @Dependent returns an unserializable object for injection into an injection point that requires a passivation capable dependency, the container must throw an Illegal- ProductException

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira

       



More information about the cdi-dev mailing list