Hi All
I am working with the 'authentication-fw' in FlowScript, having added
an authenticator that uses Hibernate. ie. My authentication pipeline is
now a FlowScript which calls an internal pipeline to produce the
authentication XML for the framework.
I am finding that the 'dispose' method of my Hibernate component (based
on Hugo Burm's HibernateFactory) never gets called, until I quit Jetty,
which is not what I expected.
This is my authenticator script:
// this function is called internally by the auth-fw,
// to get a pipeline to return an authentication XML stream
function authenticate () {
var username = cocoon.parameters["user"];
var password = cocoon.parameters["pass"];
var factory =
cocoon.getComponent(Packages.[long.path.deleted].PersistanceFactory.ROLE
);
var session = factory.createSession();
try {
var user = Packages.[long.path.deleted].UserPeer.login(session,
username, password, null);
if (user != null) cocoon.log.info ("Got User : " + user.email); //
lubbly jubbly
cocoon.sendPage ("screen/authenticate", {user: user}); // a
JXTemplateGenerator pipeline
} catch (e) {
cocoon.log.error (e.getMessage ());
} finally { //catch (return) not working
cocoon.log.info ("Disposing of Factory"); // I see this message
cocoon.releaseComponent(factory); // I do not see the log message
from the dispose method
}
}
public class HibernateFactory
extends AbstractLogEnabled
implements PersistanceFactory, Configurable, Serviceable,
Initializable, Disposable, ThreadSafe
The dispose method looks like this:
public final void dispose() {
//if (getLogger().isDebugEnabled()) getLogger().debug("Hibernate
dispose called");
// why oh why is this logger null!!!!
System.out.println ("Hibernate dispose called"); // I never see this
try {
sf.close();
} catch ( Exception e) {
//if (getLogger().isErrorEnabled()) getLogger().error("Hibernate:"
+ e.getMessage());
System.out.println ("Hibernate:" + e.getMessage());
} finally {
sf = null;
}
this.disposed = true;
this.manager = null;
}
I thought cocoon.releaseComponent(factory) should call the dispose
method .....
Is there a method it will call if I provided one?
Thanks for any suggestions.
regards Jeremy
- Re: 'dispose' method of component Jeremy Quinn
- Re: 'dispose' method of component Giacomo Pati
- Re: 'dispose' method of component Jeremy Quinn
- Re: 'dispose' method of component Giacomo Pati
- Re: 'dispose' method of component Jeremy Quinn
