Author: andre
Date: 2010-04-19 12:54:11 +0200 (Mon, 19 Apr 2010)
New Revision: 41948

Modified:
   
mmbase/branches/MMBase-1_9/applications/crontab/src/main/java/org/mmbase/applications/crontab/MemoryWarner.java
Log:
added an email address check to chech upon the contructed address: on some 
systems when not a valid address its message won't be mailed 


Modified: 
mmbase/branches/MMBase-1_9/applications/crontab/src/main/java/org/mmbase/applications/crontab/MemoryWarner.java
===================================================================
--- 
mmbase/branches/MMBase-1_9/applications/crontab/src/main/java/org/mmbase/applications/crontab/MemoryWarner.java
     2010-04-19 09:55:28 UTC (rev 41947)
+++ 
mmbase/branches/MMBase-1_9/applications/crontab/src/main/java/org/mmbase/applications/crontab/MemoryWarner.java
     2010-04-19 10:54:11 UTC (rev 41948)
@@ -12,6 +12,7 @@
 import org.mmbase.util.logging.*;
 import java.text.NumberFormat;
 import java.util.Locale;
+import java.util.regex.Pattern;
 
 /**
  * Performs Runtime.gc(), and if afterwards the used memory is above a certain 
fraction of the
@@ -51,7 +52,12 @@
                 if (cloud.hasNodeManager("email")) {
                     NodeManager email = cloud.getNodeManager("email");
                     Node message = email.createNode();
-                    message.setValue("from", "memorywarner@" + 
java.net.InetAddress.getLocalHost().getHostName());
+                    String from = "memorywarner@" + 
java.net.InetAddress.getLocalHost().getHostName();
+                    Pattern p = 
Pattern.compile("(?i)\\A[A-Z0-9_\\-\\+\\&\\*\\#]+([\\.-]?[A-Z0-9_\\-\\+\\&\\*\\#])*@([A-Z0-9_-]{2,}[\\.]{1})+([A-Z]{2,})\\z");
+                    if (! p.matcher(from).matches()) {  // email not valid, 
use 'to' address
+                        from = config[1];
+                    }
+                    message.setValue("from", from);
                     message.setValue("to", config[1]);
                     message.setValue("subject", "Out of memory warning: more 
than " + limitPerc + " in use, for " +
                                      
org.mmbase.module.core.MMBaseContext.getHtmlRootUrlPath() + "@" +
@@ -62,10 +68,12 @@
                     Parameters params = mail.createParameters();
                     params.set("type", "oneshot");
                     mail.getFunctionValue(params);
+                    log.info("Used memory over " + limitPerc + " , mailed: " + 
config[1] + " (from: " + from + ")");
                 } else {
                     log.warn("No mail builder installed");
                     // could introduce depedency on java-mail here.
                 }
+                
             } else {
                 log.info("Memory use " + usePerc + " < " + limitPerc);
             }

_______________________________________________
Cvs mailing list
[email protected]
http://lists.mmbase.org/mailman/listinfo/cvs

Reply via email to