Hi Robbie,

On Thu, Jun 11, 2015 at 6:32 PM, Robbie Gemmell
<[email protected]> wrote:
> Since they are distinct clients and will likely exist concurrently for
> some time (since they use different AMQP protocol versions, and there
> is an installed user base of the earlier client), I would suggest
> rasing JIRAs against both (using the QPID issue key for qpid-client,
> and QPIDJMS key for qpid-jms-client).

Sorry my bad, forget about new client, I just replaced maven
dependency to qpid-jms-client but it was still using old client which
is transitively resolved. If I actually use new client API such as
JmsConnectionFactory then exec-maven-plugin didn't puke that warning.
So no problem on new client.

> I'm not sure what you are are seeing keep running with the new client,
> but taking a quick peek at the exec plugin docs suggests you might be
> able to connfigure it to avoid the issue with the older client, e.g
> implementing an alternative kill strategy to avoid things running on
> rather than trying to wait for a Thread that wont keep the JVM
> running. It seems to be a long-known issue with regards to Timer, the
> docs even links to a JDK bug filing for it (that wont be fixed since
> it is a breaking change).

Oh did you find something suggesting kill strategy would be pluggable?
I looked around here but couldn't find it. Could you share a pointer?
http://www.mojohaus.org/exec-maven-plugin/

When we were using older version, it was not a problem since killAfter
was working well, but it has been disabled recently. pity...

Anyway, thanks for the reply!

Tomo

> Robbie
>
> On 11 June 2015 at 10:15, Tomohisa Igarashi <[email protected]> wrote:
>> Hi Rob,
>>
>> Thank you for the immediate and clear response!
>>
>> I agree it doesn't cause a functional problem, just a cleanup issue on
>> client shutdown.
>> I just found qpid-jms-client and it looks like a successor of the one
>> in qpid-client. Are you OK with filing a JIRA for this issue on
>> QPIDJMS?
>> (I also tried with qpid-jms-client 0.2.0 and same result)
>>
>> Thanks,
>> Tomo
>>
>>
>> --
>> IGARASHI Tomohisa    mailto:[email protected]
>>
>>
>> On Thu, Jun 11, 2015 at 4:48 PM, Rob Godfrey <[email protected]> wrote:
>>> Hi Tomo,
>>>
>>> looking at the code (AMQSession_0_10.java), it seems that the
>>> ack-flusher is created here (line 75):
>>>
>>> private static Timer timer = new Timer("ack-flusher", true);
>>>
>>> That is a single (java.util.)Timer is shared across all sessions on
>>> *all* connections - the timer is not connection specific.  Since it is
>>> shared by all connections, it is not cancel()led when a connection is
>>> close()ed.  The Timer is created with isDaemon being true, so the fact
>>> that the thread is never stopped wouldn't normally be an issue.
>>>
>>> It would need a code change on our side to change this behaviour.
>>>
>>> -- Rob
>>>
>>> On 11 June 2015 at 09:30, Tomohisa Igarashi <[email protected]> wrote:
>>>> Hi,
>>>>
>>>> When I run Qpid Java client from exec-maven-plugin, I get this warning
>>>> complaining about remaining ack-flusher thread:
>>>>
>>>> ===================
>>>> [WARNING] thread
>>>> Thread[ack-flusher,5,org.switchyard.quickstarts.camel.amqp.binding.QpidClient]
>>>> was interrupted but is still alive after waiting at least 15000msecs
>>>> [WARNING] thread
>>>> Thread[ack-flusher,5,org.switchyard.quickstarts.camel.amqp.binding.QpidClient]
>>>> will linger despite being asked to die via interruption
>>>> [WARNING] NOTE: 1 thread(s) did not finish despite being asked to  via
>>>> interruption. This is not a problem with exec:java, it is a problem
>>>> with the running code. Although not serious, it should be remedied.
>>>> [WARNING] Couldn't destroy threadgroup
>>>> org.codehaus.mojo.exec.ExecJavaMojo$IsolatedThreadGroup[name=org.switchyard.quickstarts.camel.amqp.binding.QpidClient,maxpri=10]
>>>> java.lang.IllegalThreadStateException
>>>> ===================
>>>>
>>>> So ack-flusher thread is not stopped even after connection is closed.
>>>> Is there a way to stop it safely?
>>>>
>>>> Whole client code is here:
>>>> https://github.com/igarashitm/switchyard/blob/master/quickstarts/camel-amqp-binding/src/test/java/org/switchyard/quickstarts/camel/amqp/binding/QpidClient.java
>>>>
>>>> I tried adding connection.close() on this code with qpid-client 0.32,
>>>> but I got same warning.
>>>>
>>>> Thanks,
>>>> Tomo
>>>>
>>>> --
>>>> IGARASHI Tomohisa    mailto:[email protected]
>>>>
>>>> ---------------------------------------------------------------------
>>>> To unsubscribe, e-mail: [email protected]
>>>> For additional commands, e-mail: [email protected]
>>>>
>>>
>>> ---------------------------------------------------------------------
>>> To unsubscribe, e-mail: [email protected]
>>> For additional commands, e-mail: [email protected]
>>>
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: [email protected]
>> For additional commands, e-mail: [email protected]
>>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [email protected]
> For additional commands, e-mail: [email protected]
>

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to