Update of /var/cvs/src/org/mmbase/module/core In directory james.mmbase.org:/tmp/cvs-serv17267/src/org/mmbase/module/core
Modified Files: MMBase.java MMObjectBuilder.java Log Message: MMB-1401 Serialization can corrupt MMBase database Shutdown MMEvents probe and builder See also: http://cvs.mmbase.org/viewcvs/src/org/mmbase/module/core See also: http://www.mmbase.org/jira/browse/MMB-1401 Index: MMBase.java =================================================================== RCS file: /var/cvs/src/org/mmbase/module/core/MMBase.java,v retrieving revision 1.239 retrieving revision 1.240 diff -u -b -r1.239 -r1.240 --- MMBase.java 21 Mar 2008 14:36:27 -0000 1.239 +++ MMBase.java 12 Apr 2008 10:43:14 -0000 1.240 @@ -43,7 +43,7 @@ * @author Pierre van Rooden * @author Johannes Verelst * @author Ernst Bunders - * @version $Id: MMBase.java,v 1.239 2008/03/21 14:36:27 nklasens Exp $ + * @version $Id: MMBase.java,v 1.240 2008/04/12 10:43:14 nklasens Exp $ */ public class MMBase extends ProcessorModule { @@ -452,25 +452,43 @@ //} } - // javadoc inherited + + /** + * @see org.mmbase.module.Module#shutdown() + */ public void shutdown() { mmbaseState = STATE_SHUT_DOWN; - // there all over the place static references to mmbasroot are maintained, which I cannot - // change presently. so let's clean up mmbaseroot itself as well as possible... - typeDef = null; - relDef = null; + //shutdown in the reverse order as init does + + org.mmbase.core.event.EventManager.getInstance().shutdown(); + + org.mmbase.util.ThreadPools.shutdown(); + + mmbaseCop = null; + + if (mmobjs != null) { + for (Iterator mmbobjecIter = mmobjs.values().iterator(); mmbobjecIter.hasNext();) { + MMObjectBuilder builder = (MMObjectBuilder) mmbobjecIter.next(); + builder.shutdown(); + } + mmobjs.clear(); + } + oAlias = null; insRel = null; typeRel = null; - mmobjs.clear(); - storageManagerFactory = null; - rootBuilder = null; - mmbaseCop = null; + relDef = null; + typeDef = null; + clusterBuilder = null; + rootBuilder = null; + + storageManagerFactory = null; + + // there all over the place static references to mmbasroot are maintained, which I cannot + // change presently. so let's clean up mmbaseroot itself as well as possible... mmbaseroot = null; - org.mmbase.util.ThreadPools.shutdown(); - org.mmbase.core.event.EventManager.getInstance().shutdown(); } /** Index: MMObjectBuilder.java =================================================================== RCS file: /var/cvs/src/org/mmbase/module/core/MMObjectBuilder.java,v retrieving revision 1.423 retrieving revision 1.424 diff -u -b -r1.423 -r1.424 --- MMObjectBuilder.java 11 Apr 2008 15:13:37 -0000 1.423 +++ MMObjectBuilder.java 12 Apr 2008 10:43:14 -0000 1.424 @@ -61,7 +61,7 @@ * @author Rob van Maris * @author Michiel Meeuwissen * @author Ernst Bunders - * @version $Id: MMObjectBuilder.java,v 1.423 2008/04/11 15:13:37 nklasens Exp $ + * @version $Id: MMObjectBuilder.java,v 1.424 2008/04/12 10:43:14 nklasens Exp $ */ public class MMObjectBuilder extends MMTable implements NodeEventListener, RelationEventListener { @@ -498,6 +498,11 @@ return true; } + /** clean all acquired resources, because system is shutting down */ + public void shutdown() { + // on default, nothing needs to be done. + } + /** * Returns the builder object number, which also functions as the objecttype. * This is the same value as the value of the 'otype' field of objects created by this builder _______________________________________________ Cvs mailing list Cvs@lists.mmbase.org http://lists.mmbase.org/mailman/listinfo/cvs