Image

Imageioanes wrote in Imageru_java

Странная прогрессия

Если в реализацию своего 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
...

и дальше прогрессия фаз увеличивается.

при удалении вышеприведенного кода все работает нормально.

С чем это может быть связано?