Author: michiel
Date: 2010-07-29 16:34:31 +0200 (Thu, 29 Jul 2010)
New Revision: 43017
Modified:
mmbase/trunk/bridge/src/main/java/org/mmbase/framework/ErrorRenderer.java
Log:
redid a small optional part with reflection to avoid runtime dependency on
mail.jar
Modified:
mmbase/trunk/bridge/src/main/java/org/mmbase/framework/ErrorRenderer.java
===================================================================
--- mmbase/trunk/bridge/src/main/java/org/mmbase/framework/ErrorRenderer.java
2010-07-29 14:30:21 UTC (rev 43016)
+++ mmbase/trunk/bridge/src/main/java/org/mmbase/framework/ErrorRenderer.java
2010-07-29 14:34:31 UTC (rev 43017)
@@ -14,8 +14,6 @@
import javax.servlet.http.*;
import javax.servlet.jsp.*;
import javax.servlet.*;
-import javax.mail.*;
-import javax.mail.internet.*;
import java.io.*;
import org.mmbase.bridge.NotFoundException;
import org.mmbase.util.functions.*;
@@ -238,18 +236,23 @@
if (status == 500) {
try {
Map<String, String> props =
org.mmbase.util.ApplicationContextReader.getProperties("mmbase_errorpage");
- if (props.get("to") != null) {
+ if (props.get("to") != null && props.get("to").length() >
0) {
javax.naming.Context initCtx = new
javax.naming.InitialContext();
javax.naming.Context envCtx =
(javax.naming.Context)initCtx.lookup("java:comp/env");
- Session mailSession = (Session)
envCtx.lookup("mail/Session");
- MimeMessage mail = new MimeMessage(mailSession);
- mail.addRecipients(Message.RecipientType.TO,
InternetAddress.parse(props.get("to")));
- mail.setSubject(ticket);
- mail.setText(logMsg.toString());
- Transport.send(mail);
+ Object mailSession = envCtx.lookup("mail/Session");
+
+ Class sessionClass =
Class.forName("javax.mail.Session");
+ Class recipientTypeClass =
Class.forName("javax.mail.Message$RecipientType");
+ Class messageClass =
Class.forName("javax.mail.internet.MimeMessage");
+ Object mail =
messageClass.getConstructor(sessionClass).newInstance(mailSession);
+ messageClass.getMethod("addRecipients",
recipientTypeClass, String.class).invoke(mail,
recipientTypeClass.getDeclaredField("TO").get(null), props.get("to"));
+ messageClass.getMethod("setSubject",
String.class).invoke(mail, ticket);
+ mail.getClass().getMethod("setText",
String.class).invoke(mail, logMsg.toString());
+
Class.forName("javax.mail.Transport").getMethod("send",
Class.forName("javax.mail.Message")).invoke(null, mail);
tee.append("\nmailed to (" + props + ")");
}
- } catch (Throwable nnfe) {
+
+ } catch (Exception nnfe) {
tee.append("\nnot mailed (" + nnfe + ")");
}
log.error("TICKET " + ticket + ":\n" + logMsg);
_______________________________________________
Cvs mailing list
[email protected]
http://lists.mmbase.org/mailman/listinfo/cvs