Это правило отмечает поля с модификатором transient в классах, имеющих аннотацию @SessionScoped.
В реализации Contexts and Dependency Injection (CDI) 1.0 OpenWebBeans
приложению разрешено задавать значения полей transient прямо в
EJB, действующих в пределах сеанса. В реализации CDI 1.2 Weld поле
transient, значение которого было задано напрямую, не будет
заполнено после аварийного переключения, что может привести к непредсказуемым
результатам в приложении.
Убедитесь в том, что все отмеченные этим правилом поля
transient задаются только с помощью метода, предусмотренного в том
классе, который их содержит. Если для поля не предусмотрен метод set, добавьте
его и используйте вызов этого метода, вместо того чтобы задавать значение поля
напрямую.
В следующем примере класс UserBean имеет аннотацию @SessionScoped.
Этот класс содержит поле с модификатором transient, которое задается с помощью метода set.
@Named(value = "userBean")
@SessionScoped
public class UserBean реализует UserInterface, Serializable {
String name; transient String nickName;
...
public void setNickName (String nick)
{
nickName = nick;
}
}
За дополнительной информацией о реализации CDI 1.2 в Java Platform, Enterprise Edition (Java EE) 7 обратитесь к документу Contexts and Dependency Injection 1.2: изменение принципов работы.