Jesse, I stepped away from the computer for a bit, and I had just now
submitted the JIRA before updating this conversation.

https://issues.apache.org/jira/browse/TAPESTRY-1477

I am happy to know it is something that happens on purpose, and for
developmental issues.  I would hate to have my DAO's get called 3
times in production though, so if similar ensurances are left in, I
hope there would be a way to turn it off via a flag, etc.

Does this "ensuring" feature only apply to IF components, or to others
as well?  (i.e. are expressions for other components being evaluated
multiple times?)  I have one dynamic form component that can make use
of up to 40 other core components based on multiple if/else
components.

I also feel assured now that this isn't some ill procedure that would
potentially break something down the line.

Daniel

On 5/17/07, Jesse Kuhnert <[EMAIL PROTECTED]> wrote:
No need for JIRA issues - I know exactly why it's doing it and intentionally
have it running this way.

Unfortunately it's the only sane way I know to make sure 4.1.2 is
releasable.  There's no actual need for OGNL expressions to be compiled in
dev mode but otherwise I'd have no way of ensuring that your happily
developed app didn't work quite the same way in production. ...Would you
rather be annoyed for another week or two until the release or get a phone
call at 2am that the app is blowing up and wtf have you done we're totally
screwed? =p

On 5/17/07, Andreas Andreou <[EMAIL PROTECTED]> wrote:
>
> Add a JIRA please.
> At least since 4.1.2-20070501.233137-64, i can see the first If getting
> called 3 times!
> And it's probably the first @If after an app reset that gets evaluated 3
> times and not
> the first @If of a page.
>
> An old 4.1.2-20070215.051249-15 worked correctly, i cant test other (in
> between)
> versions right now due to dependencies incompatibilities.
>
>
>
> On 5/17/07, Daniel Jue <[EMAIL PROTECTED]> wrote:
> >
> > Ugh.  This is a big pain now.  I have a huge dynamic form that has
> > lots of IFs, and I can see the same queries being called 3 times or
> > more.  =(
> > Everything still works, it's just about 3 times slower.
> >
> > If anyone has solved this problem please let me know!
> >
> > On 5/17/07, Daniel Jue <[EMAIL PROTECTED]> wrote:
> > > Here is another example when more than one IF component is used.
> > >
> > > It seems the conditional for the first IF gets called 3 times, then
> > > the others just get called once.
> > >
> > > 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();
> > >
> > >         @Component(type = "If", id = "ifABC", bindings = {
> > "condition=getDoStuff()" })
> > >         public abstract IComponent getIfABC();
> > >
> > >         @Component(type = "If", id = "ifDEF", bindings = {
> > "condition=getDoStuff()" })
> > >         public abstract IComponent getIfDEF();
> > >
> > >         @Component(type = "If", id = "ifGHI", bindings = {
> > "condition=getDoStuff()" })
> > >         public abstract IComponent getIfGHI();
> > >
> > >         @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 XYZ</span>
> > > <span jwcid="ifABC">Hi ABC</span>
> > > <span jwcid="ifDEF">Hi DEF</span>
> > > <span jwcid="ifGHI">Hi GHI</span>
> > > <span jwcid="wtfisgoingon" />
> > > </body>
> > > </html>
> > >
> > >
> > > plain.page is an empty page spec.
> > >
> > > Output:
> > > INFO: Server startup in 3645 ms
> > > plain: getDoStuff() 1
> > > plain: getDoStuff() 2
> > > plain: getDoStuff() 3
> > > plain: getDoStuff() 4
> > > plain: getDoStuff() 5
> > > plain: getDoStuff() 6
> > >
> >
> > ---------------------------------------------------------------------
> > To unsubscribe, e-mail: [EMAIL PROTECTED]
> > For additional commands, e-mail: [EMAIL PROTECTED]
> >
> >
>
>
> --
> Andreas Andreou - [EMAIL PROTECTED] - http://andyhot.di.uoa.gr
> Tapestry / Tacos developer
> Open Source / JEE Consulting
>



--
Jesse Kuhnert
Tapestry/Dojo team member/developer

Open source based consulting work centered around
dojo/tapestry/tacos/hivemind. http://blog.opencomponentry.com


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to