[
https://issues.jboss.org/browse/CDI-153?page=com.atlassian.jira.plugin.sy...
]
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