The UploadServer requires html output from the InputFileRenderer, in the last lifecycle, after the file has completed uploading. Currently, this html output is stored in the session, along with some other InputFile parameters, which need to be in the session as well. When there's an IntervalRenderer going, it causes lifecycles to occur, which causes the InputFile parameters to be stored into the session. Except that those ones do not contain the html output. There's a polling loop in the UploadServer that looks for the html output. This html is what's returned to the browser. When it's not returned, the inputFile component appears to the user to have disappeared.
The real solution will involve not storing the html output in the session, but instead using a ThreadLocal field to capture it, and return it to the UploadServer. Then, any interleaved lifecycles unrelated to the file upload, can't interfere with the UploadServer response.
For ICEfaces 1.8 DR#3, because of a tight timeframe, I've just increase the polling frequency, so that the UploadServer is less likely to miss the html output, before the IntervalRenderer stomps it over.
Subversion 18104
icefaces\core\src\com\icesoft\faces\webapp\http\core\UploadServer.java
The UploadServer requires html output from the InputFileRenderer, in the last lifecycle, after the file has completed uploading. Currently, this html output is stored in the session, along with some other InputFile parameters, which need to be in the session as well. When there's an IntervalRenderer going, it causes lifecycles to occur, which causes the InputFile parameters to be stored into the session. Except that those ones do not contain the html output. There's a polling loop in the UploadServer that looks for the html output. This html is what's returned to the browser. When it's not returned, the inputFile component appears to the user to have disappeared.
The real solution will involve not storing the html output in the session, but instead using a ThreadLocal field to capture it, and return it to the UploadServer. Then, any interleaved lifecycles unrelated to the file upload, can't interfere with the UploadServer response.
For ICEfaces 1.8 DR#3, because of a tight timeframe, I've just increase the polling frequency, so that the UploadServer is less likely to miss the html output, before the IntervalRenderer stomps it over.
Subversion 18104
icefaces\core\src\com\icesoft\faces\webapp\http\core\UploadServer.java