Details
-
Type:
Clarification
-
Status: Resolved (View Workflow)
-
Priority:
Major
-
Resolution: Done
-
Affects Version/s: 1.0
-
Fix Version/s: 1.1.EDR
-
Component/s: Resolution
-
Labels:None
Description
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
We should move the 'more detailed' criteria specification from 6.6.1 down to 6.6.4.
6.6.1 would look like the following:
• A producer method is passivation capable if and only if it never returns a value which is not passivation capable at runtime.
• A producer field is passivation capable if and only if it never refers to a value which is not passivation capable at runtime.
and 6.6.4 would get the more specific description of what to check.