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

Modified Files:
        ApplicationInstaller.java 
Log Message:
fix for 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.16
retrieving revision 1.17
diff -u -b -r1.16 -r1.17
--- ApplicationInstaller.java   3 Sep 2008 23:18:01 -0000       1.16
+++ ApplicationInstaller.java   1 Oct 2008 20:07:52 -0000       1.17
@@ -32,7 +32,7 @@
  *
  * @author Nico Klasens
  * @since MMBase-1.8
- * @version $Id: ApplicationInstaller.java,v 1.16 2008/09/03 23:18:01 michiel 
Exp $
+ * @version $Id: ApplicationInstaller.java,v 1.17 2008/10/01 20:07:52 michiel 
Exp $
  */
 class ApplicationInstaller {
 
@@ -773,7 +773,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);
@@ -793,6 +794,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