dev@javaserverfaces.java.net

jsf 1.2 bugs

From: Mohammad Alavi <alavi1986_at_gmail.com>
Date: Mon, 12 Apr 2010 17:22:30 +0330

hi
I've found 2 bugs here's the list
1.when h:dataTable's parent is ui:repeat from facelet duplicated ids
are generated for child component because UIData's
isNestedWithinUIData method reports true
only when the parent is an instance of UIData and UIRepeat is not.
of course the problem happens because the UIData's getClientId method
caches the parent client id when isNestedWithinUIData returns false
if it never cache parent client id this problem wont happen.

    public String getClientId(FacesContext context) {
        if (context == null) {
            throw new NullPointerException();
        }
        if (rowIndex >= 0) {
            String cidBuilder = new StringBuilder();
            return cidBuilder.append(super.getClientId(context))
                      .append(NamingContainer.SEPARATOR_CHAR).append(rowIndex)
                      .toString();
        } else {
            return super.getClientId(context);
        }
    }
2.TableMetaInfo a static inner class in BaseTableRenderer is used for
managing style for columns and rows, the getCurrentColumnClass method
doesn't work as expected it doesn't repeat the styles when number of
columns is grater than column classes it should be implemented as
follows:

        public String getCurrentColumnClass() {

            String style = null;
            if (columnStyleCounter < columnClasses.length &&
columnStyleCounter < columnCount) {
                style = columnClasses[columnStyleCounter++];
            }
            if(columnStyleCounter >= columnClasses.length) {
                columnStyleCounter = 0;
            }
            return ((style != null && style.length() > 0) ? style : null);
        }