From looking at the forum posting, I saw that the only ICEfaces related thread was the edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor$Worker one. We use those kind of classes for our server pushes. InputFile uses the PersistentFacesState's server push mechanism. The InputFile actually has two means of doing a server push, in another thread, or in the current thread, as is used in Seam and Sprint configurations. After duplicating the issue, I altered the code to always use the in-thread server push, and found that things worked, confirming my theory. Further examination of the output captured in the forum posting indicated that all threads, except the ThreadPoolExecutor$Worker were daemon threads. So, I investigated how we in our own code, in the other server push mechanisms, set the threads to be daemons, and corroborated that with the backport util javadoc. I then implemented that for PersistentFacesState, and tested it, to be sure it solved the problem.
Subversion 18245
icefaces\core\src\com\icesoft\faces\webapp\xmlhttp\PersistentFacesState.java
From looking at the forum posting, I saw that the only ICEfaces related thread was the edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor$Worker one. We use those kind of classes for our server pushes. InputFile uses the PersistentFacesState's server push mechanism. The InputFile actually has two means of doing a server push, in another thread, or in the current thread, as is used in Seam and Sprint configurations. After duplicating the issue, I altered the code to always use the in-thread server push, and found that things worked, confirming my theory. Further examination of the output captured in the forum posting indicated that all threads, except the ThreadPoolExecutor$Worker were daemon threads. So, I investigated how we in our own code, in the other server push mechanisms, set the threads to be daemons, and corroborated that with the backport util javadoc. I then implemented that for PersistentFacesState, and tested it, to be sure it solved the problem.
Subversion 18245
icefaces\core\src\com\icesoft\faces\webapp\xmlhttp\PersistentFacesState.java