Annotation Type Retain

  • @Target(FIELD)
    public @interface Retain
    This rarely used annotation is likely to cause threading issues starting in Tapestry 5.2 (which no longer pools pages but uses shared instances with externalized mutable state)
    Marker annotation placed on fields whose value should be retained past the end of the request. This is most often associated with fields that are lazily loaded. By marking such fields with the Retain annotation, the fields will not be discarded at the end of the request. This is quite different from Persist, because the value that's allowed to be retained is not stored persistently; it is simply not cleared out. A subsequent request, even from the same user, may be processed by a different instance of the page where the value is still null. This annotation should only be used with lazily-evaluated objects that contain no client-specific information.