jmeter-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Philippe Mouawad <philippe.moua...@gmail.com>
Subject Re: svn commit: r1622838 - in /jmeter/trunk: src/protocol/jms/org/apache/jmeter/protocol/jms/client/ReceiveSubscriber.java xdocs/changes.xml
Date Sat, 06 Sep 2014 14:25:17 GMT
On Sat, Sep 6, 2014 at 4:07 PM, sebb <sebbaz@gmail.com> wrote:

> On 6 September 2014 14:30, Philippe Mouawad <philippe.mouawad@gmail.com>
> wrote:
> > Hello sebb,
> > I have a doubt, 2 questions:
> > 1) For me there is one instance of ReceiveSubscriber per thread and no
> > concurrent access
>
> As the comment says:
>
> public void close() { // called from threadFinished() thread
>

Agree but it is still the same JMeterThread that called sample, so no
concurrent threads accessing for me.
I debugged it and couldn't find.

>
> > 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 ?
>
> The Java memory model allows threads to cache variables.
>
> This is not about concurrency, it's about safe publication of data.
>
> Volatile is needed here to ensure memory caches are properly
> flushed/refreshed.
>
> Ok

> > Thanks
> >
> >
> > On Sat, Sep 6, 2014 at 2:32 PM, sebb <sebbaz@gmail.com> wrote:
> >
> >> On 6 September 2014 10:50,  <pmouawad@apache.org> 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.
>



-- 
Cordialement.
Philippe Mouawad.

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message