Details
-
Type: Bug
-
Status: Closed
-
Priority: Major
-
Resolution: Fixed
-
Affects Version/s: 1.8DR#2
-
Component/s: ICE-Components
-
Labels:None
-
Environment:ACEGI regression tests,1.8 DR#3, b13.
Description
1. Acegi 15630: acegi-fileupload-combo Build13 Mandeep 19/12/2008 14:34:59 file upload & text box work as expected but after the upload is finished the upload button and textbox all disappear
2. Acegi 15632: acegi-fileupload Build13 Mandeep 19/12/2008 14:34:52 file upload works but after the upload is finished the upload button and textbox all disappear
2. Acegi 15632: acegi-fileupload Build13 Mandeep 19/12/2008 14:34:52 file upload works but after the upload is finished the upload button and textbox all disappear
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