You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@qpid.apache.org by rg...@apache.org on 2013/05/15 15:15:05 UTC
svn commit: r1482809 - in /qpid/branches/0.22/qpid/java: ./
amqp-1-0-client-jms/
amqp-1-0-client-jms/src/main/java/org/apache/qpid/amqp_1_0/jms/
amqp-1-0-client-jms/src/main/java/org/apache/qpid/amqp_1_0/jms/impl/
amqp-1-0-client/ amqp-1-0-client/examp...
Author: rgodfrey
Date: Wed May 15 13:15:04 2013
New Revision: 1482809
URL: http://svn.apache.org/r1482809
Log:
Merge fixes for JMS AMQP 1-0 client from trunk to 0.22 release
Added:
qpid/branches/0.22/qpid/java/amqp-1-0-client-jms/src/main/java/org/apache/qpid/amqp_1_0/jms/MessageRejectedException.java
- copied unchanged from r1481321, qpid/trunk/qpid/java/amqp-1-0-client-jms/src/main/java/org/apache/qpid/amqp_1_0/jms/MessageRejectedException.java
qpid/branches/0.22/qpid/java/amqp-1-0-client/src/main/java/org/apache/qpid/amqp_1_0/client/LinkDetachedException.java
- copied unchanged from r1481321, qpid/trunk/qpid/java/amqp-1-0-client/src/main/java/org/apache/qpid/amqp_1_0/client/LinkDetachedException.java
Modified:
qpid/branches/0.22/qpid/java/ (props changed)
qpid/branches/0.22/qpid/java/amqp-1-0-client/ (props changed)
qpid/branches/0.22/qpid/java/amqp-1-0-client-jms/ (props changed)
qpid/branches/0.22/qpid/java/amqp-1-0-client-jms/src/main/java/org/apache/qpid/amqp_1_0/jms/impl/ConnectionFactoryImpl.java
qpid/branches/0.22/qpid/java/amqp-1-0-client-jms/src/main/java/org/apache/qpid/amqp_1_0/jms/impl/ConnectionImpl.java
qpid/branches/0.22/qpid/java/amqp-1-0-client-jms/src/main/java/org/apache/qpid/amqp_1_0/jms/impl/MessageConsumerImpl.java
qpid/branches/0.22/qpid/java/amqp-1-0-client-jms/src/main/java/org/apache/qpid/amqp_1_0/jms/impl/MessageProducerImpl.java
qpid/branches/0.22/qpid/java/amqp-1-0-client-jms/src/main/java/org/apache/qpid/amqp_1_0/jms/impl/SessionImpl.java
qpid/branches/0.22/qpid/java/amqp-1-0-client-jms/src/main/java/org/apache/qpid/amqp_1_0/jms/impl/TemporaryQueueImpl.java
qpid/branches/0.22/qpid/java/amqp-1-0-client-jms/src/main/java/org/apache/qpid/amqp_1_0/jms/impl/TemporaryTopicImpl.java
qpid/branches/0.22/qpid/java/amqp-1-0-client/example/src/main/java/org/apache/qpid/amqp_1_0/client/Demo.java
qpid/branches/0.22/qpid/java/amqp-1-0-client/example/src/main/java/org/apache/qpid/amqp_1_0/client/Dump.java
qpid/branches/0.22/qpid/java/amqp-1-0-client/example/src/main/java/org/apache/qpid/amqp_1_0/client/Filesender.java
qpid/branches/0.22/qpid/java/amqp-1-0-client/example/src/main/java/org/apache/qpid/amqp_1_0/client/Request.java
qpid/branches/0.22/qpid/java/amqp-1-0-client/example/src/main/java/org/apache/qpid/amqp_1_0/client/Respond.java
qpid/branches/0.22/qpid/java/amqp-1-0-client/example/src/main/java/org/apache/qpid/amqp_1_0/client/Send.java
qpid/branches/0.22/qpid/java/amqp-1-0-client/src/main/java/org/apache/qpid/amqp_1_0/client/Receiver.java
qpid/branches/0.22/qpid/java/amqp-1-0-client/src/main/java/org/apache/qpid/amqp_1_0/client/Sender.java
qpid/branches/0.22/qpid/java/amqp-1-0-common/ (props changed)
qpid/branches/0.22/qpid/java/amqp-1-0-common/src/main/java/org/apache/qpid/amqp_1_0/codec/CompoundWriter.java
qpid/branches/0.22/qpid/java/amqp-1-0-common/src/main/java/org/apache/qpid/amqp_1_0/codec/UnsignedLongWriter.java
qpid/branches/0.22/qpid/java/amqp-1-0-common/src/main/java/org/apache/qpid/amqp_1_0/type/codec/AMQPDescribedTypeRegistry.java
qpid/branches/0.22/qpid/java/broker/ (props changed)
qpid/branches/0.22/qpid/java/broker/bin/ (props changed)
qpid/branches/0.22/qpid/java/broker/src/main/java/org/apache/qpid/server/message/MessageMetaData_1_0.java (props changed)
qpid/branches/0.22/qpid/java/broker/src/main/java/org/apache/qpid/server/protocol/ProtocolEngine_1_0_0.java (props changed)
qpid/branches/0.22/qpid/java/broker/src/main/java/org/apache/qpid/server/protocol/ProtocolEngine_1_0_0_SASL.java (props changed)
qpid/branches/0.22/qpid/java/broker/src/main/java/org/apache/qpid/server/protocol/v1_0/ (props changed)
qpid/branches/0.22/qpid/java/broker/src/main/java/org/apache/qpid/server/queue/ (props changed)
qpid/branches/0.22/qpid/java/broker/src/main/java/org/apache/qpid/server/store/AbstractJDBCMessageStore.java (props changed)
qpid/branches/0.22/qpid/java/broker/src/main/java/org/apache/qpid/server/virtualhost/ (props changed)
qpid/branches/0.22/qpid/java/management/common/src/main/java/org/apache/qpid/management/common/mbeans/LoggingManagement.java (props changed)
qpid/branches/0.22/qpid/java/management/common/src/main/java/org/apache/qpid/management/common/mbeans/ManagedBroker.java (props changed)
qpid/branches/0.22/qpid/java/management/common/src/main/java/org/apache/qpid/management/common/mbeans/ManagedConnection.java (props changed)
qpid/branches/0.22/qpid/java/management/common/src/main/java/org/apache/qpid/management/common/mbeans/ManagedExchange.java (props changed)
qpid/branches/0.22/qpid/java/management/common/src/main/java/org/apache/qpid/management/common/mbeans/ManagedQueue.java (props changed)
qpid/branches/0.22/qpid/java/management/common/src/main/java/org/apache/qpid/management/common/mbeans/UserManagement.java (props changed)
qpid/branches/0.22/qpid/java/management/common/src/main/java/org/apache/qpid/management/common/mbeans/annotations/MBeanAttribute.java (props changed)
qpid/branches/0.22/qpid/java/management/common/src/main/java/org/apache/qpid/management/common/mbeans/annotations/MBeanConstructor.java (props changed)
qpid/branches/0.22/qpid/java/management/common/src/main/java/org/apache/qpid/management/common/mbeans/annotations/MBeanDescription.java (props changed)
qpid/branches/0.22/qpid/java/management/common/src/main/java/org/apache/qpid/management/common/mbeans/annotations/MBeanOperation.java (props changed)
qpid/branches/0.22/qpid/java/management/common/src/main/java/org/apache/qpid/management/common/mbeans/annotations/MBeanOperationParameter.java (props changed)
qpid/branches/0.22/qpid/java/perftests/etc/ (props changed)
qpid/branches/0.22/qpid/java/systests/src/main/java/org/apache/qpid/server/SupportedProtocolVersionsTest.java (props changed)
qpid/branches/0.22/qpid/java/systests/src/main/java/org/apache/qpid/test/utils/QpidBrokerTestCase.java (props changed)
qpid/branches/0.22/qpid/java/test-profiles/ (props changed)
qpid/branches/0.22/qpid/java/test-profiles/CPPExcludes (props changed)
qpid/branches/0.22/qpid/java/test-profiles/Excludes (props changed)
qpid/branches/0.22/qpid/java/test-profiles/JavaBDBExcludes (props changed)
qpid/branches/0.22/qpid/java/test-profiles/JavaExcludes (props changed)
qpid/branches/0.22/qpid/java/test-profiles/JavaPre010Excludes (props changed)
qpid/branches/0.22/qpid/java/test-profiles/JavaTransientExcludes (props changed)
qpid/branches/0.22/qpid/java/test-profiles/XAExcludes (props changed)
qpid/branches/0.22/qpid/java/test-profiles/cpp.async.testprofile (props changed)
qpid/branches/0.22/qpid/java/test-profiles/cpp.cluster.testprofile (props changed)
qpid/branches/0.22/qpid/java/test-profiles/cpp.noprefetch.testprofile (props changed)
qpid/branches/0.22/qpid/java/test-profiles/cpp.ssl.excludes (props changed)
qpid/branches/0.22/qpid/java/test-profiles/cpp.ssl.testprofile (props changed)
qpid/branches/0.22/qpid/java/test-profiles/cpp.testprofile (props changed)
qpid/branches/0.22/qpid/java/test-profiles/java-bdb-spawn.0-9-1.testprofile (props changed)
qpid/branches/0.22/qpid/java/test-profiles/java-bdb.0-9-1.testprofile (props changed)
qpid/branches/0.22/qpid/java/test-profiles/java-dby-spawn.0-9-1.testprofile (props changed)
qpid/branches/0.22/qpid/java/test-profiles/java-dby.0-9-1.testprofile (props changed)
qpid/branches/0.22/qpid/java/test-profiles/java-mms-spawn.0-10.testprofile (props changed)
qpid/branches/0.22/qpid/java/test-profiles/java-mms-spawn.0-9-1.testprofile (props changed)
qpid/branches/0.22/qpid/java/test-profiles/java-mms.0-9-1.testprofile (props changed)
qpid/branches/0.22/qpid/java/test-profiles/log4j-test.xml (props changed)
qpid/branches/0.22/qpid/java/test-profiles/test-provider.properties (props changed)
qpid/branches/0.22/qpid/java/test-profiles/test_resources/ (props changed)
qpid/branches/0.22/qpid/java/test-profiles/testprofile.defaults (props changed)
Propchange: qpid/branches/0.22/qpid/java/
------------------------------------------------------------------------------
Merged /qpid/trunk/qpid/java:r1480584,1481290,1481321,1482609,1482729,1482770
Propchange: qpid/branches/0.22/qpid/java/amqp-1-0-client/
------------------------------------------------------------------------------
Merged /qpid/trunk/qpid/java/amqp-1-0-client:r1480584,1481290,1481321,1482609,1482729,1482770
Propchange: qpid/branches/0.22/qpid/java/amqp-1-0-client-jms/
------------------------------------------------------------------------------
Merged /qpid/trunk/qpid/java/amqp-1-0-client-jms:r1480584,1481290,1481321,1482609,1482729,1482770
Modified: qpid/branches/0.22/qpid/java/amqp-1-0-client-jms/src/main/java/org/apache/qpid/amqp_1_0/jms/impl/ConnectionFactoryImpl.java
URL: http://svn.apache.org/viewvc/qpid/branches/0.22/qpid/java/amqp-1-0-client-jms/src/main/java/org/apache/qpid/amqp_1_0/jms/impl/ConnectionFactoryImpl.java?rev=1482809&r1=1482808&r2=1482809&view=diff
==============================================================================
--- qpid/branches/0.22/qpid/java/amqp-1-0-client-jms/src/main/java/org/apache/qpid/amqp_1_0/jms/impl/ConnectionFactoryImpl.java (original)
+++ qpid/branches/0.22/qpid/java/amqp-1-0-client-jms/src/main/java/org/apache/qpid/amqp_1_0/jms/impl/ConnectionFactoryImpl.java Wed May 15 13:15:04 2013
@@ -45,6 +45,7 @@ public class ConnectionFactoryImpl imple
private String _queuePrefix;
private String _topicPrefix;
+ private boolean _useBinaryMessageId;
public ConnectionFactoryImpl(final String host,
final int port,
@@ -100,6 +101,7 @@ public class ConnectionFactoryImpl imple
ConnectionImpl connection = new ConnectionImpl(_host, _port, username, password, _clientId, _remoteHost, _ssl);
connection.setQueuePrefix(_queuePrefix);
connection.setTopicPrefix(_topicPrefix);
+ connection.setUseBinaryMessageId(_useBinaryMessageId);
return connection;
}
@@ -149,6 +151,9 @@ public class ConnectionFactoryImpl imple
String password = null;
String clientId = null;
String remoteHost = null;
+
+ boolean binaryMessageId = true;
+
if(userInfo != null)
{
String[] components = userInfo.split(":",2);
@@ -161,22 +166,26 @@ public class ConnectionFactoryImpl imple
String query = url.getQuery();
if(query != null)
{
- for(String param : query.split("&"))
- {
- String[] keyValuePair = param.split("=",2);
- if(keyValuePair[0].equalsIgnoreCase("clientid"))
- {
- clientId = keyValuePair[1];
- }
- else if(keyValuePair[0].equalsIgnoreCase("ssl"))
- {
- ssl = Boolean.valueOf(keyValuePair[1]);
- }
- else if(keyValuePair[0].equalsIgnoreCase("remote-host"))
- {
- remoteHost = keyValuePair[1];
- }
- }
+ for(String param : query.split("&"))
+ {
+ String[] keyValuePair = param.split("=",2);
+ if(keyValuePair[0].equalsIgnoreCase("clientid"))
+ {
+ clientId = keyValuePair[1];
+ }
+ else if(keyValuePair[0].equalsIgnoreCase("ssl"))
+ {
+ ssl = Boolean.valueOf(keyValuePair[1]);
+ }
+ else if(keyValuePair[0].equalsIgnoreCase("remote-host"))
+ {
+ remoteHost = keyValuePair[1];
+ }
+ else if (keyValuePair[0].equalsIgnoreCase("binary-messageid"))
+ {
+ binaryMessageId = Boolean.parseBoolean(keyValuePair[1]);
+ }
+ }
}
if(remoteHost == null)
@@ -184,7 +193,11 @@ public class ConnectionFactoryImpl imple
remoteHost = host;
}
- return new ConnectionFactoryImpl(host, port, username, password, clientId, remoteHost, ssl);
+ ConnectionFactoryImpl connectionFactory =
+ new ConnectionFactoryImpl(host, port, username, password, clientId, remoteHost, ssl);
+ connectionFactory.setUseBinaryMessageId(binaryMessageId);
+
+ return connectionFactory;
}
@@ -235,4 +248,9 @@ public class ConnectionFactoryImpl imple
{
_queuePrefix = queuePrefix;
}
+
+ public void setUseBinaryMessageId(boolean useBinaryMessageId)
+ {
+ _useBinaryMessageId = useBinaryMessageId;
+ }
}
Modified: qpid/branches/0.22/qpid/java/amqp-1-0-client-jms/src/main/java/org/apache/qpid/amqp_1_0/jms/impl/ConnectionImpl.java
URL: http://svn.apache.org/viewvc/qpid/branches/0.22/qpid/java/amqp-1-0-client-jms/src/main/java/org/apache/qpid/amqp_1_0/jms/impl/ConnectionImpl.java?rev=1482809&r1=1482808&r2=1482809&view=diff
==============================================================================
--- qpid/branches/0.22/qpid/java/amqp-1-0-client-jms/src/main/java/org/apache/qpid/amqp_1_0/jms/impl/ConnectionImpl.java (original)
+++ qpid/branches/0.22/qpid/java/amqp-1-0-client-jms/src/main/java/org/apache/qpid/amqp_1_0/jms/impl/ConnectionImpl.java Wed May 15 13:15:04 2013
@@ -56,7 +56,7 @@ public class ConnectionImpl implements C
private String _clientId;
private String _queuePrefix;
private String _topicPrefix;
-
+ private boolean _useBinaryMessageId = Boolean.parseBoolean(System.getProperty("qpid.use_binary_message_id", "true"));
private static enum State
{
@@ -163,6 +163,7 @@ public class ConnectionImpl implements C
connect();
started = true;
}
+
try
{
SessionImpl session = new SessionImpl(this, acknowledgeMode);
@@ -170,6 +171,11 @@ public class ConnectionImpl implements C
session.setTopicSession(_isTopicConnection);
_sessions.add(session);
+ if(_state == State.STARTED)
+ {
+ session.start();
+ }
+
return session;
}
catch(JMSException e)
@@ -191,9 +197,17 @@ public class ConnectionImpl implements C
throw e;
}
}
-
}
+
+ }
+
+ void removeSession(SessionImpl session)
+ {
+ synchronized (_lock)
+ {
+ _sessions.remove(session);
+ }
}
private void reconnect(String networkHost, int port, String hostName)
@@ -410,10 +424,7 @@ public class ConnectionImpl implements C
public boolean isStarted()
{
- synchronized (_lock)
- {
- return _state == State.STARTED;
- }
+ return _state == State.STARTED;
}
void setQueueConnection(final boolean queueConnection)
@@ -499,4 +510,15 @@ public class ConnectionImpl implements C
return new DecodedDestination(address, kind);
}
+ void setUseBinaryMessageId(boolean useBinaryMessageId)
+ {
+ _useBinaryMessageId = useBinaryMessageId;
+ }
+
+ boolean useBinaryMessageId()
+ {
+ return _useBinaryMessageId;
+ }
+
+
}
Modified: qpid/branches/0.22/qpid/java/amqp-1-0-client-jms/src/main/java/org/apache/qpid/amqp_1_0/jms/impl/MessageConsumerImpl.java
URL: http://svn.apache.org/viewvc/qpid/branches/0.22/qpid/java/amqp-1-0-client-jms/src/main/java/org/apache/qpid/amqp_1_0/jms/impl/MessageConsumerImpl.java?rev=1482809&r1=1482808&r2=1482809&view=diff
==============================================================================
--- qpid/branches/0.22/qpid/java/amqp-1-0-client-jms/src/main/java/org/apache/qpid/amqp_1_0/jms/impl/MessageConsumerImpl.java (original)
+++ qpid/branches/0.22/qpid/java/amqp-1-0-client-jms/src/main/java/org/apache/qpid/amqp_1_0/jms/impl/MessageConsumerImpl.java Wed May 15 13:15:04 2013
@@ -25,6 +25,7 @@ import java.util.HashMap;
import java.util.List;
import java.util.Map;
import javax.jms.Destination;
+import javax.jms.ExceptionListener;
import javax.jms.IllegalStateException;
import javax.jms.InvalidDestinationException;
import javax.jms.InvalidSelectorException;
@@ -117,6 +118,29 @@ public class MessageConsumerImpl impleme
_session = session;
_receiver = createClientReceiver();
+ _receiver.setRemoteErrorListener(new Runnable()
+ {
+ @Override
+ public void run()
+ {
+ try
+ {
+ final ExceptionListener exceptionListener = _session.getConnection().getExceptionListener();
+
+ if(exceptionListener != null)
+ {
+ final Error receiverError = _receiver.getError();
+ exceptionListener.onException(new JMSException(receiverError.getDescription(),
+ receiverError.getCondition().getValue().toString()));
+
+ }
+ }
+ catch (JMSException e)
+ {
+
+ }
+ }
+ });
}
@@ -125,8 +149,8 @@ public class MessageConsumerImpl impleme
{
try
{
- return _session.getClientSession(). createReceiver(_session.toAddress(_destination), AcknowledgeMode.ALO,
- _linkName, _durable, getFilters(), null);
+ return _session.getClientSession().createReceiver(_session.toAddress(_destination), AcknowledgeMode.ALO,
+ _linkName, _durable, getFilters(), null);
}
catch (ConnectionErrorException e)
{
@@ -188,15 +212,16 @@ public class MessageConsumerImpl impleme
{
checkClosed();
_messageListener = messageListener;
- _session.messageListenerSet( this );
_receiver.setMessageArrivalListener(new Receiver.MessageArrivalListener()
- {
+ {
+
+ public void messageArrived(final Receiver receiver)
+ {
+ _session.messageArrived(MessageConsumerImpl.this);
+ }
+ });
+ _session.messageListenerSet( this );
- public void messageArrived(final Receiver receiver)
- {
- _session.messageArrived(MessageConsumerImpl.this);
- }
- });
}
public MessageImpl receive() throws JMSException
@@ -219,12 +244,14 @@ public class MessageConsumerImpl impleme
return receiveImpl(0L);
}
- private MessageImpl receiveImpl(long timeout) throws IllegalStateException
+ private MessageImpl receiveImpl(long timeout) throws JMSException
{
+
org.apache.qpid.amqp_1_0.client.Message msg;
boolean redelivery;
if(_replaymessages.isEmpty())
{
+ checkReceiverError();
msg = receive0(timeout);
redelivery = false;
}
@@ -241,8 +268,21 @@ public class MessageConsumerImpl impleme
return createJMSMessage(msg, redelivery);
}
+ void checkReceiverError() throws JMSException
+ {
+ final Error receiverError = _receiver.getError();
+ if(receiverError != null)
+ {
+ JMSException jmsException =
+ new JMSException(receiverError.getDescription(), receiverError.getCondition().toString());
+
+ throw jmsException;
+ }
+ }
+
Message receive0(final long timeout)
{
+
Message message = _receiver.receive(timeout);
if(_session.getAckModeEnum() == Session.AcknowledgeMode.CLIENT_ACKNOWLEDGE)
{
Modified: qpid/branches/0.22/qpid/java/amqp-1-0-client-jms/src/main/java/org/apache/qpid/amqp_1_0/jms/impl/MessageProducerImpl.java
URL: http://svn.apache.org/viewvc/qpid/branches/0.22/qpid/java/amqp-1-0-client-jms/src/main/java/org/apache/qpid/amqp_1_0/jms/impl/MessageProducerImpl.java?rev=1482809&r1=1482808&r2=1482809&view=diff
==============================================================================
--- qpid/branches/0.22/qpid/java/amqp-1-0-client-jms/src/main/java/org/apache/qpid/amqp_1_0/jms/impl/MessageProducerImpl.java (original)
+++ qpid/branches/0.22/qpid/java/amqp-1-0-client-jms/src/main/java/org/apache/qpid/amqp_1_0/jms/impl/MessageProducerImpl.java Wed May 15 13:15:04 2013
@@ -19,17 +19,22 @@
package org.apache.qpid.amqp_1_0.jms.impl;
import org.apache.qpid.amqp_1_0.client.ConnectionClosedException;
+import org.apache.qpid.amqp_1_0.client.LinkDetachedException;
import org.apache.qpid.amqp_1_0.client.Sender;
import org.apache.qpid.amqp_1_0.jms.MessageProducer;
+import org.apache.qpid.amqp_1_0.jms.MessageRejectedException;
import org.apache.qpid.amqp_1_0.jms.QueueSender;
import org.apache.qpid.amqp_1_0.jms.TemporaryDestination;
import org.apache.qpid.amqp_1_0.jms.TopicPublisher;
import org.apache.qpid.amqp_1_0.type.Binary;
+import org.apache.qpid.amqp_1_0.type.Outcome;
import org.apache.qpid.amqp_1_0.type.UnsignedInteger;
import javax.jms.*;
import javax.jms.IllegalStateException;
import java.util.UUID;
+import org.apache.qpid.amqp_1_0.type.messaging.Accepted;
+import org.apache.qpid.amqp_1_0.type.transport.*;
public class MessageProducerImpl implements MessageProducer, QueueSender, TopicPublisher
{
@@ -43,6 +48,8 @@ public class MessageProducerImpl impleme
private SessionImpl _session;
private Sender _sender;
private boolean _closed;
+ private boolean _syncPublish = Boolean.getBoolean("qpid.sync_publish");
+ private long _syncPublishTimeout = Long.getLong("qpid.sync_publish_timeout", 30000l);
protected MessageProducerImpl(final Destination destination,
final SessionImpl session) throws JMSException
@@ -81,6 +88,29 @@ public class MessageProducerImpl impleme
jmsEx.setLinkedException(e);
throw jmsEx;
}
+ _sender.setRemoteErrorListener(new Runnable()
+ {
+ @Override
+ public void run()
+ {
+ try
+ {
+ final ExceptionListener exceptionListener = _session.getConnection().getExceptionListener();
+
+ if(exceptionListener != null)
+ {
+ final org.apache.qpid.amqp_1_0.type.transport.Error receiverError = _sender.getError();
+ exceptionListener.onException(new JMSException(receiverError.getDescription(),
+ receiverError.getCondition().getValue().toString()));
+
+ }
+ }
+ catch (JMSException e)
+ {
+
+ }
+ }
+ });
}
}
@@ -234,7 +264,7 @@ public class MessageProducerImpl impleme
if(!getDisableMessageID() && msg.getMessageId() == null)
{
- final Binary messageId = generateMessageId();
+ final Object messageId = generateMessageId();
msg.setMessageId(messageId);
}
@@ -251,7 +281,28 @@ public class MessageProducerImpl impleme
final org.apache.qpid.amqp_1_0.client.Message clientMessage = new org.apache.qpid.amqp_1_0.client.Message(msg.getSections());
- _sender.send(clientMessage, _session.getTxn());
+ DispositionAction action = null;
+
+ if(_syncPublish)
+ {
+ action = new DispositionAction(_sender);
+ }
+
+ try
+ {
+ _sender.send(clientMessage, _session.getTxn(), action);
+ }
+ catch (LinkDetachedException e)
+ {
+ JMSException jmsException = new InvalidDestinationException("Sender has been closed");
+ jmsException.setLinkedException(e);
+ throw jmsException;
+ }
+
+ if(_syncPublish && !action.wasAccepted(_syncPublishTimeout + System.currentTimeMillis()))
+ {
+ throw new MessageRejectedException("Message was rejected");
+ }
if(getDestination() != null)
{
@@ -270,10 +321,11 @@ public class MessageProducerImpl impleme
send((Destination)queue, message, deliveryMode, priority, ttl);
}
- private Binary generateMessageId()
+ private Object generateMessageId()
{
UUID uuid = UUID.randomUUID();
- return new Binary(uuid.toString().getBytes());
+ final String messageIdString = uuid.toString();
+ return _session.getConnection().useBinaryMessageId() ? new Binary(messageIdString.getBytes()) : messageIdString;
}
public void send(final Destination destination, final Message message) throws JMSException
@@ -377,4 +429,61 @@ public class MessageProducerImpl impleme
{
send(topic, message, deliveryMode, priority, ttl);
}
+
+ private static class DispositionAction implements Sender.OutcomeAction
+ {
+ private final Sender _sender;
+ private final Object _lock;
+ private Outcome _outcome;
+
+ public DispositionAction(Sender sender)
+ {
+ _sender = sender;
+ _lock = sender.getEndpoint().getLock();
+ }
+
+ @Override
+ public void onOutcome(Binary deliveryTag, Outcome outcome)
+ {
+ synchronized (_lock)
+ {
+ _outcome = outcome;
+ _lock.notifyAll();
+ }
+ }
+
+ public boolean wasAccepted(long timeout) throws JMSException
+ {
+ synchronized(_lock)
+ {
+ while(_outcome == null && !_sender.getEndpoint().isDetached())
+ {
+ try
+ {
+ _lock.wait(timeout - System.currentTimeMillis());
+ }
+ catch (InterruptedException e)
+ {
+ Thread.currentThread().interrupt();
+ }
+ }
+ if(_outcome == null)
+ {
+
+ if(_sender.getEndpoint().isDetached())
+ {
+ throw new JMSException("Link was detached");
+ }
+ else
+ {
+ throw new JMSException("Timed out waiting for message acceptance");
+ }
+ }
+ else
+ {
+ return _outcome instanceof Accepted;
+ }
+ }
+ }
+ }
}
Modified: qpid/branches/0.22/qpid/java/amqp-1-0-client-jms/src/main/java/org/apache/qpid/amqp_1_0/jms/impl/SessionImpl.java
URL: http://svn.apache.org/viewvc/qpid/branches/0.22/qpid/java/amqp-1-0-client-jms/src/main/java/org/apache/qpid/amqp_1_0/jms/impl/SessionImpl.java?rev=1482809&r1=1482808&r2=1482809&view=diff
==============================================================================
--- qpid/branches/0.22/qpid/java/amqp-1-0-client-jms/src/main/java/org/apache/qpid/amqp_1_0/jms/impl/SessionImpl.java (original)
+++ qpid/branches/0.22/qpid/java/amqp-1-0-client-jms/src/main/java/org/apache/qpid/amqp_1_0/jms/impl/SessionImpl.java Wed May 15 13:15:04 2013
@@ -21,10 +21,12 @@ package org.apache.qpid.amqp_1_0.jms.imp
import java.io.Serializable;
import java.util.ArrayList;
import java.util.Enumeration;
+import java.util.Iterator;
import java.util.List;
import java.util.UUID;
import javax.jms.BytesMessage;
import javax.jms.Destination;
+import javax.jms.ExceptionListener;
import javax.jms.IllegalStateException;
import javax.jms.InvalidDestinationException;
import javax.jms.JMSException;
@@ -52,9 +54,11 @@ import org.apache.qpid.amqp_1_0.jms.Temp
import org.apache.qpid.amqp_1_0.jms.TopicPublisher;
import org.apache.qpid.amqp_1_0.jms.TopicSession;
import org.apache.qpid.amqp_1_0.jms.TopicSubscriber;
+import org.apache.qpid.amqp_1_0.transport.SessionEventListener;
import org.apache.qpid.amqp_1_0.type.messaging.Source;
import org.apache.qpid.amqp_1_0.type.messaging.Target;
-import org.apache.qpid.amqp_1_0.type.transport.AmqpError;
+import org.apache.qpid.amqp_1_0.type.transport.*;
+import org.apache.qpid.amqp_1_0.type.transport.Error;
public class SessionImpl implements Session, QueueSession, TopicSession
{
@@ -90,6 +94,45 @@ public class SessionImpl implements Sess
jmsException.setLinkedException(e);
throw jmsException;
}
+ _session.getEndpoint().setSessionEventListener(new SessionEventListener.DefaultSessionEventListener()
+ {
+ @Override
+ public void remoteEnd(End end)
+ {
+ if(!_closed)
+ {
+ try
+ {
+ close();
+ }
+ catch (JMSException e)
+ {
+ }
+ try
+ {
+ final Error error = end.getError();
+ final ExceptionListener exceptionListener = _connection.getExceptionListener();
+ if(exceptionListener != null)
+ {
+ if(error != null)
+ {
+ exceptionListener.onException(new JMSException(error.getDescription(),
+ error.getCondition().getValue().toString()));
+ }
+ else
+ {
+ exceptionListener.onException(new JMSException("Session remotely closed"));
+ }
+ }
+ }
+ catch (JMSException e)
+ {
+
+ }
+
+ }
+ }
+ });
if(_acknowledgeMode == AcknowledgeMode.SESSION_TRANSACTED)
{
_txn = _session.createSessionLocalTransaction();
@@ -230,6 +273,7 @@ public class SessionImpl implements Sess
producer.close();
}
_session.close();
+ _connection.removeSession(this);
}
}
@@ -765,7 +809,6 @@ public class SessionImpl implements Sess
return _txn;
}
-
private class Dispatcher implements Runnable
{
@@ -816,7 +859,6 @@ public class SessionImpl implements Sess
msg = consumer.receive0(0L);
}
-
MessageListener listener = consumer._messageListener;
MessageImpl message = consumer.createJMSMessage(msg, recoveredMessage);
@@ -847,7 +889,28 @@ public class SessionImpl implements Sess
}
}
+ Iterator<MessageConsumerImpl> consumers = _consumers.iterator();
+ while(consumers.hasNext())
+ {
+ MessageConsumerImpl consumer = consumers.next();
+ try
+ {
+ consumer.checkReceiverError();
+ }
+ catch (JMSException e)
+ {
+ consumers.remove();
+ try
+ {
+ _connection.getExceptionListener().onException(e);
+ consumer.close();
+ }
+ catch (JMSException e1)
+ {
+ }
+ }
+ }
}
}
Modified: qpid/branches/0.22/qpid/java/amqp-1-0-client-jms/src/main/java/org/apache/qpid/amqp_1_0/jms/impl/TemporaryQueueImpl.java
URL: http://svn.apache.org/viewvc/qpid/branches/0.22/qpid/java/amqp-1-0-client-jms/src/main/java/org/apache/qpid/amqp_1_0/jms/impl/TemporaryQueueImpl.java?rev=1482809&r1=1482808&r2=1482809&view=diff
==============================================================================
--- qpid/branches/0.22/qpid/java/amqp-1-0-client-jms/src/main/java/org/apache/qpid/amqp_1_0/jms/impl/TemporaryQueueImpl.java (original)
+++ qpid/branches/0.22/qpid/java/amqp-1-0-client-jms/src/main/java/org/apache/qpid/amqp_1_0/jms/impl/TemporaryQueueImpl.java Wed May 15 13:15:04 2013
@@ -34,6 +34,7 @@ public class TemporaryQueueImpl extends
private SessionImpl _session;
private final Set<MessageConsumer> _consumers =
Collections.synchronizedSet(new HashSet<MessageConsumer>());
+ private boolean _deleted;
protected TemporaryQueueImpl(String address, Sender sender, SessionImpl session)
{
@@ -56,7 +57,8 @@ public class TemporaryQueueImpl extends
{
if(_consumers.isEmpty())
{
- close();
+ close();
+ _deleted = true;
}
else
{
@@ -100,6 +102,6 @@ public class TemporaryQueueImpl extends
public boolean isDeleted()
{
- return _sender == null;
+ return _deleted;
}
}
Modified: qpid/branches/0.22/qpid/java/amqp-1-0-client-jms/src/main/java/org/apache/qpid/amqp_1_0/jms/impl/TemporaryTopicImpl.java
URL: http://svn.apache.org/viewvc/qpid/branches/0.22/qpid/java/amqp-1-0-client-jms/src/main/java/org/apache/qpid/amqp_1_0/jms/impl/TemporaryTopicImpl.java?rev=1482809&r1=1482808&r2=1482809&view=diff
==============================================================================
--- qpid/branches/0.22/qpid/java/amqp-1-0-client-jms/src/main/java/org/apache/qpid/amqp_1_0/jms/impl/TemporaryTopicImpl.java (original)
+++ qpid/branches/0.22/qpid/java/amqp-1-0-client-jms/src/main/java/org/apache/qpid/amqp_1_0/jms/impl/TemporaryTopicImpl.java Wed May 15 13:15:04 2013
@@ -34,6 +34,7 @@ public class TemporaryTopicImpl extends
private SessionImpl _session;
private final Set<MessageConsumer> _consumers =
Collections.synchronizedSet(new HashSet<MessageConsumer>());
+ private boolean _deleted;
protected TemporaryTopicImpl(String address, Sender sender, SessionImpl session)
{
@@ -57,6 +58,7 @@ public class TemporaryTopicImpl extends
{
if(_consumers.isEmpty())
{
+ _deleted = true;
close();
}
else
@@ -105,6 +107,6 @@ public class TemporaryTopicImpl extends
public boolean isDeleted()
{
- return _sender == null;
+ return _deleted;
}
}
Modified: qpid/branches/0.22/qpid/java/amqp-1-0-client/example/src/main/java/org/apache/qpid/amqp_1_0/client/Demo.java
URL: http://svn.apache.org/viewvc/qpid/branches/0.22/qpid/java/amqp-1-0-client/example/src/main/java/org/apache/qpid/amqp_1_0/client/Demo.java?rev=1482809&r1=1482808&r2=1482809&view=diff
==============================================================================
--- qpid/branches/0.22/qpid/java/amqp-1-0-client/example/src/main/java/org/apache/qpid/amqp_1_0/client/Demo.java (original)
+++ qpid/branches/0.22/qpid/java/amqp-1-0-client/example/src/main/java/org/apache/qpid/amqp_1_0/client/Demo.java Wed May 15 13:15:04 2013
@@ -173,7 +173,14 @@ public class Demo extends Util
Section[] sections = { properties, appProperties, amqpValue};
final Message message1 = new Message(Arrays.asList(sections));
- s.send(message1);
+ try
+ {
+ s.send(message1);
+ }
+ catch (Exception e)
+ {
+ throw new RuntimeException(e);
+ }
Map<Object, Sender> sendingLinks = new HashMap<Object, Sender>();
Map<Object, Receiver> receivingLinks = new HashMap<Object, Receiver>();
@@ -295,7 +302,14 @@ public class Demo extends Util
m2propmap.put(VENDOR, vendor);
ApplicationProperties m2appProps = new ApplicationProperties(m2propmap);
Message m2 = new Message(Arrays.asList(m2props, m2appProps, new AmqpValue("AMQP-"+messageId)));
- sender.send(m2);
+ try
+ {
+ sender.send(m2);
+ }
+ catch (Exception e)
+ {
+ throw new RuntimeException(e);
+ }
Map m3propmap = new HashMap();
m3propmap.put(OPCODE, LOG);
@@ -307,8 +321,14 @@ public class Demo extends Util
Message m3 = new Message(Arrays.asList(new ApplicationProperties(m3propmap),
new AmqpValue("AMQP-"+messageId)));
- s.send(m3);
-
+ try
+ {
+ s.send(m3);
+ }
+ catch (Exception e)
+ {
+ throw new RuntimeException(e);
+ }
}
responseReceiver.acknowledge(m);
@@ -336,7 +356,14 @@ public class Demo extends Util
Message m3 = new Message(Arrays.asList(new ApplicationProperties(m3propmap),
new AmqpValue("AMQP-"+mp.getMessageId())));
- s.send(m3);
+ try
+ {
+ s.send(m3);
+ }
+ catch (Exception e)
+ {
+ throw new RuntimeException(e);
+ }
entry.getValue().acknowledge(m);
}
Modified: qpid/branches/0.22/qpid/java/amqp-1-0-client/example/src/main/java/org/apache/qpid/amqp_1_0/client/Dump.java
URL: http://svn.apache.org/viewvc/qpid/branches/0.22/qpid/java/amqp-1-0-client/example/src/main/java/org/apache/qpid/amqp_1_0/client/Dump.java?rev=1482809&r1=1482808&r2=1482809&view=diff
==============================================================================
--- qpid/branches/0.22/qpid/java/amqp-1-0-client/example/src/main/java/org/apache/qpid/amqp_1_0/client/Dump.java (original)
+++ qpid/branches/0.22/qpid/java/amqp-1-0-client/example/src/main/java/org/apache/qpid/amqp_1_0/client/Dump.java Wed May 15 13:15:04 2013
@@ -121,14 +121,7 @@ public class Dump extends Util
session.close();
conn.close();
- } catch (ConnectionException e)
- {
- e.printStackTrace(); //To change body of catch statement use File | Settings | File Templates.
- }
- catch (Sender.SenderCreationException e)
- {
- e.printStackTrace(); //To change body of catch statement use File | Settings | File Templates.
- } catch (Sender.SenderClosingException e)
+ } catch (Exception e)
{
e.printStackTrace(); //To change body of catch statement use File | Settings | File Templates.
}
Modified: qpid/branches/0.22/qpid/java/amqp-1-0-client/example/src/main/java/org/apache/qpid/amqp_1_0/client/Filesender.java
URL: http://svn.apache.org/viewvc/qpid/branches/0.22/qpid/java/amqp-1-0-client/example/src/main/java/org/apache/qpid/amqp_1_0/client/Filesender.java?rev=1482809&r1=1482808&r2=1482809&view=diff
==============================================================================
--- qpid/branches/0.22/qpid/java/amqp-1-0-client/example/src/main/java/org/apache/qpid/amqp_1_0/client/Filesender.java (original)
+++ qpid/branches/0.22/qpid/java/amqp-1-0-client/example/src/main/java/org/apache/qpid/amqp_1_0/client/Filesender.java Wed May 15 13:15:04 2013
@@ -248,27 +248,10 @@ public class Filesender extends Util
session.close();
conn.close();
}
- catch (ConnectionException e)
+ catch (Exception e)
{
e.printStackTrace();
}
- catch (Sender.SenderCreationException e)
- {
- e.printStackTrace();
- } catch (FileNotFoundException e)
- {
- e.printStackTrace();
- } catch (IOException e)
- {
- e.printStackTrace(); //To change body of catch statement use File | Settings | File Templates.
- } catch (NoSuchAlgorithmException e)
- {
- e.printStackTrace(); //To change body of catch statement use File | Settings | File Templates.
- } catch (Sender.SenderClosingException e)
- {
- e.printStackTrace(); //To change body of catch statement use File | Settings | File Templates.
- }
-
}
private Message createMessageFromFile(MessageDigest md5, String fileName, File file) throws IOException
Modified: qpid/branches/0.22/qpid/java/amqp-1-0-client/example/src/main/java/org/apache/qpid/amqp_1_0/client/Request.java
URL: http://svn.apache.org/viewvc/qpid/branches/0.22/qpid/java/amqp-1-0-client/example/src/main/java/org/apache/qpid/amqp_1_0/client/Request.java?rev=1482809&r1=1482808&r2=1482809&view=diff
==============================================================================
--- qpid/branches/0.22/qpid/java/amqp-1-0-client/example/src/main/java/org/apache/qpid/amqp_1_0/client/Request.java (original)
+++ qpid/branches/0.22/qpid/java/amqp-1-0-client/example/src/main/java/org/apache/qpid/amqp_1_0/client/Request.java Wed May 15 13:15:04 2013
@@ -216,23 +216,10 @@ public class Request extends Util
conn2.close();
}
}
- catch (ConnectionException e)
+ catch (Exception e)
{
e.printStackTrace(); //TODO.
}
- catch (Sender.SenderClosingException e)
- {
- e.printStackTrace(); //TODO.
- }
- catch (Sender.SenderCreationException e)
- {
- e.printStackTrace(); //TODO.
- }
- catch (AmqpErrorException e)
- {
- e.printStackTrace(); //TODO.
- }
-
}
protected boolean hasSingleLinkPerConnectionMode()
Modified: qpid/branches/0.22/qpid/java/amqp-1-0-client/example/src/main/java/org/apache/qpid/amqp_1_0/client/Respond.java
URL: http://svn.apache.org/viewvc/qpid/branches/0.22/qpid/java/amqp-1-0-client/example/src/main/java/org/apache/qpid/amqp_1_0/client/Respond.java?rev=1482809&r1=1482808&r2=1482809&view=diff
==============================================================================
--- qpid/branches/0.22/qpid/java/amqp-1-0-client/example/src/main/java/org/apache/qpid/amqp_1_0/client/Respond.java (original)
+++ qpid/branches/0.22/qpid/java/amqp-1-0-client/example/src/main/java/org/apache/qpid/amqp_1_0/client/Respond.java Wed May 15 13:15:04 2013
@@ -274,21 +274,13 @@ public class Respond extends Util
_conn.close();
System.out.println("Received: " + receivedCount);
}
- catch (ConnectionException e)
- {
- e.printStackTrace(); //TODO.
- }
- catch (Sender.SenderClosingException e)
- {
- e.printStackTrace(); //TODO.
- }
- catch (Sender.SenderCreationException e)
+ catch (Exception e)
{
e.printStackTrace(); //TODO.
}
}
- private void respond(Message m) throws Sender.SenderCreationException, ConnectionClosedException
+ private void respond(Message m) throws Sender.SenderCreationException, ConnectionClosedException, LinkDetachedException
{
List<Section> sections = m.getPayload();
String replyTo = null;
Modified: qpid/branches/0.22/qpid/java/amqp-1-0-client/example/src/main/java/org/apache/qpid/amqp_1_0/client/Send.java
URL: http://svn.apache.org/viewvc/qpid/branches/0.22/qpid/java/amqp-1-0-client/example/src/main/java/org/apache/qpid/amqp_1_0/client/Send.java?rev=1482809&r1=1482808&r2=1482809&view=diff
==============================================================================
--- qpid/branches/0.22/qpid/java/amqp-1-0-client/example/src/main/java/org/apache/qpid/amqp_1_0/client/Send.java (original)
+++ qpid/branches/0.22/qpid/java/amqp-1-0-client/example/src/main/java/org/apache/qpid/amqp_1_0/client/Send.java Wed May 15 13:15:04 2013
@@ -219,19 +219,10 @@ public class Send extends Util
session.close();
conn.close();
}
- catch (Sender.SenderClosingException e)
+ catch (Exception e)
{
e.printStackTrace(); //TODO.
}
- catch (ConnectionException e)
- {
- e.printStackTrace(); //TODO.
- }
- catch (Sender.SenderCreationException e)
- {
- e.printStackTrace(); //TODO.
- }
-
}
Modified: qpid/branches/0.22/qpid/java/amqp-1-0-client/src/main/java/org/apache/qpid/amqp_1_0/client/Receiver.java
URL: http://svn.apache.org/viewvc/qpid/branches/0.22/qpid/java/amqp-1-0-client/src/main/java/org/apache/qpid/amqp_1_0/client/Receiver.java?rev=1482809&r1=1482808&r2=1482809&view=diff
==============================================================================
--- qpid/branches/0.22/qpid/java/amqp-1-0-client/src/main/java/org/apache/qpid/amqp_1_0/client/Receiver.java (original)
+++ qpid/branches/0.22/qpid/java/amqp-1-0-client/src/main/java/org/apache/qpid/amqp_1_0/client/Receiver.java Wed May 15 13:15:04 2013
@@ -50,6 +50,7 @@ public class Receiver implements Deliver
private Map<Binary, SettledAction> _unsettledMap = new HashMap<Binary, SettledAction>();
private MessageArrivalListener _messageArrivalListener;
private org.apache.qpid.amqp_1_0.type.transport.Error _error;
+ private Runnable _remoteErrorTask;
public Receiver(final Session session,
final String linkName,
@@ -125,6 +126,10 @@ public class Receiver implements Deliver
public void remoteDetached(final LinkEndpoint endpoint, final Detach detach)
{
_error = detach.getError();
+ if(detach.getError()!=null)
+ {
+ remoteError();
+ }
super.remoteDetached(endpoint, detach);
}
});
@@ -171,6 +176,14 @@ public class Receiver implements Deliver
}
}
+ private void remoteError()
+ {
+ if(_remoteErrorTask != null)
+ {
+ _remoteErrorTask.run();
+ }
+ }
+
private void postPrefetchAction()
{
if(_messageArrivalListener != null)
@@ -566,6 +579,11 @@ public class Receiver implements Deliver
synchronized(_endpoint.getLock())
{
_messageArrivalListener = messageArrivalListener;
+ int prefetchSize = _prefetchQueue.size();
+ for(int i = 0; i < prefetchSize; i++)
+ {
+ postPrefetchAction();
+ }
}
}
@@ -590,4 +608,8 @@ public class Receiver implements Deliver
void messageArrived(Receiver receiver);
}
+ public void setRemoteErrorListener(Runnable listener)
+ {
+ _remoteErrorTask = listener;
+ }
}
Modified: qpid/branches/0.22/qpid/java/amqp-1-0-client/src/main/java/org/apache/qpid/amqp_1_0/client/Sender.java
URL: http://svn.apache.org/viewvc/qpid/branches/0.22/qpid/java/amqp-1-0-client/src/main/java/org/apache/qpid/amqp_1_0/client/Sender.java?rev=1482809&r1=1482808&r2=1482809&view=diff
==============================================================================
--- qpid/branches/0.22/qpid/java/amqp-1-0-client/src/main/java/org/apache/qpid/amqp_1_0/client/Sender.java (original)
+++ qpid/branches/0.22/qpid/java/amqp-1-0-client/src/main/java/org/apache/qpid/amqp_1_0/client/Sender.java Wed May 15 13:15:04 2013
@@ -22,7 +22,9 @@ package org.apache.qpid.amqp_1_0.client;
import org.apache.qpid.amqp_1_0.messaging.SectionEncoder;
import org.apache.qpid.amqp_1_0.transport.DeliveryStateHandler;
+import org.apache.qpid.amqp_1_0.transport.LinkEndpoint;
import org.apache.qpid.amqp_1_0.transport.SendingLinkEndpoint;
+import org.apache.qpid.amqp_1_0.transport.SendingLinkListener;
import org.apache.qpid.amqp_1_0.type.*;
import org.apache.qpid.amqp_1_0.type.Source;
import org.apache.qpid.amqp_1_0.type.Target;
@@ -35,6 +37,7 @@ import java.util.Collections;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
+import org.apache.qpid.amqp_1_0.type.transport.Error;
public class Sender implements DeliveryStateHandler
{
@@ -44,6 +47,8 @@ public class Sender implements DeliveryS
private int _windowSize;
private Map<Binary, OutcomeAction> _outcomeActions = Collections.synchronizedMap(new HashMap<Binary, OutcomeAction>());
private boolean _closed;
+ private Error _error;
+ private Runnable _remoteErrorTask;
public Sender(final Session session, final String linkName, final String targetAddr, final String sourceAddr)
throws SenderCreationException, ConnectionClosedException
@@ -166,6 +171,21 @@ public class Sender implements DeliveryS
throw new SenderCreationException("Peer did not create remote endpoint for link, target: " + target.getAddress());
};
}
+
+ _endpoint.setLinkEventListener(new SendingLinkListener.DefaultLinkEventListener()
+ {
+
+ @Override
+ public void remoteDetached(final LinkEndpoint endpoint, final Detach detach)
+ {
+ _error = detach.getError();
+ if(_error != null)
+ {
+ remoteError();
+ }
+ super.remoteDetached(endpoint, detach);
+ }
+ });
}
public Source getSource()
@@ -178,22 +198,22 @@ public class Sender implements DeliveryS
return _endpoint.getTarget();
}
- public void send(Message message)
+ public void send(Message message) throws LinkDetachedException
{
send(message, null, null);
}
- public void send(Message message, final OutcomeAction action)
+ public void send(Message message, final OutcomeAction action) throws LinkDetachedException
{
send(message, null, action);
}
- public void send(Message message, final Transaction txn)
+ public void send(Message message, final Transaction txn) throws LinkDetachedException
{
send(message, txn, null);
}
- public void send(Message message, final Transaction txn, OutcomeAction action)
+ public void send(Message message, final Transaction txn, OutcomeAction action) throws LinkDetachedException
{
List<Section> sections = message.getPayload();
@@ -245,7 +265,7 @@ public class Sender implements DeliveryS
final Object lock = _endpoint.getLock();
synchronized(lock)
{
- while(!_endpoint.hasCreditToSend())
+ while(!_endpoint.hasCreditToSend() && !_endpoint.isDetached())
{
try
{
@@ -256,6 +276,10 @@ public class Sender implements DeliveryS
e.printStackTrace(); //To change body of catch statement use File | Settings | File Templates.
}
}
+ if(_endpoint.isDetached())
+ {
+ throw new LinkDetachedException(_error);
+ }
if(action != null)
{
_outcomeActions.put(message.getDeliveryTag(), action);
@@ -352,6 +376,21 @@ public class Sender implements DeliveryS
_endpoint.updateDisposition(deliveryTag, state, true);
}
}
+ else if(state instanceof TransactionalState)
+ {
+ OutcomeAction action;
+
+ if((action = _outcomeActions.remove(deliveryTag)) != null)
+ {
+ action.onOutcome(deliveryTag, ((TransactionalState) state).getOutcome());
+ }
+
+ }
+ }
+
+ public SendingLinkEndpoint getEndpoint()
+ {
+ return _endpoint;
}
public Map<Binary, DeliveryState> getRemoteUnsettled()
@@ -364,6 +403,26 @@ public class Sender implements DeliveryS
return _session;
}
+
+ private void remoteError()
+ {
+ if(_remoteErrorTask != null)
+ {
+ _remoteErrorTask.run();
+ }
+ }
+
+
+ public void setRemoteErrorListener(Runnable listener)
+ {
+ _remoteErrorTask = listener;
+ }
+
+ public Error getError()
+ {
+ return _error;
+ }
+
public class SenderCreationException extends Exception
{
public SenderCreationException(Throwable e)
Propchange: qpid/branches/0.22/qpid/java/amqp-1-0-common/
------------------------------------------------------------------------------
Merged /qpid/trunk/qpid/java/amqp-1-0-common:r1480584,1481290,1481321,1482609,1482729,1482770
Modified: qpid/branches/0.22/qpid/java/amqp-1-0-common/src/main/java/org/apache/qpid/amqp_1_0/codec/CompoundWriter.java
URL: http://svn.apache.org/viewvc/qpid/branches/0.22/qpid/java/amqp-1-0-common/src/main/java/org/apache/qpid/amqp_1_0/codec/CompoundWriter.java?rev=1482809&r1=1482808&r2=1482809&view=diff
==============================================================================
--- qpid/branches/0.22/qpid/java/amqp-1-0-common/src/main/java/org/apache/qpid/amqp_1_0/codec/CompoundWriter.java (original)
+++ qpid/branches/0.22/qpid/java/amqp-1-0-common/src/main/java/org/apache/qpid/amqp_1_0/codec/CompoundWriter.java Wed May 15 13:15:04 2013
@@ -31,7 +31,6 @@ public abstract class CompoundWriter<V>
private Registry _registry;
private static final int LARGE_COMPOUND_THRESHOLD_COUNT = 25;
private ValueWriter _delegate;
- private Map<Class, ValueWriter> _writerCache = new HashMap<Class, ValueWriter>();
public CompoundWriter(final Registry registry)
{
@@ -305,7 +304,7 @@ public abstract class CompoundWriter<V>
for(int i = 0; i < getCount(); i++)
{
Object val = next();
- ValueWriter writer = _registry.getValueWriter(val, _writerCache);
+ ValueWriter writer = _registry.getValueWriter(val);
if(writer == null)
{
// TODO
Modified: qpid/branches/0.22/qpid/java/amqp-1-0-common/src/main/java/org/apache/qpid/amqp_1_0/codec/UnsignedLongWriter.java
URL: http://svn.apache.org/viewvc/qpid/branches/0.22/qpid/java/amqp-1-0-common/src/main/java/org/apache/qpid/amqp_1_0/codec/UnsignedLongWriter.java?rev=1482809&r1=1482808&r2=1482809&view=diff
==============================================================================
--- qpid/branches/0.22/qpid/java/amqp-1-0-common/src/main/java/org/apache/qpid/amqp_1_0/codec/UnsignedLongWriter.java (original)
+++ qpid/branches/0.22/qpid/java/amqp-1-0-common/src/main/java/org/apache/qpid/amqp_1_0/codec/UnsignedLongWriter.java Wed May 15 13:15:04 2013
@@ -127,7 +127,7 @@ public class UnsignedLongWriter implemen
{
_delegate = _zeroByteWriter;
}
- else if(ulong.compareTo(UnsignedLong.valueOf(256))<0)
+ else if((ulong.longValue() & 0xffL) == ulong.longValue())
{
_delegate = _oneByteWriter;
}
Modified: qpid/branches/0.22/qpid/java/amqp-1-0-common/src/main/java/org/apache/qpid/amqp_1_0/type/codec/AMQPDescribedTypeRegistry.java
URL: http://svn.apache.org/viewvc/qpid/branches/0.22/qpid/java/amqp-1-0-common/src/main/java/org/apache/qpid/amqp_1_0/type/codec/AMQPDescribedTypeRegistry.java?rev=1482809&r1=1482808&r2=1482809&view=diff
==============================================================================
--- qpid/branches/0.22/qpid/java/amqp-1-0-common/src/main/java/org/apache/qpid/amqp_1_0/type/codec/AMQPDescribedTypeRegistry.java (original)
+++ qpid/branches/0.22/qpid/java/amqp-1-0-common/src/main/java/org/apache/qpid/amqp_1_0/type/codec/AMQPDescribedTypeRegistry.java Wed May 15 13:15:04 2013
@@ -298,102 +298,71 @@ public class AMQPDescribedTypeRegistry i
private final Map<Class, ValueWriter.Factory> _writerMap = new HashMap<Class, ValueWriter.Factory>();
- private final Map<Class, ValueWriter> _cachedWriters = new HashMap<Class,ValueWriter>();
public <V extends Object> ValueWriter<V> getValueWriter(V value, Map<Class, ValueWriter> localCache)
{
- Class<? extends Object> clazz = value == null ? Void.TYPE : value.getClass();
- ValueWriter writer = null; // TODO localCache.get(clazz);
- if(writer == null || !writer.isComplete())
- {
- writer = getValueWriter(value);
- localCache.put(clazz, writer);
- }
- else
- {
- writer.setValue(value);
- }
+ return getValueWriter(value);
-
- return writer;
}
public <V extends Object> ValueWriter<V> getValueWriter(V value)
{
+ ValueWriter writer;
Class<? extends Object> clazz = value == null ? Void.TYPE : value.getClass();
- ValueWriter writer = null; // TODO _cachedWriters.get(clazz);
- if(writer == null || !writer.isComplete())
+ ValueWriter.Factory<V> factory = (ValueWriter.Factory<V>) (_writerMap.get(clazz));
+
+ if(factory == null)
{
- ValueWriter.Factory<V> factory = (ValueWriter.Factory<V>) (_writerMap.get(clazz));
+ if(value instanceof List)
+ {
+ factory = _writerMap.get(List.class);
+ _writerMap.put(value.getClass(), factory);
+ writer = factory.newInstance(this);
+ writer.setValue(value);
- if(factory == null)
+ }
+ else if(value instanceof Map)
{
- if(value instanceof List)
- {
- factory = _writerMap.get(List.class);
- _writerMap.put(value.getClass(), factory);
- writer = factory.newInstance(this);
- if(writer.isCacheable())
- {
- _cachedWriters.put(clazz, writer);
- }
- writer.setValue(value);
+ factory = _writerMap.get(Map.class);
+ _writerMap.put(value.getClass(), factory);
+ writer = factory.newInstance(this);
+ writer.setValue(value);
- }
- else if(value instanceof Map)
+ }
+ else if(value.getClass().isArray())
+ {
+ if(RestrictedType.class.isAssignableFrom(value.getClass().getComponentType()))
{
- factory = _writerMap.get(Map.class);
- _writerMap.put(value.getClass(), factory);
- writer = factory.newInstance(this);
- if(writer.isCacheable())
+ RestrictedType[] restrictedTypes = (RestrictedType[]) value;
+ Object[] newVals = (Object[]) Array.newInstance(restrictedTypes[0].getValue().getClass(),
+ restrictedTypes.length);
+ for(int i = 0; i < restrictedTypes.length; i++)
{
- _cachedWriters.put(clazz, writer);
+ newVals[i] = restrictedTypes[i].getValue();
}
- writer.setValue(value);
-
+ return (ValueWriter<V>) getValueWriter(newVals);
}
- else if(value.getClass().isArray())
- {
- if(RestrictedType.class.isAssignableFrom(value.getClass().getComponentType()))
- {
- RestrictedType[] restrictedTypes = (RestrictedType[]) value;
- Object[] newVals = (Object[]) Array.newInstance(restrictedTypes[0].getValue().getClass(),
- restrictedTypes.length);
- for(int i = 0; i < restrictedTypes.length; i++)
- {
- newVals[i] = restrictedTypes[i].getValue();
- }
- return (ValueWriter<V>) getValueWriter(newVals);
- }
- // TODO primitive array types
- factory = _writerMap.get(List.class);
- writer = factory.newInstance(this);
- writer.setValue(Arrays.asList((Object[])value));
+ // TODO primitive array types
+ factory = _writerMap.get(List.class);
+ writer = factory.newInstance(this);
+ writer.setValue(Arrays.asList((Object[])value));
- }
- else
- {
- return null;
- }
}
else
{
- writer = factory.newInstance(this);
- if(writer.isCacheable())
- {
- _cachedWriters.put(clazz, writer);
- }
- writer.setValue(value);
+ return null;
}
}
else
{
+ writer = factory.newInstance(this);
writer.setValue(value);
}
+
return writer;
}
Propchange: qpid/branches/0.22/qpid/java/broker/
------------------------------------------------------------------------------
Merged /qpid/trunk/qpid/java/broker:r1480584,1481290,1481321,1482609,1482729,1482770
Propchange: qpid/branches/0.22/qpid/java/broker/bin/
------------------------------------------------------------------------------
Merged /qpid/trunk/qpid/java/broker/bin:r1480584,1481290,1481321,1482609,1482729,1482770
Propchange: qpid/branches/0.22/qpid/java/broker/src/main/java/org/apache/qpid/server/message/MessageMetaData_1_0.java
------------------------------------------------------------------------------
Merged /qpid/trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/message/MessageMetaData_1_0.java:r1480584,1481290,1481321,1482609,1482729,1482770
Propchange: qpid/branches/0.22/qpid/java/broker/src/main/java/org/apache/qpid/server/protocol/ProtocolEngine_1_0_0.java
------------------------------------------------------------------------------
Merged /qpid/trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/protocol/ProtocolEngine_1_0_0.java:r1480584,1481290,1481321,1482609,1482729,1482770
Propchange: qpid/branches/0.22/qpid/java/broker/src/main/java/org/apache/qpid/server/protocol/ProtocolEngine_1_0_0_SASL.java
------------------------------------------------------------------------------
Merged /qpid/trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/protocol/ProtocolEngine_1_0_0_SASL.java:r1480584,1481290,1481321,1482609,1482729,1482770
Propchange: qpid/branches/0.22/qpid/java/broker/src/main/java/org/apache/qpid/server/protocol/v1_0/
------------------------------------------------------------------------------
Merged /qpid/trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/protocol/v1_0:r1480584,1481290,1481321,1482609,1482729,1482770
Propchange: qpid/branches/0.22/qpid/java/broker/src/main/java/org/apache/qpid/server/queue/
------------------------------------------------------------------------------
Merged /qpid/trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/queue:r1480584,1481290,1481321,1482609,1482729,1482770
Propchange: qpid/branches/0.22/qpid/java/broker/src/main/java/org/apache/qpid/server/store/AbstractJDBCMessageStore.java
------------------------------------------------------------------------------
Merged /qpid/trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/store/AbstractJDBCMessageStore.java:r1480584,1481290,1481321,1482609,1482729,1482770
Propchange: qpid/branches/0.22/qpid/java/broker/src/main/java/org/apache/qpid/server/virtualhost/
------------------------------------------------------------------------------
Merged /qpid/trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/virtualhost:r1480584,1481290,1481321,1482609,1482729,1482770
Propchange: qpid/branches/0.22/qpid/java/management/common/src/main/java/org/apache/qpid/management/common/mbeans/LoggingManagement.java
------------------------------------------------------------------------------
Merged /qpid/trunk/qpid/java/management/common/src/main/java/org/apache/qpid/management/common/mbeans/LoggingManagement.java:r1480584,1481290,1481321,1482609,1482729,1482770
Propchange: qpid/branches/0.22/qpid/java/management/common/src/main/java/org/apache/qpid/management/common/mbeans/ManagedBroker.java
------------------------------------------------------------------------------
Merged /qpid/trunk/qpid/java/management/common/src/main/java/org/apache/qpid/management/common/mbeans/ManagedBroker.java:r1480584,1481290,1481321,1482609,1482729,1482770
Propchange: qpid/branches/0.22/qpid/java/management/common/src/main/java/org/apache/qpid/management/common/mbeans/ManagedConnection.java
------------------------------------------------------------------------------
Merged /qpid/trunk/qpid/java/management/common/src/main/java/org/apache/qpid/management/common/mbeans/ManagedConnection.java:r1480584,1481290,1481321,1482609,1482729,1482770
Propchange: qpid/branches/0.22/qpid/java/management/common/src/main/java/org/apache/qpid/management/common/mbeans/ManagedExchange.java
------------------------------------------------------------------------------
Merged /qpid/trunk/qpid/java/management/common/src/main/java/org/apache/qpid/management/common/mbeans/ManagedExchange.java:r1480584,1481290,1481321,1482609,1482729,1482770
Propchange: qpid/branches/0.22/qpid/java/management/common/src/main/java/org/apache/qpid/management/common/mbeans/ManagedQueue.java
------------------------------------------------------------------------------
Merged /qpid/trunk/qpid/java/management/common/src/main/java/org/apache/qpid/management/common/mbeans/ManagedQueue.java:r1480584,1481290,1481321,1482609,1482729,1482770
Propchange: qpid/branches/0.22/qpid/java/management/common/src/main/java/org/apache/qpid/management/common/mbeans/UserManagement.java
------------------------------------------------------------------------------
Merged /qpid/trunk/qpid/java/management/common/src/main/java/org/apache/qpid/management/common/mbeans/UserManagement.java:r1480584,1481290,1481321,1482609,1482729,1482770
Propchange: qpid/branches/0.22/qpid/java/management/common/src/main/java/org/apache/qpid/management/common/mbeans/annotations/MBeanAttribute.java
------------------------------------------------------------------------------
Merged /qpid/trunk/qpid/java/management/common/src/main/java/org/apache/qpid/management/common/mbeans/annotations/MBeanAttribute.java:r1480584,1481290,1481321,1482609,1482729,1482770
Propchange: qpid/branches/0.22/qpid/java/management/common/src/main/java/org/apache/qpid/management/common/mbeans/annotations/MBeanConstructor.java
------------------------------------------------------------------------------
Merged /qpid/trunk/qpid/java/management/common/src/main/java/org/apache/qpid/management/common/mbeans/annotations/MBeanConstructor.java:r1480584,1481290,1481321,1482609,1482729,1482770
Propchange: qpid/branches/0.22/qpid/java/management/common/src/main/java/org/apache/qpid/management/common/mbeans/annotations/MBeanDescription.java
------------------------------------------------------------------------------
Merged /qpid/trunk/qpid/java/management/common/src/main/java/org/apache/qpid/management/common/mbeans/annotations/MBeanDescription.java:r1480584,1481290,1481321,1482609,1482729,1482770
Propchange: qpid/branches/0.22/qpid/java/management/common/src/main/java/org/apache/qpid/management/common/mbeans/annotations/MBeanOperation.java
------------------------------------------------------------------------------
Merged /qpid/trunk/qpid/java/management/common/src/main/java/org/apache/qpid/management/common/mbeans/annotations/MBeanOperation.java:r1480584,1481290,1481321,1482609,1482729,1482770
Propchange: qpid/branches/0.22/qpid/java/management/common/src/main/java/org/apache/qpid/management/common/mbeans/annotations/MBeanOperationParameter.java
------------------------------------------------------------------------------
Merged /qpid/trunk/qpid/java/management/common/src/main/java/org/apache/qpid/management/common/mbeans/annotations/MBeanOperationParameter.java:r1480584,1481290,1481321,1482609,1482729,1482770
Propchange: qpid/branches/0.22/qpid/java/perftests/etc/
------------------------------------------------------------------------------
Merged /qpid/trunk/qpid/java/perftests/etc:r1480584,1481290,1481321,1482609,1482729,1482770
Propchange: qpid/branches/0.22/qpid/java/systests/src/main/java/org/apache/qpid/server/SupportedProtocolVersionsTest.java
------------------------------------------------------------------------------
Merged /qpid/trunk/qpid/java/systests/src/main/java/org/apache/qpid/server/SupportedProtocolVersionsTest.java:r1480584,1481290,1481321,1482609,1482729,1482770
Propchange: qpid/branches/0.22/qpid/java/systests/src/main/java/org/apache/qpid/test/utils/QpidBrokerTestCase.java
------------------------------------------------------------------------------
Merged /qpid/trunk/qpid/java/systests/src/main/java/org/apache/qpid/test/utils/QpidBrokerTestCase.java:r1480584,1481290,1481321,1482609,1482729,1482770
Propchange: qpid/branches/0.22/qpid/java/test-profiles/
------------------------------------------------------------------------------
Merged /qpid/trunk/qpid/java/test-profiles:r1480584,1481290,1481321,1482609,1482729,1482770
Propchange: qpid/branches/0.22/qpid/java/test-profiles/CPPExcludes
------------------------------------------------------------------------------
Merged /qpid/trunk/qpid/java/test-profiles/CPPExcludes:r1480584,1481290,1481321,1482609,1482729,1482770
Propchange: qpid/branches/0.22/qpid/java/test-profiles/Excludes
------------------------------------------------------------------------------
Merged /qpid/trunk/qpid/java/test-profiles/Excludes:r1480584,1481290,1481321,1482609,1482729,1482770
Propchange: qpid/branches/0.22/qpid/java/test-profiles/JavaBDBExcludes
------------------------------------------------------------------------------
Merged /qpid/trunk/qpid/java/test-profiles/JavaBDBExcludes:r1480584,1481290,1481321,1482609,1482729,1482770
Propchange: qpid/branches/0.22/qpid/java/test-profiles/JavaExcludes
------------------------------------------------------------------------------
Merged /qpid/trunk/qpid/java/test-profiles/JavaExcludes:r1480584,1481290,1481321,1482609,1482729,1482770
Propchange: qpid/branches/0.22/qpid/java/test-profiles/JavaPre010Excludes
------------------------------------------------------------------------------
Merged /qpid/trunk/qpid/java/test-profiles/JavaPre010Excludes:r1480584,1481290,1481321,1482609,1482729,1482770
Propchange: qpid/branches/0.22/qpid/java/test-profiles/JavaTransientExcludes
------------------------------------------------------------------------------
Merged /qpid/trunk/qpid/java/test-profiles/JavaTransientExcludes:r1480584,1481290,1481321,1482609,1482729,1482770
Propchange: qpid/branches/0.22/qpid/java/test-profiles/XAExcludes
------------------------------------------------------------------------------
Merged /qpid/trunk/qpid/java/test-profiles/XAExcludes:r1480584,1481290,1481321,1482609,1482729,1482770
Propchange: qpid/branches/0.22/qpid/java/test-profiles/cpp.async.testprofile
------------------------------------------------------------------------------
Merged /qpid/trunk/qpid/java/test-profiles/cpp.async.testprofile:r1480584,1481290,1481321,1482609,1482729,1482770
Propchange: qpid/branches/0.22/qpid/java/test-profiles/cpp.cluster.testprofile
------------------------------------------------------------------------------
Merged /qpid/trunk/qpid/java/test-profiles/cpp.cluster.testprofile:r1480584,1481290,1481321,1482609,1482729,1482770
Propchange: qpid/branches/0.22/qpid/java/test-profiles/cpp.noprefetch.testprofile
------------------------------------------------------------------------------
Merged /qpid/trunk/qpid/java/test-profiles/cpp.noprefetch.testprofile:r1480584,1481290,1481321,1482609,1482729,1482770
Propchange: qpid/branches/0.22/qpid/java/test-profiles/cpp.ssl.excludes
------------------------------------------------------------------------------
Merged /qpid/trunk/qpid/java/test-profiles/cpp.ssl.excludes:r1480584,1481290,1481321,1482609,1482729,1482770
Propchange: qpid/branches/0.22/qpid/java/test-profiles/cpp.ssl.testprofile
------------------------------------------------------------------------------
Merged /qpid/trunk/qpid/java/test-profiles/cpp.ssl.testprofile:r1480584,1481290,1481321,1482609,1482729,1482770
Propchange: qpid/branches/0.22/qpid/java/test-profiles/cpp.testprofile
------------------------------------------------------------------------------
Merged /qpid/trunk/qpid/java/test-profiles/cpp.testprofile:r1480584,1481290,1481321,1482609,1482729,1482770
Propchange: qpid/branches/0.22/qpid/java/test-profiles/java-bdb-spawn.0-9-1.testprofile
------------------------------------------------------------------------------
Merged /qpid/trunk/qpid/java/test-profiles/java-bdb-spawn.0-9-1.testprofile:r1480584,1481290,1481321,1482609,1482729,1482770
Propchange: qpid/branches/0.22/qpid/java/test-profiles/java-bdb.0-9-1.testprofile
------------------------------------------------------------------------------
Merged /qpid/trunk/qpid/java/test-profiles/java-bdb.0-9-1.testprofile:r1480584,1481290,1481321,1482609,1482729,1482770
Propchange: qpid/branches/0.22/qpid/java/test-profiles/java-dby-spawn.0-9-1.testprofile
------------------------------------------------------------------------------
Merged /qpid/trunk/qpid/java/test-profiles/java-dby-spawn.0-9-1.testprofile:r1480584,1481290,1481321,1482609,1482729,1482770
Propchange: qpid/branches/0.22/qpid/java/test-profiles/java-dby.0-9-1.testprofile
------------------------------------------------------------------------------
Merged /qpid/trunk/qpid/java/test-profiles/java-dby.0-9-1.testprofile:r1480584,1481290,1481321,1482609,1482729,1482770
Propchange: qpid/branches/0.22/qpid/java/test-profiles/java-mms-spawn.0-10.testprofile
------------------------------------------------------------------------------
Merged /qpid/trunk/qpid/java/test-profiles/java-mms-spawn.0-10.testprofile:r1480584,1481290,1481321,1482609,1482729,1482770
Propchange: qpid/branches/0.22/qpid/java/test-profiles/java-mms-spawn.0-9-1.testprofile
------------------------------------------------------------------------------
Merged /qpid/trunk/qpid/java/test-profiles/java-mms-spawn.0-9-1.testprofile:r1480584,1481290,1481321,1482609,1482729,1482770
Propchange: qpid/branches/0.22/qpid/java/test-profiles/java-mms.0-9-1.testprofile
------------------------------------------------------------------------------
Merged /qpid/trunk/qpid/java/test-profiles/java-mms.0-9-1.testprofile:r1480584,1481290,1481321,1482609,1482729,1482770
Propchange: qpid/branches/0.22/qpid/java/test-profiles/log4j-test.xml
------------------------------------------------------------------------------
Merged /qpid/trunk/qpid/java/test-profiles/log4j-test.xml:r1480584,1481290,1481321,1482609,1482729,1482770
Propchange: qpid/branches/0.22/qpid/java/test-profiles/test-provider.properties
------------------------------------------------------------------------------
Merged /qpid/trunk/qpid/java/test-profiles/test-provider.properties:r1480584,1481290,1481321,1482609,1482729,1482770
Propchange: qpid/branches/0.22/qpid/java/test-profiles/test_resources/
------------------------------------------------------------------------------
Merged /qpid/trunk/qpid/java/test-profiles/test_resources:r1480584,1481290,1481321,1482609,1482729,1482770
Propchange: qpid/branches/0.22/qpid/java/test-profiles/testprofile.defaults
------------------------------------------------------------------------------
Merged /qpid/trunk/qpid/java/test-profiles/testprofile.defaults:r1480584,1481290,1481321,1482609,1482729,1482770
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@qpid.apache.org
For additional commands, e-mail: commits-help@qpid.apache.org