Title: Recommended way to clean up a component?

I have some components that retrieve and store a copy of a db object in a local variable which is accessed many times by the component. The object is lazily loaded like this:

Object getCachedDBObject() {
        if (m_cachedDBObject == null) {
                m_cachedDBObject = retrieveObjectFromDB();
        }
        return m_cachedDBObject;
}

At the end of the current cycle, m_cachedDBObject needs to be nulled out so the next time the component is used it'll get a new copy.

What's the best way to do this? Right now I'm making my components implement PageDetachListener and override finishLoad() like this:

public finishLoad() {
        getPage().addPageDetachListener(this);
}

public void pageDetached(PageEvent pageEvent){
        m_cachedDBObject = null;
}

Is this the right way to do it? Is there a better way? I tried overriding cleanUpAfterRender but that didn't seem to work... could easily have been user error though.

Reply via email to