From: Justin F. <je...@ey...> - 2001-07-09 19:46:22
|
Alex/Guys: I am having a problem/bug that I am spending way too much time on chasing. Since I am not experienced with BC, this problem I tend to "blame" on the different platform/environment, as the code seems right. So, I am summarizing this problem for that case that Alex or someone will recognize as a BC problem, or that it must be some subtle error in the code. OTHERWISE DON'T WASTE ANY TIME ON THIS. I have a module Warning.php that collects non-fatal warnings for the application and prints them out in a "pane" of the page render. I have another module that does a lot of database work in the constructor, and that is where this stack of warnings is most exercised. I have scattered some printf's for debugging. Basically, in this stack in a module that has already been instantiated and is collecting warnings from a constructor "behind" it, looses its stack when Output() is called by BC for the module. viz (the Before/After bracket the new in Page.php): Before instantiation of lib.EyeLibrary After instantiation of lib.EyeLibrary Before instantiation of astronomy.LookupTable After instantiation of astronomy.LookupTable Before instantiation of lib.Warning After instantiation of lib.Warning Before instantiation of astronomy.Top After instantiation of astronomy.Top Before instantiation of astronomy.Nav After instantiation of astronomy.Nav Before instantiation of lib.EditTable In EditTable constructor setWarning called...with [You have asked for a record that is greater than the number in the data set. Record set to last record.]. Now 1 warnings on stack. setWarning called...with [Right after existence]. Now 2 warnings on stack. setWarning called...with [Right after existence]. Now 3 warnings on stack. After instantiation of lib.EditTable === Above gets printed before page render And, in the page render (Output) I get: setWarning called...with [Test inside /usr/local/binarycloud/build/en/user/mod/lib/Warning.php]. Now 1 warnings on stack. only one on the stack, and that was a "phoney" call to the Warning->setWarning() in Warning->Output(). I lost all the warnings made in the consstructor of EditTable. This is the method in the lib.Warning module: ------------------------------------------------ function setWarning($msg="Unknown warning") { $this->HaveWarning = true; array_push($this->Warnings,$msg); printf("setWarning called...with [%s]. Now %d warnings on stack.<br>\n", $msg,count($this->Warnings)); } -------------------------- NOW NOBODY SHOULD WASTE ANY TIME ON THIS unless someone has had a similar problem and it is, somehow, related to the BC environment. -- Justin Farnsworth Eye Integrated Communications 321 South Evans - Suite 203 Greenville, NC 27858 | Tel: (252) 353-0722 |