ICEfaces
  1. ICEfaces
  2. ICE-10255

ace:animation QA Test application failures

    Details

    • Type: Bug Bug
    • Status: Closed
    • Priority: Major Major
    • Resolution: Fixed
    • Affects Version/s: 4.0, EE-3.3.0.GA_P03
    • Fix Version/s: 4.2.BETA, 4.2
    • Component/s: ACE-Components, QA
    • Labels:
      None
    • Environment:
      ICEfaces4 trunk rev. 42590
      Browsers: all
      Server: Tomcat7.0.42

      Description

      The following issues have been found while reviewing the ace:animation QA test application:
      http://dev.icesoft.com/svn/repo/qa/trunk/Regression-Icefaces4/Sparkle/Manual/animation

      1) /animationDynAttribute.jsf
      Duration and iterations attributes don't appear to work.

      2) /animationDynAttribute.jsf
      Event attribute cannot be bound to a backing bean.
      As example, this works: <ace:animation event="click"/>; however using <ace:animation event="#{attributeBean.event}"/> throws a server error (HTTP Status 500 on page):

      Sep 19, 2014 2:55:01 PM org.apache.catalina.core.StandardWrapperValve invoke
      SEVERE: Servlet.service() for servlet [Faces Servlet] in context with path [/animation] threw exception [/animationDynAttribute.xhtml @56,22 <ace:animation> The 'event' attribute for behavior tag must be a literal] with root cause
      javax.faces.view.facelets.FaceletException: /animationDynAttribute.xhtml @56,22 <ace:animation> The 'event' attribute for behavior tag must be a literal
          at com.sun.faces.facelets.tag.AbstractTagLibrary$UserComponentHandlerFactory.createHandler(AbstractTagLibrary.java:344)
          at com.sun.faces.facelets.tag.AbstractTagLibrary.createTagHandler(AbstractTagLibrary.java:723)
          at com.sun.faces.facelets.tag.CompositeTagLibrary.createTagHandler(CompositeTagLibrary.java:194)
          at com.sun.faces.facelets.compiler.TagUnit.createFaceletHandler(TagUnit.java:121)
          at com.sun.faces.facelets.compiler.TextUnit.createFaceletHandler(TextUnit.java:117)
          at com.sun.faces.facelets.compiler.CompilationUnit.getNextFaceletHandler(CompilationUnit.java:115)
          at com.sun.faces.facelets.compiler.NamespaceUnit.createFaceletHandler(NamespaceUnit.java:82)
          at com.sun.faces.facelets.compiler.CompilationUnit.getNextFaceletHandler(CompilationUnit.java:115)
          at com.sun.faces.facelets.compiler.CompilationUnit.createFaceletHandler(CompilationUnit.java:106)
          at com.sun.faces.facelets.compiler.CompilationManager.createFaceletHandler(CompilationManager.java:381)
          at com.sun.faces.facelets.compiler.SAXCompiler.doCompile(SAXCompiler.java:468)
          at com.sun.faces.facelets.compiler.SAXCompiler.doCompile(SAXCompiler.java:430)
          at com.sun.faces.facelets.compiler.Compiler.compile(Compiler.java:124)
          at com.sun.faces.facelets.impl.DefaultFaceletFactory.createFacelet(DefaultFaceletFactory.java:481)
          at com.sun.faces.facelets.impl.DefaultFaceletFactory.access$100(DefaultFaceletFactory.java:106)
          at com.sun.faces.facelets.impl.DefaultFaceletFactory$1.newInstance(DefaultFaceletFactory.java:199)
          at com.sun.faces.facelets.impl.DefaultFaceletFactory$1.newInstance(DefaultFaceletFactory.java:197)
          at com.sun.faces.facelets.impl.DefaultFaceletCache$1.newInstance(DefaultFaceletCache.java:86)
          at com.sun.faces.facelets.impl.DefaultFaceletCache$1.newInstance(DefaultFaceletCache.java:81)
          at com.sun.faces.util.ExpiringConcurrentCache$1.call(ExpiringConcurrentCache.java:99)
          at java.util.concurrent.FutureTask.run(FutureTask.java:262)
          at com.sun.faces.util.ExpiringConcurrentCache.get(ExpiringConcurrentCache.java:114)
          at com.sun.faces.facelets.impl.DefaultFaceletCache.getFacelet(DefaultFaceletCache.java:124)
          at com.sun.faces.facelets.impl.DefaultFaceletCache.getFacelet(DefaultFaceletCache.java:63)
          at com.sun.faces.facelets.impl.DefaultFaceletFactory.getFacelet(DefaultFaceletFactory.java:295)
          at com.sun.faces.facelets.impl.DefaultFaceletFactory.getFacelet(DefaultFaceletFactory.java:239)
          at com.sun.faces.application.view.FaceletViewHandlingStrategy.buildView(FaceletViewHandlingStrategy.java:984)
          at com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:99)
          at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101)
          at com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:219)
          at javax.faces.webapp.FacesServlet.service(FacesServlet.java:647)
          at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
          at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
          at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:222)
          at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123)
          at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:502)
          at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171)
          at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:99)
          at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:953)
          at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
          at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:408)
          at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1023)
          at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:589)
          at org.apache.tomcat.util.net.AprEndpoint$SocketProcessor.run(AprEndpoint.java:1852)
          at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
          at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
          at java.lang.Thread.run(Thread.java:744)


      3) /easings.jsf, /preDefined.jsf, /jsfComps.jsf, /simpleHighlight.jsf (demos using the 'easing' attribute)
      A browser console error occurs when clicking inside an h:inputText with ace:animation using 'easing' attribute.

      Chrome:
      Uncaught TypeError: undefined is not a function ace-jquery.js.jsf?ln=icefaces.ace&v=4_0_0_140919:133

      Firefox:
      TypeError: k.easing[this.easing] is not a function
      http://localhost:8080/animation/javax.faces.resource/util/ace-jquery.js.jsf?ln=icefaces.ace&v=4_0_0_140919
      Line 133

      IE10:
      Message: Object doesn't support property or method 'easeBoth'
      Line: 133
      Char: 235
      Code: 0
      URI: http://localhost:8080/animation/javax.faces.resource/util/ace-jquery.js.jsf?ln=icefaces.ace&v=4_0_0_140919


      4) /calendarEffect.jsf, /tabsetEffect.jsf:
      A server error occurs when trying to access any of these pages:

      Sep 19, 2014 5:10:08 PM org.apache.catalina.core.StandardWrapperValve invoke
      SEVERE: Servlet.service() for servlet [Faces Servlet] in context with path [/animation] threw exception [/calendarEffect.xhtml @18,55 <ace:animation> Event is not supported by this component DateTimeEntry] with root cause
      javax.faces.view.facelets.TagException: /calendarEffect.xhtml @18,55 <ace:animation> Event is not supported by this component DateTimeEntry
      at org.icefaces.ace.component.animation.AnimationBehaviorHandler.apply(AnimationBehaviorHandler.java:73)
      at javax.faces.view.facelets.CompositeFaceletHandler.apply(CompositeFaceletHandler.java:95)
      at javax.faces.view.facelets.DelegatingMetaTagHandler.applyNextHandler(DelegatingMetaTagHandler.java:137)
      at com.sun.faces.facelets.tag.jsf.ComponentTagHandlerDelegateImpl.apply(ComponentTagHandlerDelegateImpl.java:203)
      at javax.faces.view.facelets.DelegatingMetaTagHandler.apply(DelegatingMetaTagHandler.java:120)
      at javax.faces.view.facelets.CompositeFaceletHandler.apply(CompositeFaceletHandler.java:95)
      at javax.faces.view.facelets.DelegatingMetaTagHandler.applyNextHandler(DelegatingMetaTagHandler.java:137)
      at com.sun.faces.facelets.tag.jsf.ComponentTagHandlerDelegateImpl.apply(ComponentTagHandlerDelegateImpl.java:203)
      at javax.faces.view.facelets.DelegatingMetaTagHandler.apply(DelegatingMetaTagHandler.java:120)
      at javax.faces.view.facelets.CompositeFaceletHandler.apply(CompositeFaceletHandler.java:95)
      at javax.faces.view.facelets.DelegatingMetaTagHandler.applyNextHandler(DelegatingMetaTagHandler.java:137)
      at com.sun.faces.facelets.tag.jsf.ComponentTagHandlerDelegateImpl.apply(ComponentTagHandlerDelegateImpl.java:203)
      at javax.faces.view.facelets.DelegatingMetaTagHandler.apply(DelegatingMetaTagHandler.java:120)
      at javax.faces.view.facelets.CompositeFaceletHandler.apply(CompositeFaceletHandler.java:95)
      at com.sun.faces.facelets.compiler.NamespaceHandler.apply(NamespaceHandler.java:93)
      at com.sun.faces.facelets.compiler.EncodingHandler.apply(EncodingHandler.java:87)
      at com.sun.faces.facelets.impl.DefaultFacelet.apply(DefaultFacelet.java:161)
      at com.sun.faces.application.view.FaceletViewHandlingStrategy.buildView(FaceletViewHandlingStrategy.java:990)
      at com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:99)
      at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101)
      at com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:219)

        Activity

        Hide
        Carmen Cristurean added a comment -

        All issues are still reproducible on IF4 trunk r. 42694 (all browsers).

        Show
        Carmen Cristurean added a comment - All issues are still reproducible on IF4 trunk r. 42694 (all browsers).
        Hide
        Carmen Cristurean added a comment - - edited

        ICEfaces4 trunk r44119:
        Issues 1) and 2) are still reproducible.
        Issue 3) was resolved by updating the QA test pages to use easing values in accordance with tlddoc.
        Issue 4): /calendarEffect.jsf, /tabsetEffect.jsf have been updated to use client events supported by the ace:dateTimeEntry and ace:tabSet components, and the server error is no longer seen.
        However, a browser console occurs now when navigating to any of the two pages (all browsers).
        /calendarEffect.jsf - Firefox34 error (page content fails to render):
        SyntaxError: missing ] after element list
        http://localhost:8080/animation/calendarEffect.jsf
        Line 8

        /tabSetEffect.jsf - Firefox34 error:
        SyntaxError: missing } after property list
        http://localhost:8080/animation/tabsetEffect.jsf
        Line 24

        Show
        Carmen Cristurean added a comment - - edited ICEfaces4 trunk r44119: Issues 1) and 2) are still reproducible. Issue 3) was resolved by updating the QA test pages to use easing values in accordance with tlddoc. Issue 4): /calendarEffect.jsf, /tabsetEffect.jsf have been updated to use client events supported by the ace:dateTimeEntry and ace:tabSet components, and the server error is no longer seen. However, a browser console occurs now when navigating to any of the two pages (all browsers). /calendarEffect.jsf - Firefox34 error (page content fails to render): SyntaxError: missing ] after element list http://localhost:8080/animation/calendarEffect.jsf Line 8 /tabSetEffect.jsf - Firefox34 error: SyntaxError: missing } after property list http://localhost:8080/animation/tabsetEffect.jsf Line 24
        Hide
        Carmen Cristurean added a comment -

        All above issues still exist on ICEfaces4 trunk r.47027.

        Show
        Carmen Cristurean added a comment - All above issues still exist on ICEfaces4 trunk r.47027.
        Hide
        Liana Munroe added a comment -

        Above issues also exist with ICEfaces ee-3.3.0 maintenance branch r49017.
        Adding to issue 1, the mouseover and blur events do not appear to function in the /animationDynAttribute.jsf app.

        Show
        Liana Munroe added a comment - Above issues also exist with ICEfaces ee-3.3.0 maintenance branch r49017. Adding to issue 1, the mouseover and blur events do not appear to function in the /animationDynAttribute.jsf app.
        Hide
        Mircea Toma added a comment -

        1) Fixed animation client-side configuration. Removed redundant save/restore for the animation parameters since they are anyway read everytime the behaviour is constructed.

        Show
        Mircea Toma added a comment - 1) Fixed animation client-side configuration. Removed redundant save/restore for the animation parameters since they are anyway read everytime the behaviour is constructed.
        Hide
        Mircea Toma added a comment -

        2) Modified test page to have separate animated panel grids for 'click' and 'mouseover' events since the behaviour 'event' attribute cannot have a EL expression in it (JSF limitation).

        The 'blur' event is not supported by the panel grid (JSF will complain), so now it's removed from the test page.

        Show
        Mircea Toma added a comment - 2) Modified test page to have separate animated panel grids for 'click' and 'mouseover' events since the behaviour 'event' attribute cannot have a EL expression in it (JSF limitation). The 'blur' event is not supported by the panel grid (JSF will complain), so now it's removed from the test page.
        Hide
        Mircea Toma added a comment - - edited

        Set default number of iterations to 1 to actually have the animations work without having to change any of the attributes after a page load. Setting the number of iterations to 0 will disable the animations.

        Show
        Mircea Toma added a comment - - edited Set default number of iterations to 1 to actually have the animations work without having to change any of the attributes after a page load. Setting the number of iterations to 0 will disable the animations.
        Hide
        Mircea Toma added a comment -

        4) Remove semicolon at the end of animation behaviour script to allow its embedding in the configuration of the components.

        Show
        Mircea Toma added a comment - 4) Remove semicolon at the end of animation behaviour script to allow its embedding in the configuration of the components.
        Hide
        Mircea Toma added a comment - - edited

        I cannot reproduce 'SyntaxError: missing } after property list' error anymore. The fix mentioned above solved this issue as well.

        Show
        Mircea Toma added a comment - - edited I cannot reproduce 'SyntaxError: missing } after property list' error anymore. The fix mentioned above solved this issue as well.
        Hide
        Mircea Toma added a comment -

        Carmen, please SVN update the test case as well. It's modified, see here why: http://jira.icesoft.org/browse/ICE-10255?focusedCommentId=64705&page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-64705 . In a nutshell the "event" attribute on client behaviours cannot be bound to a bean. I would take a lot of effort in replacing the JSF infrastracture just to have it bindable.

        Show
        Mircea Toma added a comment - Carmen, please SVN update the test case as well. It's modified, see here why: http://jira.icesoft.org/browse/ICE-10255?focusedCommentId=64705&page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-64705 . In a nutshell the "event" attribute on client behaviours cannot be bound to a bean. I would take a lot of effort in replacing the JSF infrastracture just to have it bindable.
        Hide
        Mircea Toma added a comment -

        Yeah, the jQuery "explode" effect seems to be buggy.

        Show
        Mircea Toma added a comment - Yeah, the jQuery "explode" effect seems to be buggy.
        Hide
        Mircea Toma added a comment -

        Specified the limitations of the 'event' attribute in the Javadoc (for AnimationBehaviorHandlerMeta).

        Show
        Mircea Toma added a comment - Specified the limitations of the 'event' attribute in the Javadoc (for AnimationBehaviorHandlerMeta ).
        Hide
        Mircea Toma added a comment - - edited

        Modified ice.ace.animation.run function to avoid starting an effect for a given element while another one is still running (for the same element). This avoids having an avalanche of effects started, as we can see with mouseover event. The running effects will consume a lot of processing power and slow down the browser significantly.

        Show
        Mircea Toma added a comment - - edited Modified ice.ace.animation.run function to avoid starting an effect for a given element while another one is still running (for the same element). This avoids having an avalanche of effects started, as we can see with mouseover event. The running effects will consume a lot of processing power and slow down the browser significantly.

          People

          • Assignee:
            Mircea Toma
            Reporter:
            Carmen Cristurean
          • Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved: