Questa regola contrassegna i campi con il modificatore transient nelle classi annotate con @SessionScoped.
Nell'implementazione CDI (Contexts and Dependency Injection) 1.0 OpenWebBeans, un applicazione può impostare i campi transient direttamente nei bean con ambito la sessione. Nell'implementazione di CDI 1.2 Weld, l'impostazione diretta del campo transient non risulta nel popolamento del campo dopo il failover, che può determinare un comportamento non previsto nell'applicazione.
Verificare che ogni campo transient contrassegnato da questa regola sia impostato soltanto utilizzando un metodo fornito dalla classe che lo contiene. Se c'è alcun metodo impostato per il campo, aggiungere un metodo impostato e richiamarlo invece di impostare direttamente il campo.
Nel seguente esempio, la classe UserBean viene annotata con@SessionScoped.
La classe contiene anche un campo con il modificatore transient impostato utilizzando un metodo setter.
@Named(valore = "userBean")
@SessionScoped public class UserBean implementa UserInterface, Serializable {
Nome stringa; stringa transitoria nickName;
...
public void setNickName (String nick) {
nickName = nick;
} }
Per ulteriori informazioni sull'implementazione di Java EE (Java Platform, Enterprise Edition) 7 CDI 1.2, consultare Contexts and Dependency Injection 1.2 behavior changes.