[kepler-dev] [Bug 5095] test kepler and wrp for memory leaks

bugzilla-daemon at ecoinformatics.org bugzilla-daemon at ecoinformatics.org
Tue Nov 9 13:55:09 PST 2010


http://bugzilla.ecoinformatics.org/show_bug.cgi?id=5095

--- Comment #14 from Derik Barseghian <barseghian at nceas.ucsb.edu> 2010-11-09 13:55:08 PST ---
In Reporting, if you save a workflow that has a report design, modify the
workflow and save again, the report layout will not get saved and will
disappear from the gui. This is because after r25851, KeplerGraphFrame
dispose() calls removeNamedObj(this.getModel()), which actually disposes of
ObjectManager's copy of the newest version of the model (and leaves behind in
ObjectManager an old version). During the 2nd save after model modifiation,
ReportLayoutKAREntryHander.save fails to get the model from OM using its newest
lsid, and so doesn't save the layout.

ObjectManager complicates and confuses things by offering methods that don't do
what they purport to, and some that don't do what you probably expect (I'll be
checking in some cleanup soon). One thing to look out for is the difference
between what's actually kept in the _namedObjs map (lsids are not changed) and
the objects and lsids the methods actually utilize (often the NamedObjId for a
NamedObj, different from the original unchanging lsid in the map).

I don't see a quick fix. Many classes depend on the idiosyncratic behavior of
the OM, and so care needs to be taken with refactoring it or manipulation of
the object it holds. The need for a KAR/workflow Manager that can keep things
clearly differentiated by frames has come up a number of times, so one idea is
to implement that and begin migrating things to using it, relying less on OM.

Until a solution is identified, I'm going to comment out the r25851 change.
This will fix this report layout bug, but  means ObjectManager is going to leak
memory again.

-- 
Configure bugmail: http://bugzilla.ecoinformatics.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the QA contact for the bug.


More information about the Kepler-dev mailing list