Update of /var/cvs/src/org/mmbase/module/core
In directory james.mmbase.org:/tmp/cvs-serv17231/src/org/mmbase/module/core

Modified Files:
      Tag: MMBase-1_8
        MMObjectBuilder.java MMBase.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: MMObjectBuilder.java
===================================================================
RCS file: /var/cvs/src/org/mmbase/module/core/MMObjectBuilder.java,v
retrieving revision 1.391.2.15
retrieving revision 1.391.2.16
diff -u -b -r1.391.2.15 -r1.391.2.16
--- MMObjectBuilder.java        11 Apr 2008 15:18:30 -0000      1.391.2.15
+++ MMObjectBuilder.java        12 Apr 2008 10:43:04 -0000      1.391.2.16
@@ -62,7 +62,7 @@
  * @author Rob van Maris
  * @author Michiel Meeuwissen
  * @author Ernst Bunders
- * @version $Id: MMObjectBuilder.java,v 1.391.2.15 2008/04/11 15:18:30 
nklasens Exp $
+ * @version $Id: MMObjectBuilder.java,v 1.391.2.16 2008/04/12 10:43:04 
nklasens Exp $
  */
 public class MMObjectBuilder extends MMTable implements NodeEventListener, 
RelationEventListener {
 
@@ -540,6 +540,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
@@ -3091,6 +3096,7 @@
             return true;
         }
     }
+
 }
 
 


Index: MMBase.java
===================================================================
RCS file: /var/cvs/src/org/mmbase/module/core/MMBase.java,v
retrieving revision 1.200.2.11
retrieving revision 1.200.2.12
diff -u -b -r1.200.2.11 -r1.200.2.12
--- MMBase.java 11 Apr 2008 08:40:46 -0000      1.200.2.11
+++ MMBase.java 12 Apr 2008 10:43:05 -0000      1.200.2.12
@@ -46,7 +46,7 @@
  * @author Pierre van Rooden
  * @author Johannes Verelst
  * @author Ernst Bunders
- * @version $Id: MMBase.java,v 1.200.2.11 2008/04/11 08:40:46 michiel Exp $
+ * @version $Id: MMBase.java,v 1.200.2.12 2008/04/12 10:43:05 nklasens Exp $
  */
 public class MMBase extends ProcessorModule {
 
@@ -423,26 +423,45 @@
 
     }
 
-    // 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();
+            mmobjs = null;
+        }
+
         oAlias = null;
         insRel = null;
         typeRel = null;
-        if (mmobjs != null) mmobjs.clear();
-        mmobjs = null;
+        relDef = null;
+        typeDef = null;
+
+        clusterBuilder = null;
+        rootBuilder = null;
+        
         cloudModel = null;
+
         storageManagerFactory = null;
-        rootBuilder = null;
-        mmbaseCop = null;
-        clusterBuilder = null;
-        org.mmbase.util.ThreadPools.shutdown();
-        org.mmbase.core.event.EventManager.getInstance().shutdown();
+        
+        // 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;
     }
 
_______________________________________________
Cvs mailing list
Cvs@lists.mmbase.org
http://lists.mmbase.org/mailman/listinfo/cvs

Reply via email to