ICEfaces
  1. ICEfaces
  2. ICE-4014

App won't shutdown after file upload

    Details

    • Type: Bug Bug
    • Status: Closed
    • Priority: Major Major
    • Resolution: Fixed
    • Affects Version/s: 1.8DR#2
    • Fix Version/s: 1.8RC1, 1.8
    • Component/s: Framework, ICE-Components
    • Labels:
      None
    • Environment:
      Tomcat 6

      Description

      If you use the startup.bat and shutdown.bat scripts, then shutting down won't work after you've uploaded a file using the inputFile component.

        Activity

        Hide
        Mark Collette added a comment -

        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

        Show
        Mark Collette added a comment - 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
        Hide
        Mandeep Hayher added a comment -

        Tested successfully using ICEFaces1.8 RC1 build2 jsp version component-showcase on tomcat6 server.

        Show
        Mandeep Hayher added a comment - Tested successfully using ICEFaces1.8 RC1 build2 jsp version component-showcase on tomcat6 server.

          People

          • Assignee:
            Unassigned
            Reporter:
            Mark Collette
          • Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved: