SMTP transport can receive more than one message at same time -------------------------------------------------------------
Key: WSCOMMONS-454 URL: https://issues.apache.org/jira/browse/WSCOMMONS-454 Project: WS-Commons Issue Type: Bug Reporter: Amila Chinthaka Suriarachchi Priority: Blocker hi all, recently I started some RM tests with the commons mail transport. Mail transport listener runs in a timer task. TimerTask timerTask = new TimerTask() { @Override public void run() { workerPool.execute(new Runnable() { public void run() { if (state == BaseConstants.PAUSED) { if (log.isDebugEnabled()) { log.debug("Transport " + getTransportName() + " poll trigger : Transport is currently paused.."); } } else { poll(entry); } synchronized (entry) { if (!entry.canceled) { schedulePoll(entry, pollInterval); } } } }); } }; entry.timerTask = timerTask; timer.schedule(timerTask, pollInterval) As I saw timer task only re activates only after earlier invocation finish. i.e after completing the message. In RM inorder delivery case lets say we receive message number 2 before 1. then the initial thread does not return and it can not receive the message number 1. I tested this this the following sample. TimerTask timerTask = new TimerTask(){ public void run() { System.out.println("In the timer task"); try { Thread.sleep(60000); } catch (InterruptedException e) { e.printStackTrace(); //To change body of catch statement use File | Settings | File Templates. } System.out.println("Going out of timer task"); } }; Timer timer = new Timer("Testtimer"); timer.schedule(timerTask,0, 1000); And I saw timer task does not run until it finishes the first task. Can we start a new thread to each new message? That is how earlier SMTP transport had done that. -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.