Ivan,

please raise a JIRA for the issues. I will have a look at this then.

Regards
Lars


Am Mittwoch 10 September 2008 11:50:32 schrieb ivan:
> ivan пишет:
> >   Hi team!
> >
> > Some month ago I was interesting in servicemix-mail component and I
> > began to use servicemix 3.3-snapshot in SM 3.2.1 version.
> >
> > For now I have 2 notes regarding implementation of component:
> >
> > 1. class MailSenderEndpoint :
> >    method processInOut and method processInOnly:
> >
> >
> >   snippet from code:
> >
> >  ...
> >  Transport.send(msg);
> >  ...
> >
> >
> > Found issue:
> >   it is not possible to use SMTPS (for example, gmail)
> >
> > connection:
> > smtps://[EMAIL PROTECTED]
> >
> >
> > Steps to resolve:
> >
> >  replace snippet from code with
> >
> >  ...
> > Transport transport = session.getTransport();
> >
> >                 transport.connect(
> >                         MailSenderEndpoint.this.config.getHost(),
> >                         MailSenderEndpoint.this.config.getPort(),
> >                         MailSenderEndpoint.this.config.getUsername(),
> >                         MailSenderEndpoint.this.config.getPassword()
> >                         );
> >                 transport.sendMessage(msg, msg.getAllRecipients());
> >                 transport.close();
> > ...
> >
> >
> >
> > 2. class AbstractMailMarchaller is not thread-safe:
>
> It means if I will send 2 excganges to some SU based on servicemix-mail
> component, after first exchange is processed, it is executed cleanUp
> method of AbstractMarshaller, and while executing second exchange we get
> "FileNotFoundException".
>
> Schema:
>
>
> 1 Exchange:  -> AR   SA   S   C
>
>
>
> 2 Exchange:   ---->  AR   SA     S    C
>
>
> AR - AcceptionRequest
> SA - SavingAttachments
> S - Sending e-mail
> C - CleanUp.
>
> Troubles is in point 2Exchange.S  (after 1.Exchange.C)
>
> > private List<File> temporaryFiles = new ArrayList<File>();
> >
> >
> > I would to replace it with:
> >
> > private Map< String, List<File> > temporaryFilesMap =
> > Collections.synchronizedMap(new HashMap<String, List<File> >());
> >
> >
> > and:
> >
> > protected final void addTemporaryResource(String id, File tmpFile) {
> >         if (!this.temporaryFilesMap.containsKey(id))
> >             this.temporaryFilesMap.put(id, new ArrayList<File>());
> >         this.temporaryFilesMap.get(id).add(tmpFile);
> >     }
> >
> > and:
> >
> >     public final void cleanUpResources(String id) {
> >         List<File> list = this.temporaryFilesMap.get(id);
> >         if (list!=null){
> >             for (File f : list) {
> >                 f.delete();
> >             }
> >             list.clear();
> >             this.temporaryFilesMap.remove(id);
> >         }
> >     }
> >
> >
> > And do necessary changes in code from other classes (also it is needed
>
> For id we can use exchange.getExchangeId().
>
> > to update tests to avoid NullPointerException, I mean following:
> >  replace InOnly exchange = new InOnlyImpl() with  InOnly exchange = new
> > InOnlyImpl("id"))
> >
> >
> > Can I create JIRA-tasks for this 2 issues?
> >
> >   Ivan Pryvalov.

Reply via email to