1 2 Previous Next 15 Replies Latest reply on Mar 17, 2011 4:04 AM by Ilya Shaikovsky

    Bug RF4 M6 => RF4 CR1

    jules poit Newbie

      Good morning

       

      I would like to reports issues on the RF 4 CR1.

      I have been migrating from RF 3.3.3 to RF 4 using the M6, I have bugs - I am going to list them below, and when I upgraded to CR1 some features that was working on M6 stopped working.

       

      I am using RF 4 CR1, JSF 2, Spring 3.0.5 and Spring security

       

      1) The <rich:messages> display messages in inline style (not like the showcase example)

      2) The rowClass attribute for extended data table is not working (I am using rowclass and and the style class associated is not being used)

      3) The <rich:tooltip> is not working in columns in a extended data table

      (I have :

      <rich:column

                                                                                      width="100px"  >

                                                                                                <f:facet name="header">

                                                         <h:outputText value="Pouet" />

                                                                                                </f:facet>

       

                                                           <a4j:outputPanel>

                                                                 <h:outputText id="text" value="#{bean.value}" >

                                                                                                                              <rich:tooltip 

                                                                                                                                  attached="text"

                                                                                                                                        styleClass="tooltip"

                                                                                                                                         followMouse="true">

                                                                                                                                                   <h:outputText value=" #{bean.value}"  escape="false" />

                                                                                                                    </rich:tooltip>

                                                                                                                    </h:outputText>

                                                                                                          </a4j:outputPanel>

                                                                            </rich:column>

      )

       

      4) There is no grouping or simple sort by feature for the extended datatable like in the 3.3.3 ?

      5) The style in the datatable was working in the M6 but but not anymore in the CR1 (Same, I have the rowClass attribute set and it is not working anymore)

      6) Big one : The style is not loaded by default. Basically, I need to log in with my application, I am being redirected to a *.ecss and then if I go to the login page, it is working (post related => http://stackoverflow.com/questions/4586947/resource-handler-problems-with-jsf2-richfaces4-springmvc-webflow-swf)

       

       

      Voila

       

      Thank you for the work you are doing and I hope this post will help you

        • 1. Bug RF4 M6 => RF4 CR1
          Jay Balunas Master

          Thanks for the post - we are looking into this. 

           

          Are these new issues in CR1, that were not there in M6?  Or have these always been an issue?

          • 2. Bug RF4 M6 => RF4 CR1
            jules poit Newbie

            Only the number 5) was already working in the M6.

            • 3. Bug RF4 M6 => RF4 CR1
              Ilya Shaikovsky Master

              just wanted to update thread to indicate that I'm working on it. with current snapshot:

               

              1) already fixed.

              2) also works for me. for

              <rich:dataTable value="#{carsBean.allInventoryItems}" var="car" rowClass="asd"

              I see

              <tr class="rf-dt-r asd">...

               

              rendered

              • 4. Bug RF4 M6 => RF4 CR1
                Ilya Shaikovsky Master

                2) sorry.. missed that you talking about extended table. but after re-checking found that it's also wowrks fine;

                <tr id="j_idt226:table:1:n" class="asd">...

                encoded for both frozen and non-frozen tr-s in different tables.

                • 5. Bug RF4 M6 => RF4 CR1
                  Ilya Shaikovsky Master

                  3) will not works even outside of the table. And here is waht I find out:

                  • JSF has com.sun.faces.allowTextChildren context param and it's set to false by default. So tooltip just not encoded and we can't influence that.
                  • even if set to true - tooltip rendered outside of span with text because text rendered in next order - children and then text itself in encode end. So default "parent" attachment can't work in that case.
                  • Even if you will use id on input and tartet on tooltip - for some reason the attachment not occurs correctly. (That's the only issue which we could review) .. probably because script getting evaluated before the span with text appears (because of the problem from previous list item)

                   

                  So I could propose you to use:

                  <rich:column>

                     <a4j:outputPanel layout="block">

                        <rich:tooltip>werwerwer</rich:tooltip>

                        <h:outputText value="#{car.vendor}" id="vend"/>

                     </a4j:outputPanel>

                  </rich:column>

                  • 6. Bug RF4 M6 => RF4 CR1
                    Ilya Shaikovsky Master

                    4) grouping - not implemented. and sorting only using JS API or changing sort order's using ajax command components.

                     

                    <rich:dataTable value="#{capitalsBean.capitals}" var="cap" id="table">

                    <rich:column sortBy="#{cap.name}" id="name"

                                                            sortOrder="#{capitalsSortingBean.capitalsOrder}">

                                                            <f:facet name="header">

                                                                      <h:outputLink onclick="#{rich:component('table')}.sort('name')" value="#">Sort JS API</h:outputLink>

                                                                      <a4j:commandLink value="Sort by Capital Name" render="table"

                                                                                action="#{capitalsSortingBean.sortByCapitals}" />

                                                            </f:facet>

                                                            <h:outputText value="#{cap.name}" />

                                                  </rich:column>

                     

                    both links works fine for me. the first one does not require action and optionally you could pass the order after click as the second sort() parameter. And moreover using JS API allows you to add third boolean parameter which means if the previous sorting should be reset (important in case of multiple sorting)

                    • 7. Bug RF4 M6 => RF4 CR1
                      Ilya Shaikovsky Master

                      5) checked under snapshot and works for both DT and EDT components

                       

                      and finally 6) - I believe just configuration issue. but actually do not completelly get the problem source from stackoverflow description.

                      • 8. Bug RF4 M6 => RF4 CR1
                        jules poit Newbie

                        Hello Ilya

                         

                        1. Perfect
                        2. Indeed it is working !! I was using the rowClass to change style when hovering, and I guess It was not suppose to be working like that ! So I used jquery for that and it is perfect.
                        3. Thanks !! It is working perfectly !
                        4. That's too bad The grouping feature was nice ! I just implemented the sort like in the showcase and it is working like a charm !
                        5. Working !
                        6. This is my biggest issue, I am not using srping web flow though but everytime I am going on my welcome page - point of entry, no style is being loaded, and when I am logging to my web app, I am being redirected to javax.faces.resource/richfaces.js.jsf and then the style is being loaded. I can provide my configuration if it helps !!

                        Thank you for looking on those issues If I think I am seeing bugs I will post to raise them

                         

                         

                         

                        My conf :

                         

                        Web.xml :

                         

                        <?xml version="1.0" encoding="UTF-8"?>

                        <web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee"

                        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">

                        <context-param>

                          <param-name>com.sun.faces.enabledLoadBundle11Compatibility</param-name>

                          <param-value>true</param-value>

                        </context-param>

                         

                        <context-param>

                          <param-name>com.sun.faces.validateXml</param-name>

                          <param-value>true</param-value>

                        </context-param>

                         

                        <context-param>

                          <param-name>com.sun.faces.verifyObjects</param-name>

                          <param-value>true</param-value>

                        </context-param>

                         

                        <context-param>

                          <param-name>contextConfigLocation</param-name>

                          <param-value>classpath:/applicationContext.xml

                                   /WEB-INF/web-application-security.xml</param-value>

                        </context-param>

                         

                         

                        <context-param>

                          <param-name>facelets.DEVELOPMENT</param-name>

                          <param-value>true</param-value>

                        </context-param>

                         

                        <context-param>

                          <param-name>javax.faces.DEFAULT_SUFFIX</param-name>

                          <param-value>.xhtml</param-value>

                        </context-param>

                         

                        <context-param>

                          <param-name>javax.faces.FACELETS_REFRESH_PERIOD</param-name>

                          <param-value>1</param-value>

                        </context-param>

                         

                        <context-param>

                          <param-name>javax.faces.INTERPRET_EMPTY_STRING_SUBMITTED_VALUES_AS_NULL</param-name>

                          <param-value>false</param-value>

                        </context-param>

                         

                        <context-param>

                          <param-name>javax.faces.STATE_SAVING_METHOD</param-name>

                          <param-value>client</param-value>

                        </context-param>

                         

                        <context-param>

                          <param-name>org.ajax4jsf.COMPRESS_SCRIPT</param-name>

                          <param-value>true</param-value>

                        </context-param>

                         

                        <context-param>

                          <param-name>org.ajax4jsf.COMPRESS_STYLE</param-name>

                          <param-value>true</param-value>

                        </context-param>

                         

                        <context-param>

                          <param-name>org.ajax4jsf.VIEW_HANDLERS</param-name>

                          <param-value>com.sun.facelets.FaceletViewHandler</param-value>

                        </context-param>

                        <context-param>

                          <param-name>org.ajax4jsf.handleViewExpiredOnClient</param-name>

                          <param-value>true</param-value>

                        </context-param>

                         

                        <context-param>

                          <param-name>org.ajax4jsf.xmlparser.ORDER</param-name>

                          <param-value>NEKO, TIDY</param-value>

                        </context-param>

                         

                        <context-param>

                          <param-name>org.richfaces.CONTROL_SKINNING</param-name>

                          <param-value>enable</param-value>

                        </context-param>

                         

                        <context-param>

                          <param-name>org.richfaces.LoadScriptStrategy</param-name>

                          <param-value>ALL</param-value>

                        </context-param>

                        <context-param>

                          <param-name>org.richfaces.LoadStyleStrategy</param-name>

                          <param-value>ALL</param-value>

                        </context-param>

                         

                        <context-param>

                          <param-name>org.richfaces.fileUpload.createTempFiles</param-name>

                          <param-value>true</param-value>

                        </context-param>

                         

                        <context-param>

                          <param-name>org.richfaces.skin</param-name>

                          <param-value>classic</param-value>

                        </context-param>

                         

                        <!-- Enables Spring Security -->

                        <filter>

                          <filter-name>springSecurityFilterChain</filter-name>

                          <filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class>

                        </filter>

                         

                        <filter>

                          <filter-name>Pretty Filter</filter-name>

                          <filter-class>com.ocpsoft.pretty.PrettyFilter</filter-class>

                        </filter>

                         

                        <filter-mapping>

                          <filter-name>springSecurityFilterChain</filter-name>

                          <url-pattern>/*</url-pattern>

                          <dispatcher>FORWARD</dispatcher>

                          <dispatcher>REQUEST</dispatcher>

                          <dispatcher>ERROR</dispatcher>

                        </filter-mapping>

                         

                        <filter-mapping>

                          <filter-name>Pretty Filter</filter-name>

                          <url-pattern>/*</url-pattern>

                          <dispatcher>FORWARD</dispatcher>

                          <dispatcher>REQUEST</dispatcher>

                          <dispatcher>ERROR</dispatcher>

                        </filter-mapping>

                         

                        <listener>

                          <listener-class>com.sun.faces.config.ConfigureListener</listener-class>

                        </listener>

                         

                        <!-- Loads the Spring web application context -->

                        <listener>

                          <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>

                        </listener>

                         

                        <listener>

                          <listener-class>org.springframework.web.context.request.RequestContextListener</listener-class>

                        </listener>

                         

                        <listener>

                          <listener-class>org.springframework.security.web.session.HttpSessionEventPublisher</listener-class>

                        </listener>

                         

                          <servlet>

                          <servlet-name>Faces Servlet</servlet-name>

                          <servlet-class>javax.faces.webapp.FacesServlet</servlet-class>

                          <load-on-startup>1</load-on-startup>

                        </servlet>

                         

                        <servlet-mapping>

                          <servlet-name>Faces Servlet</servlet-name>

                          <url-pattern>*.jsf</url-pattern>

                        </servlet-mapping>

                         

                        <session-config>

                          <session-timeout>10</session-timeout>

                        </session-config>

                         

                        <mime-mapping>

                          <extension>ecss</extension>

                          <mime-type>text/css</mime-type>

                        </mime-mapping>

                         

                        <welcome-file-list>

                          <welcome-file>index.jsp</welcome-file>

                        </welcome-file-list>

                         

                        <security-constraint>

                          <web-resource-collection>

                           <web-resource-name>Secured Application</web-resource-name>

                           <url-pattern>/*</url-pattern>

                          </web-resource-collection>

                          <user-data-constraint>

                           <transport-guarantee>CONFIDENTIAL</transport-guarantee>

                          </user-data-constraint>

                        </security-constraint>

                         

                        </web-app>

                         

                        And in the faces-config I only have :

                         

                        <application>

                          <el-resolver>org.springframework.web.jsf.el.SpringBeanFacesELResolver</el-resolver>

                        </application>

                        <lifecycle>

                          <phase-listener>utils.SpringSecurityListener</phase-listener>

                        </lifecycle>

                        • 9. Bug RF4 M6 => RF4 CR1
                          Ilya Shaikovsky Master

                          4) for now it could be still implemented using collapsibleSubTable. But seems not your case as it not works for EDT. (And support is questionable from the beginning because of frozen cols and scrolling features.)

                           

                          6) will it works if you will remove <security-constraint> from web.xml ? Just to check.

                          if nothing will still helps - please share minimal configured project with me(to just build and run locally).. unfortunatelly still has no test projects with Spring configured.

                           

                          And Many thanks for participation and patience! Keep doing us better

                          • 10. Bug RF4 M6 => RF4 CR1
                            jules poit Newbie

                            4) Very well

                             

                            6) Not it does not :/ I prepared a sample for test though, I am going to send that to you ^^

                             

                            A little question, is richfaces going to add more components to its library and have effect attributes to some of the actual components ? It seems like a fancy/shallow question ahah but I am using some components of Primefaces since some components of RF 4 are not here yet - The rich editor for example, and I spend some time browsing their showcase, and those little effects on pretty much every components gives a  really cool factor !!!

                            I do not know if richfaces are going to follow this direction I am just curious about it

                             

                            No problem

                            • 11. Bug RF4 M6 => RF4 CR1
                              Ilya Shaikovsky Master

                              6) will review and update you.

                               

                              effects - https://issues.jboss.org/browse/RFPL-1253

                              • 12. Re: Bug RF4 M6 => RF4 CR1
                                Ilya Shaikovsky Master

                                sorry that not completed.. (just spend all the time I can for that ) but found next things

                                 

                                1) add

                                <intercept-url pattern="/javax.faces.resource/**" filters="none" />

                                <intercept-url pattern="/rfRes/**" filters="none" />

                                to the <!-- PUBLIC --> section of web-app-security descriptor.

                                 

                                That will unblock the resources from being loaded. (skinned buttons and input appeared at login page)

                                 

                                2) authorizing using login button now not loads any resource files because of the same resources exclusion! But weird -  it sends me to https://localhost:8443/pages/redirect.jsp and that page get not found (see that context dissapeared from URL). Played a little bit with descriptors but can't find where the problem lies :/ But sure that this is Spring security or redirect related. Please check on your side too.

                                 

                                Hope it helps!

                                • 13. Bug RF4 M6 => RF4 CR1
                                  jules poit Newbie

                                  Well you know what

                                  It is working as it should now !!! Awesome !! Thank you for spending time on this issue !!!

                                  For the redirect, some times apache has issues to load some jsp class but it happens when you stop/start the server a lot.

                                   

                                   

                                  Thank you for your help ^^ I am still migrating from 3.3.3 and if I think I see bugs I will let the community knows.

                                  • 14. Bug RF4 M6 => RF4 CR1
                                    mayank.1941 Newbie

                                    Can someone from the RichFaces comment on the grouping / sorting functionality that is not working in the ExtendedDataTable as described in the original post.  Specifically, will this bug be fixed in the next CR or in 4.0 Final?

                                    1 2 Previous Next