summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRajith Muditha Attapattu <rajith@apache.org>2011-08-31 00:24:59 +0000
committerRajith Muditha Attapattu <rajith@apache.org>2011-08-31 00:24:59 +0000
commitb59a28ead44026e35b2f26038a4cb7cfdc09b29a (patch)
tree90826c52f4508821baf6ebb77566cc3f693ef5b0
parent8a60aeb871c4610fc5514b6e1c870d60d09e03b6 (diff)
downloadqpid-python-b59a28ead44026e35b2f26038a4cb7cfdc09b29a.tar.gz
QPID-3373 Applying Pavel's patch. I also added the same fix for the
createXAConnection method with user,password. git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1163457 13f79535-47bb-0310-9956-ffa450edef68
-rw-r--r--qpid/java/client/src/main/java/org/apache/qpid/client/AMQConnectionFactory.java65
1 files changed, 42 insertions, 23 deletions
diff --git a/qpid/java/client/src/main/java/org/apache/qpid/client/AMQConnectionFactory.java b/qpid/java/client/src/main/java/org/apache/qpid/client/AMQConnectionFactory.java
index fc2d6c94eb..f0c003e02a 100644
--- a/qpid/java/client/src/main/java/org/apache/qpid/client/AMQConnectionFactory.java
+++ b/qpid/java/client/src/main/java/org/apache/qpid/client/AMQConnectionFactory.java
@@ -113,27 +113,35 @@ public class AMQConnectionFactory implements ConnectionFactory, QueueConnectionF
public Connection createConnection(String userName, String password, String id) throws JMSException
{
- try
+ if (_connectionDetails != null)
{
- _connectionDetails.setUsername(userName);
- _connectionDetails.setPassword(password);
-
- if (id != null && !id.equals(""))
+ try
{
- _connectionDetails.setClientName(id);
- }
- else if (_connectionDetails.getClientName() == null || _connectionDetails.getClientName().equals(""))
+ ConnectionURL connectionDetails = new AMQConnectionURL(_connectionDetails.toString());
+ connectionDetails.setUsername(userName);
+ connectionDetails.setPassword(password);
+
+ if (id != null && !id.equals(""))
+ {
+ connectionDetails.setClientName(id);
+ }
+ else if (connectionDetails.getClientName() == null || connectionDetails.getClientName().equals(""))
+ {
+ connectionDetails.setClientName(getUniqueClientID());
+ }
+ return new AMQConnection(connectionDetails);
+ }
+ catch (Exception e)
{
- _connectionDetails.setClientName(getUniqueClientID());
+ JMSException jmse = new JMSException("Error creating connection: " + e.getMessage());
+ jmse.setLinkedException(e);
+ jmse.initCause(e);
+ throw jmse;
}
- return new AMQConnection(_connectionDetails);
}
- catch (Exception e)
+ else
{
- JMSException jmse = new JMSException("Error creating connection: " + e.getMessage());
- jmse.setLinkedException(e);
- jmse.initCause(e);
- throw jmse;
+ throw new JMSException("The connection factory wasn't created with a proper URL, the connection details are empty");
}
}
@@ -285,19 +293,30 @@ public class AMQConnectionFactory implements ConnectionFactory, QueueConnectionF
{
if (_connectionDetails != null)
{
- _connectionDetails.setUsername(username);
- _connectionDetails.setPassword(password);
-
- if (_connectionDetails.getClientName() == null || _connectionDetails.getClientName().equals(""))
+ try
{
- _connectionDetails.setClientName(getUniqueClientID());
+ ConnectionURL connectionDetails = new AMQConnectionURL(_connectionDetails.toString());
+ connectionDetails.setUsername(username);
+ connectionDetails.setPassword(password);
+
+ if (connectionDetails.getClientName() == null || connectionDetails.getClientName().equals(""))
+ {
+ connectionDetails.setClientName(getUniqueClientID());
+ }
+ return new XAConnectionImpl(connectionDetails);
+ }
+ catch (Exception e)
+ {
+ JMSException jmse = new JMSException("Error creating XA Connection: " + e.getMessage());
+ jmse.setLinkedException(e);
+ jmse.initCause(e);
+ throw jmse;
}
}
else
{
- throw new JMSException("A URL must be specified to access XA connections");
- }
- return createXAConnection();
+ throw new JMSException("The connection factory wasn't created with a proper URL, the connection details are empty");
+ }
}