Diese Regel markiert Felder mit dem Modifikator transient in Klassen, die mit @SessionScoped annotiert sind.
In der auf OpenWebBeans basierenden Contexts and Dependency Injection (CDI) 1.0-Implementierung kann eine Anwendung transient-Felder
direkt in sitzungsorientierten Beans setzen. In der auf Weld basierenden CDI 1.2-Implementierung führt das direkte Setzen des transient-Felds
nicht dazu, dass das Feld nach dem Failover gefüllt wird, was zu einem unerwarteten Verhalten in Ihrer Anwendung führen kann.
Vergewissern Sie sich, dass jedes von dieser Regel markierte transient-Feld nur mit einer Methode
gesetzt wird, die von der übergeordneten Klasse bereitgestellt wird. Wenn es keine set-Methode für das Feld gibt,
fügen Sie eine set-Methode hinzu und rufen Sie diese auf, anstatt das Feld direkt zu setzen.
Im folgenden Beispiel ist die Klasse UserBean mit @SessionScoped annotiert.
Die Klasse enthält auch ein Feld mit dem Modifikator "transient", der mit einer Setter-Methode gesetzt wird.
@Named(Wert = "userBean")
@SessionScoped public class UserBean implementiert UserInterface, Serializable {
String name; transiente Zeichenfolge nickName;
Am 1.
public void setNickName (String nick) {
nickName = nick;
} }
Weitere Informationen zur CDI 1.2-Implementierung von Java EE 7 (Java Platform, Enterprise Edition) finden Sie unter Contexts and Dependency Injection 1.2 behavior changes.