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
[email protected]
http://lists.mmbase.org/mailman/listinfo/cvs