dev@jsftemplating.java.net

[Issue 6] New - TableRowGroupFactory shouldn't throw exception when List is null

From: <anilam_at_dev.java.net>
Date: 26 Jan 2007 17:02:32 -0000

TableRowGroupFactory shouldn't throw exception when List is null:
https://jsftemplating.dev.java.net/issues/show_bug.cgi?id=6
                 Issue #|6
                 Summary|TableRowGroupFactory shouldn't throw exception when Li
                        |st is null
               Component|jsftemplating
                 Version|current
                Platform|Linux
              OS/Version|All
                     URL|
                  Status|NEW
       Status whiteboard|
                Keywords|
              Resolution|
              Issue type|ENHANCEMENT
                Priority|P2
            Subcomponent|Component Factories
             Assigned to|kenpaulsen
             Reported by|anilam






------- Additional comments from anilam_at_dev.java.net Fri Jan 26 17:02:31 +0000 2007 -------
In a handler for generating the list to be used as the input to the TableRowGroupFractory, very often there may be
exception thrown. If the application code doesn't catch the exception or catching the exception but 'forget' to return
an empty list as the handler output, which will be passed to the Factory, JSFTemplating throws exception which prevents
the page to be displayed at all.
It will be a lot helpful if jsftemplating can just LOG the SEVERE message that a NULL is passed to the factory, and
treat that NULl as en empty list. This way, the table is at least showed as an empty table.

Here is the exception thrown:
[#|2007-01-26T08:49:17.356-0800|SEVERE|sun-appserver9.1|javax.enterprise.system.container.web|_ThreadID=12;_ThreadName=httpSSLWorkerThread-8080-2;_RequestID=aad70e12-38b3-41f1-bf2b-764be5452495;|StandardWrapperValve[FacesServlet]:
PWC1406: Servlet.service() for servlet FacesServlet threw exception
java.lang.IllegalArgumentException: TableRowGroupFactory expects a List<List<Object>>. Where the outer List should be a
List of sources, and the inner List should be a List of rows. However, the following was passed in: List<(null)>.
        at com.sun.jsftemplating.component.factory.sun.TableRowGroupFactory.create(TableRowGroupFactory.java:88)
        at com.sun.jsftemplating.component.ComponentUtil.createChildComponent(ComponentUtil.java:401)
        at com.sun.jsftemplating.layout.descriptors.LayoutComponent.getChild(LayoutComponent.java:273)
        at com.sun.jsftemplating.layout.LayoutViewHandler.buildUIComponentTree(LayoutViewHandler.java:345)
        at com.sun.jsftemplating.layout.LayoutViewHandler.buildUIComponentTree(LayoutViewHandler.java:360)
        at com.sun.jsftemplating.layout.LayoutViewHandler.buildUIComponentTree(LayoutViewHandler.java:360)
        at com.sun.jsftemplating.layout.LayoutViewHandler.buildUIComponentTree(LayoutViewHandler.java:360)
        at com.sun.jsftemplating.layout.LayoutViewHandler.buildUIComponentTree(LayoutViewHandler.java:360)
        at com.sun.jsftemplating.layout.LayoutViewHandler.buildUIComponentTree(LayoutViewHandler.java:360)
        at com.sun.jsftemplating.layout.LayoutViewHandler.createView(LayoutViewHandler.java:177)
        at com.sun.faces.lifecycle.RestoreViewPhase.execute(RestoreViewPhase.java:196)
        at com.sun.faces.lifecycle.LifecycleImpl.phase(LifecycleImpl.java:248)