You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tapestry.apache.org by "Daniel Jue (JIRA)" <de...@tapestry.apache.org> on 2007/05/18 05:23:16 UTC

[jira] Created: (TAPESTRY-1477) IF component's condition expression get evaluated 3 or more times when it should only be evaluated once.

IF component's condition expression get evaluated 3 or more times when it should only be evaluated once.
--------------------------------------------------------------------------------------------------------

                 Key: TAPESTRY-1477
                 URL: https://issues.apache.org/jira/browse/TAPESTRY-1477
             Project: Tapestry
          Issue Type: Bug
          Components: Core Components
    Affects Versions: 4.1.2
         Environment: At least since 4.1.2-20070501.233137-64, but an old 4.1.2-20070215.051249-15 worked correctly.
Java 1.5, Tomcat 5.5.23 (should not matter), caching off.  IE 6 and Firefox 2 on XP Pro.
            Reporter: Daniel Jue
             Fix For: 4.1.2


I've simplified the problem code even
more, to eliminate any confusion:

plain.java:
package com.phy6.app;

import org.apache.tapestry.IComponent;
import org.apache.tapestry.annotations.Component;
import org.apache.tapestry.annotations.InitialValue;
import org.apache.tapestry.html.BasePage;

public abstract class plain extends BasePage {

       public boolean getDoStuff() {
               this.setNumber(this.getNumber() + 1);
               System.out.println("plain: getDoStuff() " + this.getNumber());
               return false;
       }

       @Component(type = "If", id = "ifXYZ", bindings = {
               "condition=getDoStuff()" })
       public abstract IComponent getIfXYZ();

       @InitialValue("0")
       public abstract int getNumber();

       @Component(type="Insert",id="wtfisgoingon",bindings={"value=getNumber()"})
       public abstract IComponent getWTFisgoingon();
       public abstract void setNumber(int n);
}


plain.html:

<html>
<body>
<span jwcid="ifXYZ">Hi</span>
<span jwcid="wtfisgoingon" />
</body>
</html>

plain.page is still an empty page spec.

Same output:

May 17, 2007 1:57:40 PM org.apache.catalina.startup.Catalina start
INFO: Server startup in 5328 ms
plain: getDoStuff() 1
plain: getDoStuff() 2
plain: getDoStuff() 3


Expected output:
plain: getDoStuff() 1

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tapestry.apache.org
For additional commands, e-mail: dev-help@tapestry.apache.org


[jira] Closed: (TAPESTRY-1477) IF component's condition expression get evaluated 3 or more times when it should only be evaluated once.

Posted by "Jesse Kuhnert (JIRA)" <de...@tapestry.apache.org>.
     [ https://issues.apache.org/jira/browse/TAPESTRY-1477?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Jesse Kuhnert closed TAPESTRY-1477.
-----------------------------------

    Resolution: Won't Fix

Read reply on mailing list. 

> IF component's condition expression get evaluated 3 or more times when it should only be evaluated once.
> --------------------------------------------------------------------------------------------------------
>
>                 Key: TAPESTRY-1477
>                 URL: https://issues.apache.org/jira/browse/TAPESTRY-1477
>             Project: Tapestry
>          Issue Type: Bug
>          Components: Core Components
>    Affects Versions: 4.1.2
>         Environment: At least since 4.1.2-20070501.233137-64, but an old 4.1.2-20070215.051249-15 worked correctly.
> Java 1.5, Tomcat 5.5.23 (should not matter), caching off.  IE 6 and Firefox 2 on XP Pro.
>            Reporter: Daniel Jue
>             Fix For: 4.1.2
>
>
> I've simplified the problem code even
> more, to eliminate any confusion:
> plain.java:
> package com.phy6.app;
> import org.apache.tapestry.IComponent;
> import org.apache.tapestry.annotations.Component;
> import org.apache.tapestry.annotations.InitialValue;
> import org.apache.tapestry.html.BasePage;
> public abstract class plain extends BasePage {
>        public boolean getDoStuff() {
>                this.setNumber(this.getNumber() + 1);
>                System.out.println("plain: getDoStuff() " + this.getNumber());
>                return false;
>        }
>        @Component(type = "If", id = "ifXYZ", bindings = {
>                "condition=getDoStuff()" })
>        public abstract IComponent getIfXYZ();
>        @InitialValue("0")
>        public abstract int getNumber();
>        @Component(type="Insert",id="wtfisgoingon",bindings={"value=getNumber()"})
>        public abstract IComponent getWTFisgoingon();
>        public abstract void setNumber(int n);
> }
> plain.html:
> <html>
> <body>
> <span jwcid="ifXYZ">Hi</span>
> <span jwcid="wtfisgoingon" />
> </body>
> </html>
> plain.page is still an empty page spec.
> Same output:
> May 17, 2007 1:57:40 PM org.apache.catalina.startup.Catalina start
> INFO: Server startup in 5328 ms
> plain: getDoStuff() 1
> plain: getDoStuff() 2
> plain: getDoStuff() 3
> Expected output:
> plain: getDoStuff() 1

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tapestry.apache.org
For additional commands, e-mail: dev-help@tapestry.apache.org