Uploaded image for project: 'CDI Specification Issues'
  1. CDI Specification Issues
  2. CDI-140

improve passivation capable bean validation for @Dependent scoped beans in 6.6.4

XMLWordPrintable

    • Icon: Clarification Clarification
    • Resolution: Done
    • Icon: Major Major
    • 1.1.EDR
    • 1.0
    • Resolution
    • 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.

              struberg Mark Struberg (Inactive)
              struberg Mark Struberg (Inactive)
              Votes:
              0 Vote for this issue
              Watchers:
              3 Start watching this issue

                Created:
                Updated:
                Resolved: