You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@jakarta.apache.org by pm...@apache.org on 2011/10/18 22:58:08 UTC

svn commit: r1185853 - in /jakarta/jmeter/trunk: src/protocol/jms/org/apache/jmeter/protocol/jms/ src/protocol/jms/org/apache/jmeter/protocol/jms/client/ src/protocol/jms/org/apache/jmeter/protocol/jms/sampler/ xdocs/

Author: pmouawad
Date: Tue Oct 18 20:58:08 2011
New Revision: 1185853

URL: http://svn.apache.org/viewvc?rev=1185853&view=rev
Log:
Bug 52044 - JMS Subscriber used with many threads leads to javax.naming.NamingException: Something already bound with ActiveMQ

Performances impact of No Caching of InitialContext are low.

Modified:
    jakarta/jmeter/trunk/src/protocol/jms/org/apache/jmeter/protocol/jms/Utils.java
    jakarta/jmeter/trunk/src/protocol/jms/org/apache/jmeter/protocol/jms/client/InitialContextFactory.java
    jakarta/jmeter/trunk/src/protocol/jms/org/apache/jmeter/protocol/jms/client/Publisher.java
    jakarta/jmeter/trunk/src/protocol/jms/org/apache/jmeter/protocol/jms/client/ReceiveSubscriber.java
    jakarta/jmeter/trunk/src/protocol/jms/org/apache/jmeter/protocol/jms/sampler/PublisherSampler.java
    jakarta/jmeter/trunk/src/protocol/jms/org/apache/jmeter/protocol/jms/sampler/SubscriberSampler.java
    jakarta/jmeter/trunk/xdocs/changes.xml

Modified: jakarta/jmeter/trunk/src/protocol/jms/org/apache/jmeter/protocol/jms/Utils.java
URL: http://svn.apache.org/viewvc/jakarta/jmeter/trunk/src/protocol/jms/org/apache/jmeter/protocol/jms/Utils.java?rev=1185853&r1=1185852&r2=1185853&view=diff
==============================================================================
--- jakarta/jmeter/trunk/src/protocol/jms/org/apache/jmeter/protocol/jms/Utils.java (original)
+++ jakarta/jmeter/trunk/src/protocol/jms/org/apache/jmeter/protocol/jms/Utils.java Tue Oct 18 20:58:08 2011
@@ -39,6 +39,21 @@ import org.apache.log.Logger;
  */
 public final class Utils {
 
+    /**
+     * Close context
+     * @param closeable {@link Context}
+     * @param log {@link Logger}
+     */
+    public static void close(Context closeable, Logger log) {
+        if (closeable != null){
+            try {
+                closeable.close();
+            } catch (Exception e) {
+                log.error("Error during close: ", e);
+            }
+        }
+    }
+    
     public static void close(MessageConsumer closeable, Logger log){
         if (closeable != null){
             try {
@@ -162,5 +177,4 @@ public final class Utils {
         }
         throw new NamingException("Expected javax.jms.ConnectionFactory, found "+objfac.getClass().getName());
     }
-
 }

Modified: jakarta/jmeter/trunk/src/protocol/jms/org/apache/jmeter/protocol/jms/client/InitialContextFactory.java
URL: http://svn.apache.org/viewvc/jakarta/jmeter/trunk/src/protocol/jms/org/apache/jmeter/protocol/jms/client/InitialContextFactory.java?rev=1185853&r1=1185852&r2=1185853&view=diff
==============================================================================
--- jakarta/jmeter/trunk/src/protocol/jms/org/apache/jmeter/protocol/jms/client/InitialContextFactory.java (original)
+++ jakarta/jmeter/trunk/src/protocol/jms/org/apache/jmeter/protocol/jms/client/InitialContextFactory.java Tue Oct 18 20:58:08 2011
@@ -48,7 +48,9 @@ public class InitialContextFactory {
      * @param securityCredentials used to set the property {@link Context#SECURITY_CREDENTIALS}
      * @return the context, never null
      * @throws NamingException 
+     * @{@link Deprecated}  No more caching of {@link Context}s
      */
+    @Deprecated
     public static Context lookupContext(String initialContextFactory, 
             String providerUrl, boolean useAuth, String securityPrincipal, String securityCredentials) throws NamingException {
         String cacheKey = createKey(initialContextFactory ,providerUrl, securityPrincipal, securityCredentials);
@@ -88,13 +90,47 @@ public class InitialContextFactory {
     }
 
     /**
+     * Create context 
+     * 
+     * @param initialContextFactory used to set the property {@link Context#INITIAL_CONTEXT_FACTORY}
+     * @param providerUrl used to set the property {@link Context#PROVIDER_URL}
+     * @param useAuth set true if security is to be used.
+     * @param securityPrincipal used to set the property {@link Context#SECURITY_PRINCIPAL}
+     * @param securityCredentials used to set the property {@link Context#SECURITY_CREDENTIALS}
+     * @return the context, never null
+     * @throws NamingException 
+     */
+    private static Context lookupContextNoCache(String initialContextFactory, 
+            String providerUrl, boolean useAuth, String securityPrincipal, String securityCredentials) throws NamingException {
+        Properties props = new Properties();
+        props.setProperty(Context.INITIAL_CONTEXT_FACTORY, initialContextFactory);
+        props.setProperty(Context.PROVIDER_URL, providerUrl);
+        if (useAuth && securityPrincipal != null && securityCredentials != null
+                && securityPrincipal.length() > 0 && securityCredentials.length() > 0) {
+            props.setProperty(Context.SECURITY_PRINCIPAL, securityPrincipal);
+            props.setProperty(Context.SECURITY_CREDENTIALS, securityCredentials);
+            log.info("authentication properties set");
+        }
+        try {
+            return new InitialContext(props);
+        } catch (NoClassDefFoundError e){
+            throw new NamingException(e.toString());
+        } catch (Exception e) {
+            throw new NamingException(e.toString());
+        }
+    }
+
+
+    /**
      * Create cache key
      * @param initialContextFactory
      * @param providerUrl
      * @param securityPrincipal
      * @param securityCredentials
      * @return
+     *@deprecated No more caching of {@link Context}s
      */
+    @Deprecated
     private static String createKey(String initialContextFactory,
             String providerUrl, String securityPrincipal,
             String securityCredentials) {
@@ -138,13 +174,15 @@ public class InitialContextFactory {
                 throw new NamingException(e.toString());
             }
         } else {
-            return lookupContext(initialContextFactory, providerUrl, useAuth, securityPrincipal, securityCredentials);
+            return lookupContextNoCache(initialContextFactory, providerUrl, useAuth, securityPrincipal, securityCredentials);
         }
     }
     
     /**
      * clear all the InitialContext objects.
+     * @deprecated No more caching of {@link Context}s
      */
+    @Deprecated
     public static void close() {
         for (Context ctx : MAP.values()) {
             try {

Modified: jakarta/jmeter/trunk/src/protocol/jms/org/apache/jmeter/protocol/jms/client/Publisher.java
URL: http://svn.apache.org/viewvc/jakarta/jmeter/trunk/src/protocol/jms/org/apache/jmeter/protocol/jms/client/Publisher.java?rev=1185853&r1=1185852&r2=1185853&view=diff
==============================================================================
--- jakarta/jmeter/trunk/src/protocol/jms/org/apache/jmeter/protocol/jms/client/Publisher.java (original)
+++ jakarta/jmeter/trunk/src/protocol/jms/org/apache/jmeter/protocol/jms/client/Publisher.java Tue Oct 18 20:58:08 2011
@@ -176,5 +176,6 @@ public class Publisher implements Closea
         Utils.close(producer, log);
         Utils.close(session, log);
         Utils.close(connection, log);
+        Utils.close(ctx, log);
     }
 }

Modified: jakarta/jmeter/trunk/src/protocol/jms/org/apache/jmeter/protocol/jms/client/ReceiveSubscriber.java
URL: http://svn.apache.org/viewvc/jakarta/jmeter/trunk/src/protocol/jms/org/apache/jmeter/protocol/jms/client/ReceiveSubscriber.java?rev=1185853&r1=1185852&r2=1185853&view=diff
==============================================================================
--- jakarta/jmeter/trunk/src/protocol/jms/org/apache/jmeter/protocol/jms/client/ReceiveSubscriber.java (original)
+++ jakarta/jmeter/trunk/src/protocol/jms/org/apache/jmeter/protocol/jms/client/ReceiveSubscriber.java Tue Oct 18 20:58:08 2011
@@ -154,8 +154,9 @@ public class ReceiveSubscriber implement
             String durableSubscriptionId, String clientId, String jmsSelector, boolean useAuth, 
             String securityPrincipal, String securityCredentials, boolean useMessageListener) throws NamingException, JMSException {
         boolean initSuccess = false;
+        Context ctx = null;
         try{
-            Context ctx = InitialContextFactory.getContext(useProps, 
+            ctx = InitialContextFactory.getContext(useProps, 
                     initialContextFactory, providerUrl, useAuth, securityPrincipal, securityCredentials);
             CONN = Utils.getConnection(ctx, connfactory);
             if(!isEmpty(clientId)) {
@@ -181,6 +182,7 @@ public class ReceiveSubscriber implement
             if(!initSuccess) {
                 close();
             }
+            Utils.close(ctx, log);
         }
     }
     

Modified: jakarta/jmeter/trunk/src/protocol/jms/org/apache/jmeter/protocol/jms/sampler/PublisherSampler.java
URL: http://svn.apache.org/viewvc/jakarta/jmeter/trunk/src/protocol/jms/org/apache/jmeter/protocol/jms/sampler/PublisherSampler.java?rev=1185853&r1=1185852&r2=1185853&view=diff
==============================================================================
--- jakarta/jmeter/trunk/src/protocol/jms/org/apache/jmeter/protocol/jms/sampler/PublisherSampler.java (original)
+++ jakarta/jmeter/trunk/src/protocol/jms/org/apache/jmeter/protocol/jms/sampler/PublisherSampler.java Tue Oct 18 20:58:08 2011
@@ -26,19 +26,16 @@ import javax.jms.JMSException;
 import javax.jms.Message;
 import javax.naming.NamingException;
 
-import org.apache.jorphan.io.TextFile;
-import org.apache.jmeter.samplers.SampleResult;
-import org.apache.jmeter.services.FileServer;
-import org.apache.jmeter.testelement.TestListener;
-import org.apache.jmeter.util.JMeterUtils;
 import org.apache.jmeter.engine.event.LoopIterationEvent;
-
 import org.apache.jmeter.protocol.jms.Utils;
-import org.apache.jmeter.protocol.jms.control.gui.JMSPublisherGui;
 import org.apache.jmeter.protocol.jms.client.ClientPool;
-import org.apache.jmeter.protocol.jms.client.InitialContextFactory;
 import org.apache.jmeter.protocol.jms.client.Publisher;
-
+import org.apache.jmeter.protocol.jms.control.gui.JMSPublisherGui;
+import org.apache.jmeter.samplers.SampleResult;
+import org.apache.jmeter.services.FileServer;
+import org.apache.jmeter.testelement.TestListener;
+import org.apache.jmeter.util.JMeterUtils;
+import org.apache.jorphan.io.TextFile;
 import org.apache.jorphan.logging.LoggingManager;
 import org.apache.log.Logger;
 
@@ -97,7 +94,6 @@ public class PublisherSampler extends Ba
     public void testEnded() {
         log.debug("PublisherSampler.testEnded called");
         ClientPool.clearClient();
-        InitialContextFactory.close();
     }
 
     public void testStarted() {

Modified: jakarta/jmeter/trunk/src/protocol/jms/org/apache/jmeter/protocol/jms/sampler/SubscriberSampler.java
URL: http://svn.apache.org/viewvc/jakarta/jmeter/trunk/src/protocol/jms/org/apache/jmeter/protocol/jms/sampler/SubscriberSampler.java?rev=1185853&r1=1185852&r2=1185853&view=diff
==============================================================================
--- jakarta/jmeter/trunk/src/protocol/jms/org/apache/jmeter/protocol/jms/sampler/SubscriberSampler.java (original)
+++ jakarta/jmeter/trunk/src/protocol/jms/org/apache/jmeter/protocol/jms/sampler/SubscriberSampler.java Tue Oct 18 20:58:08 2011
@@ -27,7 +27,6 @@ import javax.naming.NamingException;
 
 import org.apache.jmeter.engine.event.LoopIterationEvent;
 import org.apache.jmeter.protocol.jms.Utils;
-import org.apache.jmeter.protocol.jms.client.InitialContextFactory;
 import org.apache.jmeter.protocol.jms.client.ReceiveSubscriber;
 import org.apache.jmeter.protocol.jms.control.gui.JMSSubscriberGui;
 import org.apache.jmeter.samplers.Interruptible;
@@ -415,7 +414,7 @@ public class SubscriberSampler extends B
      * {@inheritDoc}
      */
     public void testEnded() {
-        InitialContextFactory.close();
+        // NOOP
     }
 
     /**

Modified: jakarta/jmeter/trunk/xdocs/changes.xml
URL: http://svn.apache.org/viewvc/jakarta/jmeter/trunk/xdocs/changes.xml?rev=1185853&r1=1185852&r2=1185853&view=diff
==============================================================================
--- jakarta/jmeter/trunk/xdocs/changes.xml (original)
+++ jakarta/jmeter/trunk/xdocs/changes.xml Tue Oct 18 20:58:08 2011
@@ -97,6 +97,7 @@ Mirror server now uses default port 8081
 <li>Bug 51996 - JMS Initial Context leak newly created Context when Multiple Thread enter InitialContextFactory#lookupContext at the same time</li>
 <li>Bug 51691 - Authorization does not work for JMS Publisher and JMS Subscriber</li>
 <li>Bug 52036 - Durable Subscription fails with ActiveMQ due to missing clientId field</li>
+<li>Bug 52044 - JMS Subscriber used with many threads leads to javax.naming.NamingException: Something already bound with ActiveMQ</li>
 </ul>
 
 <h3>Controllers</h3>



---------------------------------------------------------------------
To unsubscribe, e-mail: notifications-unsubscribe@jakarta.apache.org
For additional commands, e-mail: notifications-help@jakarta.apache.org


Re: svn commit: r1185853 - in /jakarta/jmeter/trunk: src/protocol/jms/org/apache/jmeter/protocol/jms/ src/protocol/jms/org/apache/jmeter/protocol/jms/client/ src/protocol/jms/org/apache/jmeter/protocol/jms/sampler/ xdocs/

Posted by sebb <se...@gmail.com>.
On 18 October 2011 21:58,  <pm...@apache.org> wrote:
> Author: pmouawad
> Date: Tue Oct 18 20:58:08 2011
> New Revision: 1185853
>
> URL: http://svn.apache.org/viewvc?rev=1185853&view=rev
> Log:
> Bug 52044 - JMS Subscriber used with many threads leads to javax.naming.NamingException: Something already bound with ActiveMQ
>
> Performances impact of No Caching of InitialContext are low.

-1

I now think this is the wrong solution, and could have a negative impact.

Please revert these changes; we need to discuss further on the dev list.

> Modified:
>    jakarta/jmeter/trunk/src/protocol/jms/org/apache/jmeter/protocol/jms/Utils.java
>    jakarta/jmeter/trunk/src/protocol/jms/org/apache/jmeter/protocol/jms/client/InitialContextFactory.java
>    jakarta/jmeter/trunk/src/protocol/jms/org/apache/jmeter/protocol/jms/client/Publisher.java
>    jakarta/jmeter/trunk/src/protocol/jms/org/apache/jmeter/protocol/jms/client/ReceiveSubscriber.java
>    jakarta/jmeter/trunk/src/protocol/jms/org/apache/jmeter/protocol/jms/sampler/PublisherSampler.java
>    jakarta/jmeter/trunk/src/protocol/jms/org/apache/jmeter/protocol/jms/sampler/SubscriberSampler.java
>    jakarta/jmeter/trunk/xdocs/changes.xml
>
> Modified: jakarta/jmeter/trunk/src/protocol/jms/org/apache/jmeter/protocol/jms/Utils.java
> URL: http://svn.apache.org/viewvc/jakarta/jmeter/trunk/src/protocol/jms/org/apache/jmeter/protocol/jms/Utils.java?rev=1185853&r1=1185852&r2=1185853&view=diff
> ==============================================================================
> --- jakarta/jmeter/trunk/src/protocol/jms/org/apache/jmeter/protocol/jms/Utils.java (original)
> +++ jakarta/jmeter/trunk/src/protocol/jms/org/apache/jmeter/protocol/jms/Utils.java Tue Oct 18 20:58:08 2011
> @@ -39,6 +39,21 @@ import org.apache.log.Logger;
>  */
>  public final class Utils {
>
> +    /**
> +     * Close context
> +     * @param closeable {@link Context}
> +     * @param log {@link Logger}
> +     */
> +    public static void close(Context closeable, Logger log) {
> +        if (closeable != null){
> +            try {
> +                closeable.close();
> +            } catch (Exception e) {
> +                log.error("Error during close: ", e);
> +            }
> +        }
> +    }
> +
>     public static void close(MessageConsumer closeable, Logger log){
>         if (closeable != null){
>             try {
> @@ -162,5 +177,4 @@ public final class Utils {
>         }
>         throw new NamingException("Expected javax.jms.ConnectionFactory, found "+objfac.getClass().getName());
>     }
> -
>  }
>
> Modified: jakarta/jmeter/trunk/src/protocol/jms/org/apache/jmeter/protocol/jms/client/InitialContextFactory.java
> URL: http://svn.apache.org/viewvc/jakarta/jmeter/trunk/src/protocol/jms/org/apache/jmeter/protocol/jms/client/InitialContextFactory.java?rev=1185853&r1=1185852&r2=1185853&view=diff
> ==============================================================================
> --- jakarta/jmeter/trunk/src/protocol/jms/org/apache/jmeter/protocol/jms/client/InitialContextFactory.java (original)
> +++ jakarta/jmeter/trunk/src/protocol/jms/org/apache/jmeter/protocol/jms/client/InitialContextFactory.java Tue Oct 18 20:58:08 2011
> @@ -48,7 +48,9 @@ public class InitialContextFactory {
>      * @param securityCredentials used to set the property {@link Context#SECURITY_CREDENTIALS}
>      * @return the context, never null
>      * @throws NamingException
> +     * @{@link Deprecated}  No more caching of {@link Context}s
>      */
> +    @Deprecated
>     public static Context lookupContext(String initialContextFactory,
>             String providerUrl, boolean useAuth, String securityPrincipal, String securityCredentials) throws NamingException {
>         String cacheKey = createKey(initialContextFactory ,providerUrl, securityPrincipal, securityCredentials);
> @@ -88,13 +90,47 @@ public class InitialContextFactory {
>     }
>
>     /**
> +     * Create context
> +     *
> +     * @param initialContextFactory used to set the property {@link Context#INITIAL_CONTEXT_FACTORY}
> +     * @param providerUrl used to set the property {@link Context#PROVIDER_URL}
> +     * @param useAuth set true if security is to be used.
> +     * @param securityPrincipal used to set the property {@link Context#SECURITY_PRINCIPAL}
> +     * @param securityCredentials used to set the property {@link Context#SECURITY_CREDENTIALS}
> +     * @return the context, never null
> +     * @throws NamingException
> +     */
> +    private static Context lookupContextNoCache(String initialContextFactory,
> +            String providerUrl, boolean useAuth, String securityPrincipal, String securityCredentials) throws NamingException {
> +        Properties props = new Properties();
> +        props.setProperty(Context.INITIAL_CONTEXT_FACTORY, initialContextFactory);
> +        props.setProperty(Context.PROVIDER_URL, providerUrl);
> +        if (useAuth && securityPrincipal != null && securityCredentials != null
> +                && securityPrincipal.length() > 0 && securityCredentials.length() > 0) {
> +            props.setProperty(Context.SECURITY_PRINCIPAL, securityPrincipal);
> +            props.setProperty(Context.SECURITY_CREDENTIALS, securityCredentials);
> +            log.info("authentication properties set");
> +        }
> +        try {
> +            return new InitialContext(props);
> +        } catch (NoClassDefFoundError e){
> +            throw new NamingException(e.toString());
> +        } catch (Exception e) {
> +            throw new NamingException(e.toString());
> +        }
> +    }
> +
> +
> +    /**
>      * Create cache key
>      * @param initialContextFactory
>      * @param providerUrl
>      * @param securityPrincipal
>      * @param securityCredentials
>      * @return
> +     *@deprecated No more caching of {@link Context}s
>      */
> +    @Deprecated
>     private static String createKey(String initialContextFactory,
>             String providerUrl, String securityPrincipal,
>             String securityCredentials) {
> @@ -138,13 +174,15 @@ public class InitialContextFactory {
>                 throw new NamingException(e.toString());
>             }
>         } else {
> -            return lookupContext(initialContextFactory, providerUrl, useAuth, securityPrincipal, securityCredentials);
> +            return lookupContextNoCache(initialContextFactory, providerUrl, useAuth, securityPrincipal, securityCredentials);
>         }
>     }
>
>     /**
>      * clear all the InitialContext objects.
> +     * @deprecated No more caching of {@link Context}s
>      */
> +    @Deprecated
>     public static void close() {
>         for (Context ctx : MAP.values()) {
>             try {
>
> Modified: jakarta/jmeter/trunk/src/protocol/jms/org/apache/jmeter/protocol/jms/client/Publisher.java
> URL: http://svn.apache.org/viewvc/jakarta/jmeter/trunk/src/protocol/jms/org/apache/jmeter/protocol/jms/client/Publisher.java?rev=1185853&r1=1185852&r2=1185853&view=diff
> ==============================================================================
> --- jakarta/jmeter/trunk/src/protocol/jms/org/apache/jmeter/protocol/jms/client/Publisher.java (original)
> +++ jakarta/jmeter/trunk/src/protocol/jms/org/apache/jmeter/protocol/jms/client/Publisher.java Tue Oct 18 20:58:08 2011
> @@ -176,5 +176,6 @@ public class Publisher implements Closea
>         Utils.close(producer, log);
>         Utils.close(session, log);
>         Utils.close(connection, log);
> +        Utils.close(ctx, log);
>     }
>  }
>
> Modified: jakarta/jmeter/trunk/src/protocol/jms/org/apache/jmeter/protocol/jms/client/ReceiveSubscriber.java
> URL: http://svn.apache.org/viewvc/jakarta/jmeter/trunk/src/protocol/jms/org/apache/jmeter/protocol/jms/client/ReceiveSubscriber.java?rev=1185853&r1=1185852&r2=1185853&view=diff
> ==============================================================================
> --- jakarta/jmeter/trunk/src/protocol/jms/org/apache/jmeter/protocol/jms/client/ReceiveSubscriber.java (original)
> +++ jakarta/jmeter/trunk/src/protocol/jms/org/apache/jmeter/protocol/jms/client/ReceiveSubscriber.java Tue Oct 18 20:58:08 2011
> @@ -154,8 +154,9 @@ public class ReceiveSubscriber implement
>             String durableSubscriptionId, String clientId, String jmsSelector, boolean useAuth,
>             String securityPrincipal, String securityCredentials, boolean useMessageListener) throws NamingException, JMSException {
>         boolean initSuccess = false;
> +        Context ctx = null;
>         try{
> -            Context ctx = InitialContextFactory.getContext(useProps,
> +            ctx = InitialContextFactory.getContext(useProps,
>                     initialContextFactory, providerUrl, useAuth, securityPrincipal, securityCredentials);
>             CONN = Utils.getConnection(ctx, connfactory);
>             if(!isEmpty(clientId)) {
> @@ -181,6 +182,7 @@ public class ReceiveSubscriber implement
>             if(!initSuccess) {
>                 close();
>             }
> +            Utils.close(ctx, log);
>         }
>     }
>
>
> Modified: jakarta/jmeter/trunk/src/protocol/jms/org/apache/jmeter/protocol/jms/sampler/PublisherSampler.java
> URL: http://svn.apache.org/viewvc/jakarta/jmeter/trunk/src/protocol/jms/org/apache/jmeter/protocol/jms/sampler/PublisherSampler.java?rev=1185853&r1=1185852&r2=1185853&view=diff
> ==============================================================================
> --- jakarta/jmeter/trunk/src/protocol/jms/org/apache/jmeter/protocol/jms/sampler/PublisherSampler.java (original)
> +++ jakarta/jmeter/trunk/src/protocol/jms/org/apache/jmeter/protocol/jms/sampler/PublisherSampler.java Tue Oct 18 20:58:08 2011
> @@ -26,19 +26,16 @@ import javax.jms.JMSException;
>  import javax.jms.Message;
>  import javax.naming.NamingException;
>
> -import org.apache.jorphan.io.TextFile;
> -import org.apache.jmeter.samplers.SampleResult;
> -import org.apache.jmeter.services.FileServer;
> -import org.apache.jmeter.testelement.TestListener;
> -import org.apache.jmeter.util.JMeterUtils;
>  import org.apache.jmeter.engine.event.LoopIterationEvent;
> -
>  import org.apache.jmeter.protocol.jms.Utils;
> -import org.apache.jmeter.protocol.jms.control.gui.JMSPublisherGui;
>  import org.apache.jmeter.protocol.jms.client.ClientPool;
> -import org.apache.jmeter.protocol.jms.client.InitialContextFactory;
>  import org.apache.jmeter.protocol.jms.client.Publisher;
> -
> +import org.apache.jmeter.protocol.jms.control.gui.JMSPublisherGui;
> +import org.apache.jmeter.samplers.SampleResult;
> +import org.apache.jmeter.services.FileServer;
> +import org.apache.jmeter.testelement.TestListener;
> +import org.apache.jmeter.util.JMeterUtils;
> +import org.apache.jorphan.io.TextFile;
>  import org.apache.jorphan.logging.LoggingManager;
>  import org.apache.log.Logger;
>
> @@ -97,7 +94,6 @@ public class PublisherSampler extends Ba
>     public void testEnded() {
>         log.debug("PublisherSampler.testEnded called");
>         ClientPool.clearClient();
> -        InitialContextFactory.close();
>     }
>
>     public void testStarted() {
>
> Modified: jakarta/jmeter/trunk/src/protocol/jms/org/apache/jmeter/protocol/jms/sampler/SubscriberSampler.java
> URL: http://svn.apache.org/viewvc/jakarta/jmeter/trunk/src/protocol/jms/org/apache/jmeter/protocol/jms/sampler/SubscriberSampler.java?rev=1185853&r1=1185852&r2=1185853&view=diff
> ==============================================================================
> --- jakarta/jmeter/trunk/src/protocol/jms/org/apache/jmeter/protocol/jms/sampler/SubscriberSampler.java (original)
> +++ jakarta/jmeter/trunk/src/protocol/jms/org/apache/jmeter/protocol/jms/sampler/SubscriberSampler.java Tue Oct 18 20:58:08 2011
> @@ -27,7 +27,6 @@ import javax.naming.NamingException;
>
>  import org.apache.jmeter.engine.event.LoopIterationEvent;
>  import org.apache.jmeter.protocol.jms.Utils;
> -import org.apache.jmeter.protocol.jms.client.InitialContextFactory;
>  import org.apache.jmeter.protocol.jms.client.ReceiveSubscriber;
>  import org.apache.jmeter.protocol.jms.control.gui.JMSSubscriberGui;
>  import org.apache.jmeter.samplers.Interruptible;
> @@ -415,7 +414,7 @@ public class SubscriberSampler extends B
>      * {@inheritDoc}
>      */
>     public void testEnded() {
> -        InitialContextFactory.close();
> +        // NOOP
>     }
>
>     /**
>
> Modified: jakarta/jmeter/trunk/xdocs/changes.xml
> URL: http://svn.apache.org/viewvc/jakarta/jmeter/trunk/xdocs/changes.xml?rev=1185853&r1=1185852&r2=1185853&view=diff
> ==============================================================================
> --- jakarta/jmeter/trunk/xdocs/changes.xml (original)
> +++ jakarta/jmeter/trunk/xdocs/changes.xml Tue Oct 18 20:58:08 2011
> @@ -97,6 +97,7 @@ Mirror server now uses default port 8081
>  <li>Bug 51996 - JMS Initial Context leak newly created Context when Multiple Thread enter InitialContextFactory#lookupContext at the same time</li>
>  <li>Bug 51691 - Authorization does not work for JMS Publisher and JMS Subscriber</li>
>  <li>Bug 52036 - Durable Subscription fails with ActiveMQ due to missing clientId field</li>
> +<li>Bug 52044 - JMS Subscriber used with many threads leads to javax.naming.NamingException: Something already bound with ActiveMQ</li>
>  </ul>
>
>  <h3>Controllers</h3>
>
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: notifications-unsubscribe@jakarta.apache.org
> For additional commands, e-mail: notifications-help@jakarta.apache.org
>
>

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: dev-help@jakarta.apache.org