Jonathon,

I am a good candidate for fixing this. Do you have an idea of exactly where
the fix should be made. It might make things go a little faster.

Thanks,
-Al

On 11/26/07, Jonathon -- Improov <[EMAIL PROTECTED]> wrote:
>
> Hmm. Another quirk that sent me off the cliff. :)
>
> HtmlWidget.render(Writer, Map, ScreenStringRenderer) seems to be missing a
> MapStack pop.
>
> To see the bug, do the 2 screen widgets below, "SomeScreen" and
> "SomeDecorator".
>
> What happens is that section "section2" is gone after processing
> "section1" in "SomeDecorator".
>
> Here's why.
>
> See "SomeDecorator". The SectionsRenderer stored in variable "sections" is
> created with one
> section at the line of <html-template-decorator-section name="section1">.
> This SectionsRenderer is
> created in a private context, with the context of "SomeScreen" pushed into
> a MapStack.
>
> Before that, the SectionsRenderer stored in variable "sections" in the
> previous context (that of
> "SomeScreen") was created with 2 sections "section1" and "section2".
>
> During processing, because the first SectionsRenderer (with only 1 section
> "section1") was never
> popped from the MapStack, it is used to do the next section include
> <decorator-section-include
> name="section2"/>. Obviously, the section "section2" does not exist.
>
> <screen name="SomeScreen">
>    <section>
>    <widgets>
>      <decorator-screen name="SomeDecorator">
>
>        <decorator-section name="section1">
>          <label text="Section One content"/>
>        </decorator-section>
>
>        <decorator-section name="section2">
>          <label text="Section Two content"/>
>        </decorator-section>
>
>      </decorator-screen>
>    </widgets>
>    </section>
> </screen>
>
> <screen name="SomeDecorator">
>    <section>
>    <widgets>
>
>      <platform-specific><html>
>        <html-template-decorator location="SomeTemplate.ftl">
>          <html-template-decorator-section name="section1">
>            <decorator-section-include name="section1"/>
>          </html-template-decorator-section>
>        </html-template-decorator>
>      </html></platform-specific>
>
>      <decorator-section-include name="section2"/>
>
>    </widgets>
>    </section>
> </screen>
>
> Jonathon
>

Reply via email to