ICEfaces
  1. ICEfaces
  2. ICE-2152

User Session Expired when re-hot-deploying Liferay portlets

    Details

    • Type: Bug Bug
    • Status: Closed
    • Priority: Major Major
    • Resolution: Fixed
    • Affects Version/s: 1.6
    • Fix Version/s: 1.7.1
    • Component/s: None
    • Labels:
      None
    • Environment:
      Liferay 4.3.2 / Tomcat 6.0.13
    • Workaround Exists:
      Yes
    • Workaround Description:
      Hide
      This is *kind of* a workaround, but only in the case of development (circumstance#1 listed above). If you click on the "Home" tab to go to your Liferay portal home page, then re-hot-deploy, and then visit the page with the ICEfaces portlet again, it seems to work OK.

      But this is by no means a workaround in circumstance#2, because you can't rely on employees/customers to know that they need to do this.
      Show
      This is *kind of* a workaround, but only in the case of development (circumstance#1 listed above). If you click on the "Home" tab to go to your Liferay portal home page, then re-hot-deploy, and then visit the page with the ICEfaces portlet again, it seems to work OK. But this is by no means a workaround in circumstance#2, because you can't rely on employees/customers to know that they need to do this.

      Description

      This is very easy to reproduce:

      1. Download Liferay 4.3.2 / Tomcat 6.0.13 bundle and extract

      2. Download the sample-icefaces-sun-portlet from the Liferay website

      3. COPY (don't move) the sample-icefaces-sun-portlet in your $HOME/liferay/deploy folder (hot deploy folder)

      4. Verify in the Tomcat console that the portlet plugin extracts and registers itself

      5. Startup IE7, and add the portlet to a page (and keep viewing the page)

      6. Repeat step #3 and #4

      7. Click Reload button

      At this point you should get the "User Session Expired" error message, and the only way to fix it is to restart Tomcat.

      Now this is a problem under two circumstances:

      1. When developers are creating ICEfaces portlets, they often want to incrementally test their changes. The way to do this in Liferay is to keep re-hot-deploying the portlet, but the "User Session Expired" error message is not exactly thruthful, in that the user is still able to visit other portal pages and continue to use Liferay.

      2. When Portal administrators download new versions of Liferay portlet plugins, and want to deploy them to their employees/customers in their intranet. But Portal admins aren't always in a position where they can restart Tomcat, because it might be in the middle of a work day, or a mission-critical system.

        Issue Links

          Activity

          Hide
          Mircea Toma added a comment -

          Looks like this issue still manifests itself when re-hot-deploying with Liferay SDK. Neil has described in an email how this issue can be reproduced:

          "Once you have downloaded the Liferay+AppServer bundle and the Plugins SDK, you need to "point" your plugins SDK to the Liferay+AppServer bundle by making a build.mircea.properties (using the appropriate username from your OS) file and placing it in the root folder of the Plugins SDK. See attached build.ngriffin.properties for an example.

          The next step is to extract the attached sample-icefaces-jsf-1.1-sun-facelets-portlet.zip archive into the "portlets" folder of the Plugins SDK. Once extracted, type "ant deploy" from within the plugins-sdk/portlets/sample-icefaces-jsf-1.1-sun-facelets folder. That should compile the source and copy the .war to your hot deploy folder.

          Now, ICE-2152 manifests itself when portlets are re-hot-deployed. This is a typical thing for a developer to do, as he is developing portlet functionality. So after you have deployed the portlet the first time and have it working on a Liferay portal page, keep your browser pointing to the same portal page and then re-execute the "ant deploy" command. After the Tomcat log indicates that Liferay has successfully re-hot-deployed the portlet, click the Refresh/Reload button in your browser, and you'll see the "User Session Expired" message."

          Show
          Mircea Toma added a comment - Looks like this issue still manifests itself when re-hot-deploying with Liferay SDK. Neil has described in an email how this issue can be reproduced: "Once you have downloaded the Liferay+AppServer bundle and the Plugins SDK, you need to "point" your plugins SDK to the Liferay+AppServer bundle by making a build.mircea.properties (using the appropriate username from your OS) file and placing it in the root folder of the Plugins SDK. See attached build.ngriffin.properties for an example. The next step is to extract the attached sample-icefaces-jsf-1.1-sun-facelets-portlet.zip archive into the "portlets" folder of the Plugins SDK. Once extracted, type "ant deploy" from within the plugins-sdk/portlets/sample-icefaces-jsf-1.1-sun-facelets folder. That should compile the source and copy the .war to your hot deploy folder. Now, ICE-2152 manifests itself when portlets are re-hot-deployed. This is a typical thing for a developer to do, as he is developing portlet functionality. So after you have deployed the portlet the first time and have it working on a Liferay portal page, keep your browser pointing to the same portal page and then re-execute the "ant deploy" command. After the Tomcat log indicates that Liferay has successfully re-hot-deployed the portlet, click the Refresh/Reload button in your browser, and you'll see the "User Session Expired" message."
          Hide
          Mircea Toma added a comment -

          Shutdown bridge on HTTP 503 errors.

          Show
          Mircea Toma added a comment - Shutdown bridge on HTTP 503 errors.
          Hide
          Neil Griffin added a comment -

          Independently confirmed as fixed in the 1.7.x branch

          Show
          Neil Griffin added a comment - Independently confirmed as fixed in the 1.7.x branch
          Hide
          Greg Dick added a comment -

          I think this is a version of the sample that works ok.

          Show
          Greg Dick added a comment - I think this is a version of the sample that works ok.
          Hide
          Aaron Lucas added a comment -

          Happening with Liferay 4.4.2 and Icefaces 1.7.1, dropping portlet.war into liferay deploy folder, go to liferay add portlet, immediately see user session expired.

          Show
          Aaron Lucas added a comment - Happening with Liferay 4.4.2 and Icefaces 1.7.1, dropping portlet.war into liferay deploy folder, go to liferay add portlet, immediately see user session expired.

            People

            • Assignee:
              Unassigned
              Reporter:
              Neil Griffin
            • Votes:
              4 Vote for this issue
              Watchers:
              2 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved: