ICEfaces
  1. ICEfaces
  2. ICE-8871

ice:dataPaginator - IllegalArgumentException thrown when using paginator in a portlet

    Details

    • Type: Bug Bug
    • Status: Closed
    • Priority: Major Major
    • Resolution: Won't Fix
    • Affects Version/s: EE-3.0.0.GA_P01, 3.2
    • Fix Version/s: 4.0.BETA, 4.0
    • Component/s: ICE-Components
    • Labels:
      None
    • Environment:
      Liferay 6.0.6 - Tomcat 6.0.29, Liferay Faces Bridge 3.0.0
    • Assignee Priority:
      P2
    • Workaround Exists:
      Yes
    • Workaround Description:
      Hide
      As per http://issues.liferay.com/browse/FACES-1482 there are a few potential workarounds for this problem:

      1) Use one of the following composite component tags, found in the Liferay Faces Portal dependency:
      - liferay-ui:ice-info-data-paginator
      - liferay-ui:ice-nav-data-paginator
      - liferay-ui:ice-page-iterator

      3) If possible, upgrade to use the ace:dataTable component that has a built-in paginator and works well with the latest version of the LiferayFaces Bridge.

      2) Force the component to evaluate expressions instead of binding them as literals by modifying the attribute values to look like this:
       
      <ice:dataPaginator id="paginator"
                                  fastStep="${2}"
                                  for="carTable"
                                  paginator="${true}"
                                  paginatorMaxPages="${3}">
      Show
      As per http://issues.liferay.com/browse/FACES-1482 there are a few potential workarounds for this problem: 1) Use one of the following composite component tags, found in the Liferay Faces Portal dependency: - liferay-ui:ice-info-data-paginator - liferay-ui:ice-nav-data-paginator - liferay-ui:ice-page-iterator 3) If possible, upgrade to use the ace:dataTable component that has a built-in paginator and works well with the latest version of the LiferayFaces Bridge. 2) Force the component to evaluate expressions instead of binding them as literals by modifying the attribute values to look like this:   <ice:dataPaginator id="paginator"                             fastStep="${2}"                             for="carTable"                             paginator="${true}"                             paginatorMaxPages="${3}">

      Description

      When an ice:dataPaginator is used in a Liferay portley an IllegalArgumentException is thrown. Sample of stack trace:

      java.lang.IllegalArgumentException: argument type mismatch
              at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
              at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
              at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
              at java.lang.reflect.Method.invoke(Method.java:597)
              at javax.faces.component.UIComponentBase$AttributesMap.put(UIComponentBase.java:2399)
              at javax.faces.component.UIComponentBase$AttributesMap.put(UIComponentBase.java:2283)
              at com.sun.faces.facelets.tag.jsf.ComponentRule$LiteralAttributeMetadata.applyMetadata(ComponentRule.java:87)
              at com.sun.faces.facelets.tag.MetadataImpl.applyMetadata(MetadataImpl.java:81)
              at javax.faces.view.facelets.MetaTagHandler.setAttributes(MetaTagHandler.java:129)
              at javax.faces.view.facelets.DelegatingMetaTagHandler.setAttributes(DelegatingMetaTagHandler.java:102)

      Removing the paginator the page renders fine. This also works fine in a non-portlet environment.

        Activity

          People

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

            Dates

            • Created:
              Updated:
              Resolved: