ICEfaces
  1. ICEfaces
  2. ICE-1365

Threads used by RenderManager have incorrect context classloader.

    Details

    • Type: Bug Bug
    • Status: Closed
    • Priority: Critical Critical
    • Resolution: Fixed
    • Affects Version/s: 1.5.3, 1.6DR#2
    • Fix Version/s: 1.6DR#3, 1.6
    • Component/s: Framework
    • Labels:
      None
    • Environment:
      All current versions of ICEfaces and various application servers.

      Description

      The RenderManager uses it's own thread pool to execute server-side render calls for AJAX-push events. Since thread creation in application servers is not clear in the Servlet spec (it's not forbidden but also not encouraged), servlet container implementations vary on how they deal with user-created threads. We originally had a problem with WebSphere where the created threads did not have the appropriate context classloader set and would then have problems finding the appropriate JSF factories to complete the render call.

      To alleviate the problem with WebSphere, we forced a context classloader to be set on all the new threads we created via our own RenderThreadFactory. Unfortunately this solution is too blunt and makes incorrect assumptions about which classloader is appropriate for the new threads. The combination of deployment method (war vs ear) and app server can cause additional classloader issues. We are currently looking at a slightly more sophisticated way of handling the classloader issue so that it works for all app servers that we support and with all methods of application deployment (i.e. war and ear).

        Activity

        Ken Fyten made changes -
        Status Resolved [ 5 ] Closed [ 6 ]
        Assignee Priority P1
        Assignee Deryk Sinotte [ deryk.sinotte ]
        Ken Fyten made changes -
        Fix Version/s 1.6 [ 10031 ]
        Fix Version/s 1.5.4 [ 10034 ]
        Deryk Sinotte made changes -
        Status Open [ 1 ] Resolved [ 5 ]
        Fix Version/s 1.5.4 [ 10034 ]
        Resolution Fixed [ 1 ]
        Maxime Turner made changes -
        Attachment TestPush.ear [ 10345 ]
        Attachment TestPush-projectfiles.zip [ 10346 ]
        Ken Fyten made changes -
        Field Original Value New Value
        Fix Version/s 1.6DR#3 [ 10050 ]
        Assignee Priority P1
        Assignee Deryk Sinotte [ deryk.sinotte ]
        Priority Major [ 3 ] Critical [ 2 ]
        Deryk Sinotte created issue -

          People

          • Assignee:
            Unassigned
            Reporter:
            Deryk Sinotte
          • Votes:
            1 Vote for this issue
            Watchers:
            1 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved: