The refactoring you did has completely broken the architecture:
* JmsListenerFactory is now used as a singleton that is initialized with the
dispatcher that created it
* when a new dispatcher is created, in the constructor you have:
if (enableJMS) {
this.jlf = JmsListenerFactory.getInstance(this);
}
but this call returns the singleton instance initialized with the first
dispatcher.
Jacopo
On Jun 22, 2012, at 8:41 AM, Jacopo Cappellato wrote:
> Jacques,
>
> could you please help me to understand all the changes you did around JMS? I
> see some issues (e.g. the value of ServiceDispatcher.enableJMS is ignored)
> and reviewing the history of commits I have seen that you have committed
> changes, then fixed them (partially reverting?) but all in all I have a lot
> of confusion and you can probably help in summarizing what was done.
>
> For example the commit:
>
> =================================
> Author: jleroux
> Date: Fri Jun 3 19:05:07 2011
> New Revision: 1131144
>
> URL: http://svn.apache.org/viewvc?rev=1131144&view=rev
> Log:
> Closes "JmsTopicListener started twice when distributed-cache-clear is
> active" reported by Martin Kreidenweis at
> https://issues.apache.org/jira/browse/OFBIZ-4296
> Simply avoid to start a JMS Listener thread from Job Manager when DCC is on.
> Then set it back to previous value.
> =================================
>
> seems to have caused issues that you tried to fix with:
>
> =================================
> Author: jleroux
> Date: Fri Sep 23 19:22:40 2011
> New Revision: 1174964
>
> URL: http://svn.apache.org/viewvc?rev=1174964&view=rev
> Log:
> A patch from Dimitri Unruh "With no DistributionCacheClear JMS is not working
> anymore." https://issues.apache.org/jira/browse/OFBIZ-4296
> Tested in both case (with and w/out dcc), works fine AFAICT
> =================================
>
> I am really confused.
>
> Jacopo