ICEfaces
  1. ICEfaces
  2. ICE-8393

The ace:dataExporter example not working as a portlet

    Details

    • Type: Bug Bug
    • Status: Closed
    • Priority: Major Major
    • Resolution: Fixed
    • Affects Version/s: 3.1.0.RC1
    • Fix Version/s: 3.1
    • Component/s: Framework, ICE-Components
    • Labels:
      None
    • Environment:
      Portal
    • Assignee Priority:
      P1

      Description

      When running the ace:dataExporter example as a portlet, click the Export button results in the following being logged on the server and the export failing:

      13-Jul-2012 10:41:10 PM com.sun.faces.application.resource.ResourceHandlerImpl logMissingResource
      WARNING: JSF1064: Unable to find or serve resource, sbebe4f40-7a8e-4887-a995-f753994fa3ac.
      22:41:10,802 ERROR [MissingResourceImpl:78] Resource handler=[com.liferay.faces.bridge.application.ResourceHandlerOuterImpl@48aa50cc] was unable to create a resource for resourceName=[sbebe4f40-7a8e-4887-a995-f753994fa3ac] libraryName=[null] contentType=[null]

        Activity

        Hide
        Deryk Sinotte added a comment -

        So the DataExporter works with PortletFaces Bridge (PFB) but not Liferay Faces Bridge (LFB) indicating it's a change in the bridge implementation that causing the change in behaviour.

        Debugging shows that there is some code in the ResourceRegistry that is portlet specific when trying to identify dynamic resources. The work was done in ICE-7685 and ICE-7874.

        The changes in those cases were to provide portlet-specific processing of the javax.faces.resource as it is passed back as a request parameter rather than as part of the URL (which can be long, obfuscated, etc).

        Debugging this area shows that the parameter with PFB was passed in as "javax.faces.resource" but with LFB it is namespaced like "_dataExporter_WAR_showcaseportlet_javax.faces.resource". So we may need to do some additional processing on this assuming it's not a bug in the bridge. I'll check with Neil to make sure.

        Show
        Deryk Sinotte added a comment - So the DataExporter works with PortletFaces Bridge (PFB) but not Liferay Faces Bridge (LFB) indicating it's a change in the bridge implementation that causing the change in behaviour. Debugging shows that there is some code in the ResourceRegistry that is portlet specific when trying to identify dynamic resources. The work was done in ICE-7685 and ICE-7874. The changes in those cases were to provide portlet-specific processing of the javax.faces.resource as it is passed back as a request parameter rather than as part of the URL (which can be long, obfuscated, etc). Debugging this area shows that the parameter with PFB was passed in as "javax.faces.resource" but with LFB it is namespaced like "_dataExporter_WAR_showcaseportlet_javax.faces.resource". So we may need to do some additional processing on this assuming it's not a bug in the bridge. I'll check with Neil to make sure.
        Hide
        Deryk Sinotte added a comment -

        Added some logic to the ResourceRegistry so that it checks for the resource name parameter in both unencoded (PFB) and encoded (LFB) versions.

        Show
        Deryk Sinotte added a comment - Added some logic to the ResourceRegistry so that it checks for the resource name parameter in both unencoded (PFB) and encoded (LFB) versions.

          People

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

            Dates

            • Created:
              Updated:
              Resolved: