1 Reply Latest reply on Jan 9, 2014 5:52 AM by godoy

    RichFaces 3.3.1 - javax.faces.FacesException - Error decode resource data

    simplex-software

      Greetings,

      I'm using JBoss EAP 5.2.0 with RF 3.3.1 SP3 and Seam 2.2.6 EAP5. I will try to explain my problem. In a webapp, I have basic elements and group of basic elements. In order to group elements I'm using a listshuttle control such that to move elements into groups or, reverselly, to move elements out of groups. The test scenario is as follows: I create a new group, I add to it elements, I commit and it works as expected. Also, I can modify the group be removing existent elements or adding new ones, it works as expected as well. But as soon as I log-out and log-in again, i.e. as soon as I open a new session and, consequently, a new conversation, when I try to perform add/remove operations on an existing group, created previously, in a different conversation, I get :

       

      2013-12-12 20:07:09,126 ERROR [org.apache.catalina.core.ContainerBase.[jboss.web].[localhost].[/edf-web].[default]] (http-localhost%2F127.0.0.1-8080-4) "Servlet.service()" pour la servlet default a g?n?r? une exception javax.faces.FacesException: Error decode resource data at org.ajax4jsf.resource.ResourceBuilderImpl.decrypt(ResourceBuilderImpl.java:627) at org.ajax4jsf.resource.ResourceBuilderImpl.getResourceDataForKey(ResourceBuilderImpl.java:369) at org.ajax4jsf.resource.InternetResourceService.serviceResource(InternetResourceService.java:156) at org.ajax4jsf.resource.InternetResourceService.serviceResource(InternetResourceService.java:141) at org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:493) at org.jboss.seam.web.Ajax4jsfFilter.doFilter(Ajax4jsfFilter.java:56) at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69) at org.jboss.seam.web.LoggingFilter.doFilter(LoggingFilter.java:60) at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69) at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:73) at org.jboss.seam.servlet.SeamFilter.doFilter(SeamFilter.java:158) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:235) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191) at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:183) at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:433) at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:95) at org.jboss.web.tomcat.security.SecurityContextEstablishmentValve.process(SecurityContextEstablishmentValve.java:126) at org.jboss.web.tomcat.security.SecurityContextEstablishmentValve.invoke(SecurityContextEstablishmentValve.java:70) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102) at org.jboss.web.tomcat.service.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:158) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:330) at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:829) at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:599) at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:451) at java.lang.Thread.run(Thread.java:662) Caused by: java.util.zip.DataFormatException: incorrect data check at java.util.zip.Inflater.inflateBytes(Native Method) at java.util.zip.Inflater.inflate(Inflater.java:238) at java.util.zip.Inflater.inflate(Inflater.java:256) at org.ajax4jsf.resource.ResourceBuilderImpl.decrypt(ResourceBuilderImpl.java:621) ... 31 more

       

      This happens in the moment when I click the Add or Remove button of the control, i.e. in the JavaScript code provided with the control, so I don't have any possibility to debug anything here. After having googled a lot and having found lots of similar cases, I din't find any solution, at least none working for me. It is probably interested to mention that before the exception above, I have:

       

      2013-12-12 20:07:09,110 INFO [javax.enterprise.resource.webcontainer.jsf.lifecycle] (http-localhost%2F127.0.0.1-8080-4) WARNING: FacesMessage(s) have been enqueued, but may not have been displayed. sourceId=aa02:aa03[severity=(ERROR 2), summary=("Component aa02:aa03 has invalid value expression 19"), detail=("Component aa02:aa03 has invalid value expression 19")]

       

      This is also a topic on which I found tones of posts but no solution neither. So I'm stuck and I really need to use this listshuttle (don't ask me why). I'm looking forward for any help. I could post some code here but the code is the most usual and standard possible, based on the RF samples.

       

      Many thanks in advance for your help. Kind regards,

       

      Nicolas

        • 1. Re: RichFaces 3.3.1 - javax.faces.FacesException - Error decode resource data
          godoy

          Use a filter eg:

           

          public class RichFacesFilter implements  javax.servlet.Filter {

           

              public void doFilter(ServletRequest request, ServletResponse response,

                      FilterChain chain) throws IOException, ServletException {

                  chain.doFilter(new HttpServletRequestWrapper(

                          (HttpServletRequest) request) {

                      public String getRequestURI() {

                          try {

                              return URLDecoder.decode(super.getRequestURI(),

                                      "ISO-8859-1");

                          } catch (UnsupportedEncodingException e) {

                              throw new IllegalStateException(

                                      "Cannot decode request URI.", e);

                          }

                      }

                  }, response);

              }

           

              public void init(FilterConfig arg0) throws ServletException {

              }

           

              public void destroy() {

              }