Author: michiel Date: 2010-07-29 16:30:21 +0200 (Thu, 29 Jul 2010) New Revision: 43016
Modified: mmbase/branches/MMBase-1_9/core/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/branches/MMBase-1_9/core/src/main/java/org/mmbase/framework/ErrorRenderer.java =================================================================== --- mmbase/branches/MMBase-1_9/core/src/main/java/org/mmbase/framework/ErrorRenderer.java 2010-07-29 13:50:02 UTC (rev 43015) +++ mmbase/branches/MMBase-1_9/core/src/main/java/org/mmbase/framework/ErrorRenderer.java 2010-07-29 14:30:21 UTC (rev 43016) @@ -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.*; @@ -241,18 +239,22 @@ 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 Cvs@lists.mmbase.org http://lists.mmbase.org/mailman/listinfo/cvs