Această regulă semnalează câmpurile cu modificatorul transient în clasele care sunt adnotate cu @SessionScoped.
În implementarea CDI (Contexts and Dependency Injection) 1.0 OpenWebBeans, o aplicaţie poate seta câmpurile transient
direct pe bean-urile session-scoped. În implementarea CDI 1.2 Weld, setarea câmpului transient direct nu
are ca rezultat popularea câmpului după preluarea la defect, ceea ce poate cauza un comportament neaşteptat
în aplicaţia dumneavoastră.
Verificaţi că fiecare câmp transient care este semnalat de această regulă este setat numai folosind o metodă
furnizată de clasa care-l conţine. Dacă nu există nici o metodă set pentru câmp, adăugaţi o metodă set
şi apelaţi-o în loc de setarea câmpului direct.
În următorul exemplu, clasa UserBean este adnotată cu @SessionScoped.
Clasa de asemenea conţine un câmp cu un modificator de tranziţie care este setat folosind o metodă setter.
@Named(valoare = "userBean")
@SessionScoped public class UserBean implements UserInterface, Serializable {
Nume șir; trecătoare String nickName;
...
public void setNick(String nick) {
nickName = nick;
}
Pentru informaţii suplimentare despre implementarea Java Platform, Enterprise Edition (Java EE) 7 CDI 1.2, vedeţi Contexts and Dependency Injection 1.2 behavior changes.