Author: pmouawad
Date: Wed Oct 19 19:44:57 2011
New Revision: 1186430
URL: http://svn.apache.org/viewvc?rev=1186430&view=rev
Log:
Bug 52044 - JMS Subscriber used with many threads leads to
javax.naming.NamingException: Something already bound with ActiveMQ
Revert of modifications
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=1186430&r1=1186429&r2=1186430&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
Wed Oct 19 19:44:57 2011
@@ -39,21 +39,6 @@ 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 {
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=1186430&r1=1186429&r2=1186430&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
Wed Oct 19 19:44:57 2011
@@ -48,9 +48,7 @@ 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);
@@ -90,47 +88,13 @@ 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) {
@@ -174,15 +138,13 @@ public class InitialContextFactory {
throw new NamingException(e.toString());
}
} else {
- return lookupContextNoCache(initialContextFactory, providerUrl,
useAuth, securityPrincipal, securityCredentials);
+ return lookupContext(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=1186430&r1=1186429&r2=1186430&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
Wed Oct 19 19:44:57 2011
@@ -176,6 +176,5 @@ 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=1186430&r1=1186429&r2=1186430&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
Wed Oct 19 19:44:57 2011
@@ -154,9 +154,8 @@ 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{
- ctx = InitialContextFactory.getContext(useProps,
+ Context ctx = InitialContextFactory.getContext(useProps,
initialContextFactory, providerUrl, useAuth,
securityPrincipal, securityCredentials);
CONN = Utils.getConnection(ctx, connfactory);
if(!isEmpty(clientId)) {
@@ -182,7 +181,6 @@ 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=1186430&r1=1186429&r2=1186430&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
Wed Oct 19 19:44:57 2011
@@ -26,16 +26,18 @@ import javax.jms.JMSException;
import javax.jms.Message;
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.ClientPool;
-import org.apache.jmeter.protocol.jms.client.Publisher;
-import org.apache.jmeter.protocol.jms.control.gui.JMSPublisherGui;
+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.jorphan.io.TextFile;
+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.jorphan.logging.LoggingManager;
import org.apache.log.Logger;
@@ -94,6 +96,7 @@ 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=1186430&r1=1186429&r2=1186430&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
Wed Oct 19 19:44:57 2011
@@ -27,6 +27,7 @@ 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;
@@ -414,7 +415,7 @@ public class SubscriberSampler extends B
* {@inheritDoc}
*/
public void testEnded() {
- // NOOP
+ InitialContextFactory.close();
}
/**
Modified: jakarta/jmeter/trunk/xdocs/changes.xml
URL:
http://svn.apache.org/viewvc/jakarta/jmeter/trunk/xdocs/changes.xml?rev=1186430&r1=1186429&r2=1186430&view=diff
==============================================================================
--- jakarta/jmeter/trunk/xdocs/changes.xml (original)
+++ jakarta/jmeter/trunk/xdocs/changes.xml Wed Oct 19 19:44:57 2011
@@ -97,7 +97,6 @@ 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: [email protected]
For additional commands, e-mail: [email protected]