Item9487: meta objects are corruptible

pencil
Priority: Urgent
Current State: Closed
Released In: 1.1.0
Target Release: minor
Applies To: Engine
Component:
Branches:
Reported By: MichaelDaum
Waiting For: Main.CrawfordCurrie
Last Change By: CrawfordCurrie
There's a conceptual problem that caused a series of bugs on trunk recently, e.g. Item9482. Code might call Foswiki::Meta::reload() and load an arbitrary revision into the meta object thus overriding the previously loaded one. There's lots of code around that assumes that once a meta object has been created, it stays the same. However, meta objects are passed around and might get a bad treatment on the run, triggering an unexpected result in the code later on in the calling sequence.

See Item9482 for instance. While the fix there cures the symptoms, it does not fix the root cause as described above.

-- MichaelDaum - 18 Aug 2010

Just found out that Item9482 isn't fixed yet.

-- MichaelDaum - 18 Aug 2010

There are other reasons for wanting to lock a meta object to a specific rev. For example, a result set might want to contain results drawn from several different revs of the same topic.

After careful thought and some experimentation, I'm going to change the Foswiki::Meta interface and eliminate the reload method.

-- CrawfordCurrie - 19 Aug 2010

OK, I'm done. I'm sure there are efficiencies to be found.

-- CrawfordCurrie - 19 Aug 2010

 
Topic revision: r6 - 19 Aug 2010, CrawfordCurrie
The copyright of the content on this website is held by the contributing authors, except where stated elsewhere. See Copyright Statement. Creative Commons License    Legal Imprint    Privacy Policy