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

Modified Files:
      Tag: MMBase-1_8
        ApplicationInstaller.java 
Log Message:
MMB-1727


See also: http://cvs.mmbase.org/viewcvs/src/org/mmbase/module/tools
See also: http://www.mmbase.org/jira/browse/MMB-1727


Index: ApplicationInstaller.java
===================================================================
RCS file: /var/cvs/src/org/mmbase/module/tools/ApplicationInstaller.java,v
retrieving revision 1.8.2.3
retrieving revision 1.8.2.4
diff -u -b -r1.8.2.3 -r1.8.2.4
--- ApplicationInstaller.java   2 Oct 2007 12:15:34 -0000       1.8.2.3
+++ ApplicationInstaller.java   1 Oct 2008 20:19:25 -0000       1.8.2.4
@@ -31,7 +31,7 @@
  *
  * @author Nico Klasens
  * @since MMBase-1.8
- * @version $Id: ApplicationInstaller.java,v 1.8.2.3 2007/10/02 12:15:34 
michiel Exp $
+ * @version $Id: ApplicationInstaller.java,v 1.8.2.4 2008/10/01 20:19:25 
michiel Exp $
  */
 public class ApplicationInstaller {
 
@@ -79,8 +79,8 @@
         }
 
         ApplicationReader reader = getApplicationReader(applicationName);
-        Versions ver = (Versions)mmb.getMMObject("versions");
         if (reader != null) {
+            Versions ver = (Versions)mmb.getMMObject("versions");
             // test autodeploy
             // test autodeploy
             if (autoDeploy) {
@@ -191,7 +191,7 @@
                 }
             }
         } else {
-            result.error("Install error: can't find xml file: applications/" + 
applicationName + ".xml");
+            result.error("Install error: can't find xml resource: 
applications/" + applicationName + ".xml");
         }
         return result.isSuccess();
     }
@@ -241,6 +241,7 @@
                     // XXX To do : we may want to load the node and 
check/change the fields
                     log.debug("node allready installed : " + exportnumber);
                 } else {
+                    try {
                     newNode.setValue("number", -1);
                     int localnumber = doKeyMergeNode(syncbul, newNode, 
exportsource, result);
                     if (localnumber != -1) { // this node was not yet imported 
earlier
@@ -250,6 +251,9 @@
                         }
                     }
                     NodeCache.getCache().remove(new Integer(localnumber));
+                    } catch (Exception e) {
+                        log.error(e.getMessage(), e);
+                    }
                 }
                 n.remove();
             }
@@ -782,7 +786,8 @@
 
         RelDef reldef = mmb.getRelDef();
         if (reldef != null) {
-            if (reldef.getNumberByName(sname + "/" + dname) == -1) {
+            int rnumber = reldef.getNumberByName(sname );
+            if (rnumber == -1) {
                 MMObjectNode node = reldef.getNewNode("system");
                 node.setValue("sname", sname);
                 node.setValue("dname", dname);
@@ -802,6 +807,18 @@
                 } else {
                     return result.error("RelDef (" + sname + "," + dname + ") 
could not be installed");
                 }
+            } else {
+                MMObjectNode node = reldef.getNode(rnumber);
+                String foundDname = node.getStringValue("dname");
+                int foundBuilder = node.getIntValue("builder");
+                if (! foundDname.equals(dname)) {
+                    // MMB-1727
+                    log.warn("Found already an reldef with this sname ('" + 
sname + "') but with different dname ('" + foundDname + "'). So not using " + 
sname + "/" + dname + " but " + sname + "/" + foundDname + ".");
+                }
+                if (foundBuilder != builder) {
+                    result.error("Role '" + sname + "' already defined with 
different builder (" + foundBuilder + "), while this application required it to 
be " + builder);
+                    return false;
+                }
             }
         } else {
             return result.error("Can't get reldef builder");
_______________________________________________
Cvs mailing list
[email protected]
http://lists.mmbase.org/mailman/listinfo/cvs

Reply via email to