--- [EMAIL PROTECTED] wrote: > > > the only notify is at the end of store() but > there is no > > notify at the > > > unlock() > > > > store() would be called elsewhere in the code to > put it into > > the next processor, and processor.service() > doesn't return > > until the processor has finished with the message. > > Ok, I found the call to store() :-) > It is in the LinearProcessor: LinearProcessor will > call spool.store() if the > mail.state is changed. > It could be that the notify called by that store > doesn't work because the > mail is still locked when it happens, I will > investigate on this.
This relates to the missed-notifies concurrent anti-pattern (usually leads to liveliness problems, which is usually avoided by the notifyAll kludge). Which is why I recommended using something a bit more reliable like a Barrier or a SyncChannel from concurrent.jar some time ago. You can also synchronize a bunch of parties not just two (pub-sub). Cheers, Gabor > > [...] > > If you don't call store, you won't persist the > change in > > state, which would have an impact if the server > were restarted. > > If you have a single linear processor with 100 > mailet then the state is only > changed at the end of the processor and you restart > james it will restart > the processing from the first matcher/mailets. If > you have 10 processors > with 10 mailets and they are called in sequence then > currently james store > the messageState at each processor change. There is > more granularity in the > message state but this is not atomic anyway. > > My idea is to have a single spoolThread to bring an > email from the first > processor to the last one as if it were a single > processor. > > Stefano > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: > [EMAIL PROTECTED] > For additional commands, e-mail: > [EMAIL PROTECTED] > > Gabor Kincses Running Mandrake Linux 10.0 __________________________________________________ Do You Yahoo!? Tired of spam? Yahoo! Mail has the best spam protection around http://mail.yahoo.com --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]