Ah, wait. Don't forget to reproduce the bug as per my description in the first 
post in thread.

I always get scolded for fixing a bug without first reproducing it. Sigh. That's why I posted the precise steps to reproduce bug.

(But i have a high rate of accurate bug-catch and bug-fixes, honest. I wish I'm dumber, so i can be the boss instead. For those of you who had seen me in ML during Jan 2007, you'll know that I'm overwhelmed with work again right now. :/)

Jonathon

Jonathon -- Improov wrote:
In that exact Java method in class HtmlWidget. Look for a push without a matching pop. Very obvious. Just add a pop. I tested the fix, it works.

Jonathon

Al Byers wrote:
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



------------------------------------------------------------------------

No virus found in this incoming message.
Checked by AVG Free Edition. Version: 7.5.503 / Virus Database: 269.16.7/1151 - Release Date: 11/25/2007 4:24 PM



Reply via email to