Hello sebb, I have a doubt, 2 questions: 1) For me there is one instance of ReceiveSubscriber per thread and no concurrent access 2)Even if there was , this is more of a question as I have a doubt, if the access is sequential, is volatile still needed ?
Thanks On Sat, Sep 6, 2014 at 2:32 PM, sebb <[email protected]> wrote: > On 6 September 2014 10:50, <[email protected]> wrote: > > Author: pmouawad > > Date: Sat Sep 6 09:50:18 2014 > > New Revision: 1622838 > > > > URL: http://svn.apache.org/r1622838 > > Log: > > Bug 56761 - JMeter tries to stop already stopped JMS connection and > displays "The connection is closed" > > Bugzilla Id: 56761 > > > > Modified: > > > > jmeter/trunk/src/protocol/jms/org/apache/jmeter/protocol/jms/client/ReceiveSubscriber.java > > jmeter/trunk/xdocs/changes.xml > > > > Modified: > jmeter/trunk/src/protocol/jms/org/apache/jmeter/protocol/jms/client/ReceiveSubscriber.java > > URL: > http://svn.apache.org/viewvc/jmeter/trunk/src/protocol/jms/org/apache/jmeter/protocol/jms/client/ReceiveSubscriber.java?rev=1622838&r1=1622837&r2=1622838&view=diff > > > ============================================================================== > > --- > jmeter/trunk/src/protocol/jms/org/apache/jmeter/protocol/jms/client/ReceiveSubscriber.java > (original) > > +++ > jmeter/trunk/src/protocol/jms/org/apache/jmeter/protocol/jms/client/ReceiveSubscriber.java > Sat Sep 6 09:50:18 2014 > > @@ -62,6 +62,8 @@ public class ReceiveSubscriber implement > > */ > > private final LinkedBlockingQueue<Message> queue; > > > > + private boolean connectionStarted; > > This needs to be volatile, as it is accessed from multiple threads. > > > + > > /** > > * Constructor takes the necessary JNDI related parameters to > create a > > * connection and prepare to begin receiving messages. > > @@ -222,6 +224,7 @@ public class ReceiveSubscriber implement > > public void start() throws JMSException { > > log.debug("start()"); > > connection.start(); > > + connectionStarted=true; > > } > > > > /** > > @@ -231,6 +234,7 @@ public class ReceiveSubscriber implement > > public void stop() throws JMSException { > > log.debug("stop()"); > > connection.stop(); > > + connectionStarted=false; > > } > > > > /** > > @@ -271,11 +275,12 @@ public class ReceiveSubscriber implement > > public void close() { // called from threadFinished() thread > > log.debug("close()"); > > try { > > - if(connection != null) { > > + if(connection != null && connectionStarted) { > > connection.stop(); > > + connectionStarted = false; > > } > > } catch (JMSException e) { > > - log.error(e.getMessage()); > > + log.warn("Stopping connection throws exception, > message:"+e.getMessage()); > > } > > Utils.close(subscriber, log); > > Utils.close(session, log); > > > > Modified: jmeter/trunk/xdocs/changes.xml > > URL: > http://svn.apache.org/viewvc/jmeter/trunk/xdocs/changes.xml?rev=1622838&r1=1622837&r2=1622838&view=diff > > > ============================================================================== > > --- jmeter/trunk/xdocs/changes.xml (original) > > +++ jmeter/trunk/xdocs/changes.xml Sat Sep 6 09:50:18 2014 > > @@ -154,6 +154,7 @@ jmeter.gui.action.LookAndFeelCommand: Us > > <li><bugzilla>46932</bugzilla> - Alias given in select statement is not > used as column header in response data for a JDBC request.Based on report > and analysis of Nicola Ambrosetti</li> > > <li><bugzilla>56539</bugzilla> - Mail reader sampler: When Number of > messages to retrieve is superior to 1, Number of samples should only show 1 > not the number of messages retrieved</li> > > <li><bugzilla>56809</bugzilla> - JMSSampler closes InitialContext too > early. Contributed by Bradford Hovinen (hovinen at gmail.com)</li> > > +<li><bugzilla>56761</bugzilla> - JMeter tries to stop already stopped > JMS connection and displays "The connection is closed"</li> > > </ul> > > > > <h3>Controllers</h3> > > @@ -233,8 +234,8 @@ jmeter.gui.action.LookAndFeelCommand: Us > > <ul> > > <li><bugzilla>56691</bugzilla> - Synchronizing Timer : Add timeout on > waiting</li> > > <li><bugzilla>56701</bugzilla> - HTTP Authorization Manager/ Kerberos > Authentication: add port to SPN when server port is neither 80 nor 443. > Based on patches from Dan Haughey (dan.haughey at swinton.co.uk) and > Felix Schumacher (felix.schumacher at internetallee.de)</li> > > -<li><bugzilla>56841</bugzilla> - New configuration element: DNS Cache > Manager to improve the testing of CDN. Based on patch from Dzmitry Kashlach > (dzmitrykashlach at gmail.com)</li> > > -<li><bugzilla>52061</bugzilla> - Allow access to Request Headers in > Regex Extractor. Based on patch from Dzmitry Kashlach (dzmitrykashlach at > gmail.com)</li> > > +<li><bugzilla>56841</bugzilla> - New configuration element: DNS Cache > Manager to improve the testing of CDN. Based on patch from Dzmitry Kashlach > (dzmitrykashlach at gmail.com), donated by BlazeMeter Ltd.</li> > > +<li><bugzilla>52061</bugzilla> - Allow access to Request Headers in > Regex Extractor. Based on patch from Dzmitry Kashlach (dzmitrykashlach at > gmail.com), donated by BlazeMeter Ltd.</li> > > </ul> > > > > <h3>Functions</h3> > > @@ -274,13 +275,14 @@ jmeter.gui.action.LookAndFeelCommand: Us > > <li>James Liang (jliang at andera.com)</li> > > <li>Emmanuel Bourg (ebourg at apache.org)</li> > > <li>Nicola Ambrosetti (ambrosetti.nicola at gmail.com)</li> > > -<li><a href="http://ubikloadpack.com">Ubik Load Pack support</a></li> > > +<li><a href="http://ubikloadpack.com">Ubik Load Pack</a></li> > > <li>Mikhail Epikhin (epihin-m at yandex.ru)</li> > > <li>Dan Haughey (dan.haughey at swinton.co.uk)</li> > > <li>Felix Schumacher (felix.schumacher at internetallee.de)</li> > > <li>Dzmitry Kashlach (dzmitrykashlach at gmail.com)</li> > > <li>Andrey Pohilko (apc4 at ya.ru)</li> > > <li>Bradford Hovinen (hovinen at gmail.com)</li> > > +<li><a href="http://blazemeter.com">BlazeMeter Ltd.</a></li> > > </ul> > > > > <br/> > > > > > -- Cordialement. Philippe Mouawad.
