spring - Managed beans with custom ViewScope -
i'm doing web application using spring 3.1.0.release, jsf 2.x, jpa 2 hibernate provider. use prettyfaces 3.3.2 friendly url. application run on tomcat 6.35 .
i wanted use jsf viewscope decided follow implementation found on web : http://comdynamics.net/blog/109/spring3-jsf2-view-scope/
public class viewscope implements scope { private static final logger logger = loggerfactory.getlogger(viewscope.class); @override public object get(string name, objectfactory objectfactory) { final map<string, object> viewmap = facescontext.getcurrentinstance().getviewroot().getviewmap(); object instance = viewmap.get(name); if (instance == null) { instance = objectfactory.getobject(); viewmap.put(name, instance); } return instance; } @override public object remove(string name) { logger.debug("viewscope::remove {}", name); return facescontext.getcurrentinstance().getviewroot().getviewmap().remove(name); } @override public string getconversationid() { return null; } @override public void registerdestructioncallback(string name, runnable callback) { //not supported } @override public object resolvecontextualobject(string key) { return null; } } i notice @predestroy not called on them show question @predestroy never called on @viewscoped.
does mean managed beans viewscope never destruct ? conduct memory leak. should use scope so?
it's happen custom viewscope on spring or on mojarra ?
thanks.
problem incorrect implementaiton of view scope. creates spring bean objectfactory.getobject(); never destroy it.
to solve - check correct implementation support registerdestructioncallback.
bwt, current mojjara implementation not call @predestory on bean too. free bean instance @ least.
Comments
Post a Comment