pgoldstein    2002/09/28 17:09:46

  Modified:    src/java/org/apache/james/transport/mailets
                        NotifyPostmaster.java NotifySender.java
  Log:
  This is a patch for bug #9669.  The NotifyPostmaster and NotifySender mailets 
unnecessarily parsed the headers of the mails being processed.  This led to exceptions 
that unnecessarily aborted the processing when the headers didn't contain valid data.  
The attached files are changed so that the raw headers are accessed directly.
  
  Revision  Changes    Path
  1.9       +15 -14    
jakarta-james/src/java/org/apache/james/transport/mailets/NotifyPostmaster.java
  
  Index: NotifyPostmaster.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-james/src/java/org/apache/james/transport/mailets/NotifyPostmaster.java,v
  retrieving revision 1.8
  retrieving revision 1.9
  diff -u -r1.8 -r1.9
  --- NotifyPostmaster.java     14 Sep 2002 06:22:37 -0000      1.8
  +++ NotifyPostmaster.java     29 Sep 2002 00:09:46 -0000      1.9
  @@ -140,27 +140,28 @@
           while (rcptTo.hasNext()) {
               out.println("           " + rcptTo.next());
           }
  -        Address[] rcpts = message.getFrom();
  -        if (rcpts != null) {
  +        String[] addresses = null;
  +        addresses = message.getHeader(RFC2822Headers.FROM);
  +        if (addresses != null) {
               out.print("  From: ");
  -            for (int i = 0; i < rcpts.length; i++) {
  -                out.print(rcpts[i] + " ");
  +            for (int i = 0; i < addresses.length; i++) {
  +                out.print(addresses[i] + " ");
               }
               out.println();
           }
  -        rcpts = message.getRecipients(Message.RecipientType.TO);
  -        if (rcpts != null) {
  +        addresses = message.getHeader(RFC2822Headers.TO);
  +        if (addresses != null) {
               out.print("  To: ");
  -            for (int i = 0; i < rcpts.length; i++) {
  -                out.print(rcpts[i] + " ");
  +            for (int i = 0; i < addresses.length; i++) {
  +                out.print(addresses[i] + " ");
               }
               out.println();
           }
  -        rcpts = message.getRecipients(Message.RecipientType.CC);
  -        if (rcpts != null) {
  +        addresses = message.getHeader(RFC2822Headers.CC);
  +        if (addresses != null) {
               out.print("  CC: ");
  -            for (int i = 0; i < rcpts.length; i++) {
  -                out.print(rcpts[i] + " ");
  +            for (int i = 0; i < addresses.length; i++) {
  +                out.print(addresses[i] + " ");
               }
               out.println();
           }
  @@ -204,14 +205,14 @@
           recipients.add(getMailetContext().getPostmaster());
   
           //Set additional headers
  -        if (reply.getHeader(RFC2822Headers.DATE)==null){
  +        if (reply.getHeader(RFC2822Headers.DATE)==null) {
               reply.setHeader(RFC2822Headers.DATE, rfc822DateFormat.format(new 
Date()));
           }
           String subject = message.getSubject();
           if (subject == null) {
               subject = "";
           }
  -        if (subject.indexOf("Re:") == 0){
  +        if (subject.indexOf("Re:") == 0) {
               reply.setSubject(subject);
           } else {
               reply.setSubject("Re:" + subject);
  
  
  
  1.10      +3 -2      
jakarta-james/src/java/org/apache/james/transport/mailets/NotifySender.java
  
  Index: NotifySender.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-james/src/java/org/apache/james/transport/mailets/NotifySender.java,v
  retrieving revision 1.9
  retrieving revision 1.10
  diff -u -r1.9 -r1.10
  --- NotifySender.java 14 Sep 2002 06:22:37 -0000      1.9
  +++ NotifySender.java 29 Sep 2002 00:09:46 -0000      1.10
  @@ -133,7 +133,8 @@
           if (message.getSentDate() != null) {
               out.println("  Sent date: " + message.getSentDate());
           }
  -        Address[] rcpts = message.getRecipients(Message.RecipientType.TO);
  +        String[] rcpts = null;
  +        rcpts = message.getHeader(RFC2822Headers.TO);
           if (rcpts != null) {
               out.print("  To: ");
               for (int i = 0; i < rcpts.length; i++) {
  @@ -141,7 +142,7 @@
               }
               out.println();
           }
  -        rcpts = message.getRecipients(Message.RecipientType.CC);
  +        rcpts = message.getHeader(RFC2822Headers.CC);
           if (rcpts != null) {
               out.print("  CC: ");
               for (int i = 0; i < rcpts.length; i++) {
  
  
  

--
To unsubscribe, e-mail:   <mailto:[EMAIL PROTECTED]>
For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>

Reply via email to