Странная прогрессия
Если в реализацию своего JSF-компонента добавляю StateHolder Methods то получаю бесконечную прогрессию запроса (судя по логу Lifecycle). Используется JBoss AS 4.2.2.GA + Seam 2.0.2.SP1.
при добавлении в код JSF-компонента StateHolder Methods:
private Object[] values;
public Object saveState(FacesContext context) {
if (values == null) {
values = new Object[2];
}
values[0] = super.saveState(context);
values[1] = String.valueOf(this.var);
return (values);
}
public void restoreState(FacesContext context, Object state) {
values = (Object[]) state;
super.restoreState(context, values[0]);
var = String.valueOf(values[1]);
}
получаем следующую последовательность фаз ("бесконечное" выполнение запроса):
...
выполнение GET запрса
19:16:25,218 ERROR [STDERR] RESTORE_VIEW 1
19:16:25,234 ERROR [STDERR] RENDER_RESPONSE 6
выполнение POST запроса
19:16:46,375 ERROR [STDERR] ----
19:16:46,375 ERROR [STDERR] RESTORE_VIEW 1
19:16:46,406 ERROR [STDERR] APPLY_REQUEST_VALUES 2
19:16:46,421 ERROR [STDERR] PROCESS_VALIDATIONS 3
19:16:46,421 ERROR [STDERR] PROCESS_VALIDATIONS 3
19:16:46,421 ERROR [STDERR] UPDATE_MODEL_VALUES 4
19:16:46,421 ERROR [STDERR] UPDATE_MODEL_VALUES 4
19:16:46,421 ERROR [STDERR] INVOKE_APPLICATION 5
19:16:46,421 ERROR [STDERR] INVOKE_APPLICATION 5
19:16:46,421 ERROR [STDERR] RENDER_RESPONSE 6
19:16:46,421 ERROR [STDERR] RENDER_RESPONSE 6
19:16:46,562 ERROR [STDERR] ----
Такое впечатление, что создается некий новый клон View.
19:16:46,562 ERROR [STDERR] RESTORE_VIEW 1
19:16:46,562 ERROR [STDERR] ----
19:16:46,562 ERROR [STDERR] RESTORE_VIEW 1
19:16:46,562 ERROR [STDERR] APPLY_REQUEST_VALUES 2
19:16:46,562 ERROR [STDERR] APPLY_REQUEST_VALUES 2
19:16:46,562 ERROR [STDERR] PROCESS_VALIDATIONS 3
19:16:46,562 ERROR [STDERR] PROCESS_VALIDATIONS 3
19:16:46,562 ERROR [STDERR] PROCESS_VALIDATIONS 3
19:16:46,562 ERROR [STDERR] UPDATE_MODEL_VALUES 4
19:16:46,562 ERROR [STDERR] UPDATE_MODEL_VALUES 4
19:16:46,562 ERROR [STDERR] UPDATE_MODEL_VALUES 4
19:16:46,578 ERROR [STDERR] INVOKE_APPLICATION 5
19:16:46,578 ERROR [STDERR] INVOKE_APPLICATION 5
19:16:46,578 ERROR [STDERR] INVOKE_APPLICATION 5
19:16:46,578 ERROR [STDERR] RENDER_RESPONSE 6
19:16:46,578 ERROR [STDERR] RENDER_RESPONSE 6
19:16:46,578 ERROR [STDERR] RENDER_RESPONSE 6
...
и дальше прогрессия фаз увеличивается.
при удалении вышеприведенного кода все работает нормально.
С чем это может быть связано?
