Câmpurile Transient în bean-urile session-scoped nu pot fi preluate la defect cu succes

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.