Stephen,
AvalonMailRepository and JDBCMailRepository differ in at least one
significant interface that I have noticed:
AvalonMailRepository.retrieve(String) returns null when there is no message
in the spool (as documented); JDBCMailRepository.retrieve(String) throws an
exception. There ought to be null handling after calling
MailRepository.retrieve(). I'm submitting a patch for that issue.
You might want to modify your debugging log to include:
getLogger().info(--- WHATEVER MESSAGE YOU WANT ---
+ " for "
+ Thread.currentThread().getName()
+ " @ "
+ new java.util.Date(System.currentTimeMillis()));
That would give you better thread level information.
I expect that we'll see that it was the other worker threads that saw the
message in the repository. The question is which one locked the message,
and which one generated the exception.
By the way, I notice that in AvalonMailRepository.lock(String), the
notifyAll() is active. In JDBCMailRepository.lock(String), it is commented
out. I don't believe that we need to notify other threads when we acquire a
lock. While you're at it, you might try commenting that out, but you'll
have a better idea when you've got thread related information in the log.
-- Noel
--
To unsubscribe, e-mail: <mailto:[EMAIL PROTECTED]>
For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>