-
Clarification
-
Resolution: Done
-
Major
-
1.0
-
None
-
Medium
Currently section 6.6.4 defines that @Dependent scoped beans which get injected into a bean of a passivating scope must be Serializable.
"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"
The question is how to interpret "that requires a passivation capable dependency".
It would e.g. be perfectly fine if the @Dependent bean is not Serializable if the injectionpoint will be serialized via a writeObject or Externalizable#writeExternal.
Proposal: to explicitly add a check for Modifier.TRANSIENT and writeObject(ObjectOutputStream) and Externalizable#writeExternal(ObjectOutput)
This is very important for @Dependent scoped producers of legacy classes because there is otherwise no way to inject such classes at all.