You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@qpid.apache.org by kg...@apache.org on 2011/02/08 17:16:56 UTC

svn commit: r1068464 [5/6] - in /qpid/branches/qpid-2935/qpid: ./ bin/ cpp/ cpp/bindings/ cpp/bindings/qmf2/examples/cpp/ cpp/bindings/qmf2/examples/python/ cpp/bindings/qmf2/examples/ruby/ cpp/bindings/qmf2/python/ cpp/bindings/qmf2/ruby/ cpp/bindings...

Modified: qpid/branches/qpid-2935/qpid/java/client/src/main/java/org/apache/qpid/client/AMQSession.java
URL: http://svn.apache.org/viewvc/qpid/branches/qpid-2935/qpid/java/client/src/main/java/org/apache/qpid/client/AMQSession.java?rev=1068464&r1=1068463&r2=1068464&view=diff
==============================================================================
--- qpid/branches/qpid-2935/qpid/java/client/src/main/java/org/apache/qpid/client/AMQSession.java (original)
+++ qpid/branches/qpid-2935/qpid/java/client/src/main/java/org/apache/qpid/client/AMQSession.java Tue Feb  8 16:16:49 2011
@@ -119,7 +119,6 @@ import org.slf4j.LoggerFactory;
  */
 public abstract class AMQSession<C extends BasicMessageConsumer, P extends BasicMessageProducer> extends Closeable implements Session, QueueSession, TopicSession
 {
-
     public static final class IdToConsumerMap<C extends BasicMessageConsumer>
     {
         private final BasicMessageConsumer[] _fastAccessConsumers = new BasicMessageConsumer[16];
@@ -363,7 +362,7 @@ public abstract class AMQSession<C exten
 
     /**
      * Set when recover is called. This is to handle the case where recover() is called by application code during
-     * onMessage() processing to enure that an auto ack is not sent.
+     * onMessage() processing to ensure that an auto ack is not sent.
      */
     private boolean _inRecovery;
 
@@ -383,7 +382,7 @@ public abstract class AMQSession<C exten
     private final Object _suspensionLock = new Object();
 
     /**
-     * Used to ensure that onlt the first call to start the dispatcher can unsuspend the channel.
+     * Used to ensure that only the first call to start the dispatcher can unsuspend the channel.
      *
      * @todo This is accessed only within a synchronized method, so does not need to be atomic.
      */
@@ -429,7 +428,7 @@ public abstract class AMQSession<C exten
      * @param con                     The connection on which to create the session.
      * @param channelId               The unique identifier for the session.
      * @param transacted              Indicates whether or not the session is transactional.
-     * @param acknowledgeMode         The acknoledgement mode for the session.
+     * @param acknowledgeMode         The acknowledgement mode for the session.
      * @param messageFactoryRegistry  The message factory factory for the session.
      * @param defaultPrefetchHighMark The maximum number of messages to prefetched before suspending the session.
      * @param defaultPrefetchLowMark  The number of prefetched messages at which to resume the session.
@@ -475,7 +474,7 @@ public abstract class AMQSession<C exten
                                                              // flow control
                                                              if (!(_thisSession.isClosed() || _thisSession.isClosing()))
                                                              {   
-                                                                 // Only executute change if previous state
+                                                                 // Only execute change if previous state
                                                                  // was False
                                                                  if (!_suspendState.getAndSet(true))
                                                                  {
@@ -485,7 +484,14 @@ public abstract class AMQSession<C exten
                                                                                  "Above threshold(" + _prefetchHighMark
                                                                                  + ") so suspending channel. Current value is " + currentValue);
                                                                      }
-                                                                     new Thread(new SuspenderRunner(_suspendState)).start();
+                                                                     try
+                                                                     {
+                                                                         Threading.getThreadFactory().createThread(new SuspenderRunner(_suspendState)).start();
+                                                                     }
+                                                                     catch (Exception e)
+                                                                     {
+                                                                         throw new RuntimeException("Failed to create thread", e);
+                                                                     }
                                                                  }
                                                              }
                                                          }
@@ -496,7 +502,7 @@ public abstract class AMQSession<C exten
                                                              // flow control
                                                              if (!(_thisSession.isClosed() || _thisSession.isClosing()))
                                                              {
-                                                                 // Only executute change if previous state
+                                                                 // Only execute change if previous state
                                                                  // was true
                                                                  if (_suspendState.getAndSet(false))
                                                                  {
@@ -507,7 +513,14 @@ public abstract class AMQSession<C exten
                                                                                  "Below threshold(" + _prefetchLowMark
                                                                                  + ") so unsuspending channel. Current value is " + currentValue);
                                                                      }
-                                                                    new Thread(new SuspenderRunner(_suspendState)).start();
+                                                                     try
+                                                                     {
+                                                                         Threading.getThreadFactory().createThread(new SuspenderRunner(_suspendState)).start();
+                                                                     }
+                                                                     catch (Exception e)
+                                                                     {
+                                                                         throw new RuntimeException("Failed to create thread", e);
+                                                                     }
                                                                  }
                                                              }
                                                          }
@@ -531,7 +544,7 @@ public abstract class AMQSession<C exten
      * @param con                 The connection on which to create the session.
      * @param channelId           The unique identifier for the session.
      * @param transacted          Indicates whether or not the session is transactional.
-     * @param acknowledgeMode     The acknoledgement mode for the session.
+     * @param acknowledgeMode     The acknowledgement mode for the session.
      * @param defaultPrefetchHigh The maximum number of messages to prefetched before suspending the session.
      * @param defaultPrefetchLow  The number of prefetched messages at which to resume the session.
      */
@@ -562,7 +575,7 @@ public abstract class AMQSession<C exten
         }
         catch (IllegalStateException ise)
         {
-            // if the Connection has closed then we should throw any exception that has occured that we were not waiting for
+            // if the Connection has closed then we should throw any exception that has occurred that we were not waiting for
             AMQStateManager manager = _connection.getProtocolHandler().getStateManager();
 
             if (manager.getCurrentState().equals(AMQState.CONNECTION_CLOSED) && manager.getLastException() != null)
@@ -677,11 +690,11 @@ public abstract class AMQSession<C exten
     /**
      * Closes the session.
      *
-     * <p/>Note that this operation succeeds automatically if a fail-over interupts the sycnronous request to close
+     * <p/>Note that this operation succeeds automatically if a fail-over interrupts the synchronous request to close
      * the channel. This is because the channel is marked as closed before the request to close it is made, so the
      * fail-over should not re-open it.
      *
-     * @param timeout The timeout in milliseconds to wait for the session close acknoledgement from the broker.
+     * @param timeout The timeout in milliseconds to wait for the session close acknowledgement from the broker.
      *
      * @throws JMSException If the JMS provider fails to close the session due to some internal error.
      * @todo Be aware of possible changes to parameter order as versions change.
@@ -2566,7 +2579,7 @@ public abstract class AMQSession<C exten
     }
 
     public abstract P createMessageProducer(final Destination destination, final boolean mandatory,
-                                                               final boolean immediate, final boolean waitUntilSent, long producerId);
+                                                               final boolean immediate, final boolean waitUntilSent, long producerId) throws JMSException;
 
     private void declareExchange(AMQDestination amqd, AMQProtocolHandler protocolHandler, boolean nowait) throws AMQException
     {

Modified: qpid/branches/qpid-2935/qpid/java/client/src/main/java/org/apache/qpid/client/AMQSession_0_10.java
URL: http://svn.apache.org/viewvc/qpid/branches/qpid-2935/qpid/java/client/src/main/java/org/apache/qpid/client/AMQSession_0_10.java?rev=1068464&r1=1068463&r2=1068464&view=diff
==============================================================================
--- qpid/branches/qpid-2935/qpid/java/client/src/main/java/org/apache/qpid/client/AMQSession_0_10.java (original)
+++ qpid/branches/qpid-2935/qpid/java/client/src/main/java/org/apache/qpid/client/AMQSession_0_10.java Tue Feb  8 16:16:49 2011
@@ -660,10 +660,21 @@ public class AMQSession_0_10 extends AMQ
      */
     public BasicMessageProducer_0_10 createMessageProducer(final Destination destination, final boolean mandatory,
                                                       final boolean immediate, final boolean waitUntilSent,
-                                                      long producerId)
+                                                      long producerId) throws JMSException
     {
-        return new BasicMessageProducer_0_10(_connection, (AMQDestination) destination, _transacted, _channelId, this,
+        try
+        {
+            return new BasicMessageProducer_0_10(_connection, (AMQDestination) destination, _transacted, _channelId, this,
                                              getProtocolHandler(), producerId, immediate, mandatory, waitUntilSent);
+        }
+        catch (AMQException e)
+        {
+            JMSException ex = new JMSException("Error creating producer");
+            ex.initCause(e);
+            ex.setLinkedException(e);
+            
+            throw ex;
+        }
 
     }
 
@@ -698,6 +709,20 @@ public class AMQSession_0_10 extends AMQ
     }
 
     /**
+     * deletes an exchange 
+     */
+    public void sendExchangeDelete(final String name, final boolean nowait)
+                throws AMQException, FailoverException
+    {
+        getQpidSession().exchangeDelete(name);
+        // We need to sync so that we get notify of an error.
+        if (!nowait)
+        {
+            sync();
+        }
+    }
+
+    /**
      * Declare a queue with the given queueName
      */
     public void sendQueueDeclare(final AMQDestination amqd, final AMQProtocolHandler protocolHandler,

Modified: qpid/branches/qpid-2935/qpid/java/client/src/main/java/org/apache/qpid/client/AMQSession_0_8.java
URL: http://svn.apache.org/viewvc/qpid/branches/qpid-2935/qpid/java/client/src/main/java/org/apache/qpid/client/AMQSession_0_8.java?rev=1068464&r1=1068463&r2=1068464&view=diff
==============================================================================
--- qpid/branches/qpid-2935/qpid/java/client/src/main/java/org/apache/qpid/client/AMQSession_0_8.java (original)
+++ qpid/branches/qpid-2935/qpid/java/client/src/main/java/org/apache/qpid/client/AMQSession_0_8.java Tue Feb  8 16:16:49 2011
@@ -400,11 +400,21 @@ public final class AMQSession_0_8 extend
 
 
     public BasicMessageProducer_0_8 createMessageProducer(final Destination destination, final boolean mandatory,
-            final boolean immediate, final boolean waitUntilSent, long producerId)
+            final boolean immediate, final boolean waitUntilSent, long producerId) throws JMSException
     {
-
-       return new BasicMessageProducer_0_8(_connection, (AMQDestination) destination, _transacted, _channelId,
+       try
+       {
+           return new BasicMessageProducer_0_8(_connection, (AMQDestination) destination, _transacted, _channelId,
                                  this, getProtocolHandler(), producerId, immediate, mandatory, waitUntilSent);
+       }
+       catch (AMQException e)
+       {
+           JMSException ex = new JMSException("Error creating producer");
+           ex.initCause(e);
+           ex.setLinkedException(e);
+           
+           throw ex;
+       }
     }
 
 

Modified: qpid/branches/qpid-2935/qpid/java/client/src/main/java/org/apache/qpid/client/BasicMessageProducer.java
URL: http://svn.apache.org/viewvc/qpid/branches/qpid-2935/qpid/java/client/src/main/java/org/apache/qpid/client/BasicMessageProducer.java?rev=1068464&r1=1068463&r2=1068464&view=diff
==============================================================================
--- qpid/branches/qpid-2935/qpid/java/client/src/main/java/org/apache/qpid/client/BasicMessageProducer.java (original)
+++ qpid/branches/qpid-2935/qpid/java/client/src/main/java/org/apache/qpid/client/BasicMessageProducer.java Tue Feb  8 16:16:49 2011
@@ -127,7 +127,7 @@ public abstract class BasicMessageProduc
 
     protected BasicMessageProducer(AMQConnection connection, AMQDestination destination, boolean transacted, int channelId,
                                    AMQSession session, AMQProtocolHandler protocolHandler, long producerId, boolean immediate, boolean mandatory,
-                                   boolean waitUntilSent)
+                                   boolean waitUntilSent) throws AMQException
     {
         _connection = connection;
         _destination = destination;
@@ -175,7 +175,7 @@ public abstract class BasicMessageProduc
         }
     }
 
-    abstract void declareDestination(AMQDestination destination);
+    abstract void declareDestination(AMQDestination destination) throws AMQException;
 
     public void setDisableMessageID(boolean b) throws JMSException
     {
@@ -434,7 +434,18 @@ public abstract class BasicMessageProduc
         AMQDestination amqDestination = (AMQDestination) destination;
         if(!amqDestination.isExchangeExistsChecked())
         {
-            declareDestination(amqDestination);
+            try
+            {
+                declareDestination(amqDestination);
+            }
+            catch(Exception e)
+            {
+                JMSException ex = new JMSException("Error validating destination");
+                ex.initCause(e);
+                ex.setLinkedException(e);
+                
+                throw ex;
+            }
             amqDestination.setExchangeExistsChecked(true);
         }
     }

Modified: qpid/branches/qpid-2935/qpid/java/client/src/main/java/org/apache/qpid/client/BasicMessageProducer_0_10.java
URL: http://svn.apache.org/viewvc/qpid/branches/qpid-2935/qpid/java/client/src/main/java/org/apache/qpid/client/BasicMessageProducer_0_10.java?rev=1068464&r1=1068463&r2=1068464&view=diff
==============================================================================
--- qpid/branches/qpid-2935/qpid/java/client/src/main/java/org/apache/qpid/client/BasicMessageProducer_0_10.java (original)
+++ qpid/branches/qpid-2935/qpid/java/client/src/main/java/org/apache/qpid/client/BasicMessageProducer_0_10.java Tue Feb  8 16:16:49 2011
@@ -56,7 +56,7 @@ public class BasicMessageProducer_0_10 e
 
     BasicMessageProducer_0_10(AMQConnection connection, AMQDestination destination, boolean transacted, int channelId,
                               AMQSession session, AMQProtocolHandler protocolHandler, long producerId,
-                              boolean immediate, boolean mandatory, boolean waitUntilSent)
+                              boolean immediate, boolean mandatory, boolean waitUntilSent) throws AMQException
     {
         super(connection, destination, transacted, channelId, session, protocolHandler, producerId, immediate,
               mandatory, waitUntilSent);
@@ -64,7 +64,7 @@ public class BasicMessageProducer_0_10 e
         userIDBytes = Strings.toUTF8(_userID);
     }
 
-    void declareDestination(AMQDestination destination)
+    void declareDestination(AMQDestination destination) throws AMQException
     {
         if (destination.getDestSyntax() == DestSyntax.BURL)
         {
@@ -83,8 +83,8 @@ public class BasicMessageProducer_0_10 e
             }
             catch(Exception e)
             {
-                // Idealy this should be thrown to the JMS layer.
-                _logger.warn("Exception occured while verifying destination",e);
+                AMQException ex = new AMQException("Exception occured while verifying destination",e);                
+                throw ex;                
             }
         }
     }

Modified: qpid/branches/qpid-2935/qpid/java/client/src/main/java/org/apache/qpid/client/BasicMessageProducer_0_8.java
URL: http://svn.apache.org/viewvc/qpid/branches/qpid-2935/qpid/java/client/src/main/java/org/apache/qpid/client/BasicMessageProducer_0_8.java?rev=1068464&r1=1068463&r2=1068464&view=diff
==============================================================================
--- qpid/branches/qpid-2935/qpid/java/client/src/main/java/org/apache/qpid/client/BasicMessageProducer_0_8.java (original)
+++ qpid/branches/qpid-2935/qpid/java/client/src/main/java/org/apache/qpid/client/BasicMessageProducer_0_8.java Tue Feb  8 16:16:49 2011
@@ -28,6 +28,7 @@ import javax.jms.Topic;
 import javax.jms.Queue;
 
 import org.apache.mina.common.ByteBuffer;
+import org.apache.qpid.AMQException;
 import org.apache.qpid.client.message.AbstractJMSMessage;
 import org.apache.qpid.client.message.AMQMessageDelegate;
 import org.apache.qpid.client.message.AMQMessageDelegate_0_8;
@@ -46,7 +47,7 @@ public class BasicMessageProducer_0_8 ex
 
     BasicMessageProducer_0_8(AMQConnection connection, AMQDestination destination, boolean transacted, int channelId,
             AMQSession session, AMQProtocolHandler protocolHandler, long producerId, boolean immediate, boolean mandatory,
-            boolean waitUntilSent)
+            boolean waitUntilSent) throws AMQException
     {
         super(connection, destination,transacted,channelId,session, protocolHandler, producerId, immediate, mandatory,waitUntilSent);
     }

Modified: qpid/branches/qpid-2935/qpid/java/client/src/main/java/org/apache/qpid/client/handler/ConnectionTuneMethodHandler.java
URL: http://svn.apache.org/viewvc/qpid/branches/qpid-2935/qpid/java/client/src/main/java/org/apache/qpid/client/handler/ConnectionTuneMethodHandler.java?rev=1068464&r1=1068463&r2=1068464&view=diff
==============================================================================
--- qpid/branches/qpid-2935/qpid/java/client/src/main/java/org/apache/qpid/client/handler/ConnectionTuneMethodHandler.java (original)
+++ qpid/branches/qpid-2935/qpid/java/client/src/main/java/org/apache/qpid/client/handler/ConnectionTuneMethodHandler.java Tue Feb  8 16:16:49 2011
@@ -55,9 +55,12 @@ public class ConnectionTuneMethodHandler
         {
             params = new ConnectionTuneParameters();
         }
+        
+        int maxChannelNumber = frame.getChannelMax();
+        //0 implies no limit, except that forced by protocol limitations (0xFFFF)
+        params.setChannelMax(maxChannelNumber == 0 ? AMQProtocolSession.MAX_CHANNEL_MAX : maxChannelNumber);
 
         params.setFrameMax(frame.getFrameMax());
-        params.setChannelMax(frame.getChannelMax());
         params.setHeartbeat(Integer.getInteger("amqj.heartbeat.delay", frame.getHeartbeat()));
         session.setConnectionTuneParameters(params);
 

Modified: qpid/branches/qpid-2935/qpid/java/client/src/main/java/org/apache/qpid/client/message/AMQMessageDelegate_0_10.java
URL: http://svn.apache.org/viewvc/qpid/branches/qpid-2935/qpid/java/client/src/main/java/org/apache/qpid/client/message/AMQMessageDelegate_0_10.java?rev=1068464&r1=1068463&r2=1068464&view=diff
==============================================================================
--- qpid/branches/qpid-2935/qpid/java/client/src/main/java/org/apache/qpid/client/message/AMQMessageDelegate_0_10.java (original)
+++ qpid/branches/qpid-2935/qpid/java/client/src/main/java/org/apache/qpid/client/message/AMQMessageDelegate_0_10.java Tue Feb  8 16:16:49 2011
@@ -115,15 +115,28 @@ public class AMQMessageDelegate_0_10 ext
         if (deliveryProps != null)
         {
             String exchange = deliveryProps.getExchange();
+            checkAndUpdateExchange(exchange,session);
+                    
+        }
+        
+        MessageProperties msgProps = header.get(MessageProperties.class);
+        if (msgProps != null && msgProps.getReplyTo() != null)
+        {
+            String exchange = msgProps.getReplyTo().getExchange();
+            checkAndUpdateExchange(exchange,session);
+                    
+        }
+    }
+    
+    private static void checkAndUpdateExchange(String exchange, org.apache.qpid.transport.Session session)
+    {
+        if (exchange != null && !exchangeMapContains(exchange))
+        {
+            Future<ExchangeQueryResult> future =
+                    session.exchangeQuery(exchange.toString());
+            ExchangeQueryResult res = future.get();
 
-            if (exchange != null && !exchangeMapContains(exchange))
-            {
-                Future<ExchangeQueryResult> future =
-                        session.exchangeQuery(exchange.toString());
-                ExchangeQueryResult res = future.get();
-
-                updateExchangeType(exchange, res.getType());
-            }
+            updateExchangeType(exchange, res.getType());
         }
     }
 

Modified: qpid/branches/qpid-2935/qpid/java/client/src/main/java/org/apache/qpid/client/message/AbstractAMQMessageDelegate.java
URL: http://svn.apache.org/viewvc/qpid/branches/qpid-2935/qpid/java/client/src/main/java/org/apache/qpid/client/message/AbstractAMQMessageDelegate.java?rev=1068464&r1=1068463&r2=1068464&view=diff
==============================================================================
--- qpid/branches/qpid-2935/qpid/java/client/src/main/java/org/apache/qpid/client/message/AbstractAMQMessageDelegate.java (original)
+++ qpid/branches/qpid-2935/qpid/java/client/src/main/java/org/apache/qpid/client/message/AbstractAMQMessageDelegate.java Tue Feb  8 16:16:49 2011
@@ -95,6 +95,11 @@ public abstract class AbstractAMQMessage
         AMQDestination dest;
         ExchangeInfo exchangeInfo = _exchangeMap.get(exchange.asString());
         
+        if (exchangeInfo == null)
+        {
+            exchangeInfo = new ExchangeInfo(exchange.asString(),"",AMQDestination.UNKNOWN_TYPE);
+        }
+        
         if ("topic".equals(exchangeInfo.exchangeType))
         {
             dest = new AMQTopic(exchange, routingKey, null);

Modified: qpid/branches/qpid-2935/qpid/java/client/src/main/java/org/apache/qpid/client/protocol/AMQProtocolHandler.java
URL: http://svn.apache.org/viewvc/qpid/branches/qpid-2935/qpid/java/client/src/main/java/org/apache/qpid/client/protocol/AMQProtocolHandler.java?rev=1068464&r1=1068463&r2=1068464&view=diff
==============================================================================
--- qpid/branches/qpid-2935/qpid/java/client/src/main/java/org/apache/qpid/client/protocol/AMQProtocolHandler.java (original)
+++ qpid/branches/qpid-2935/qpid/java/client/src/main/java/org/apache/qpid/client/protocol/AMQProtocolHandler.java Tue Feb  8 16:16:49 2011
@@ -28,6 +28,7 @@ import java.util.Iterator;
 import java.util.Set;
 import java.util.concurrent.CopyOnWriteArraySet;
 import java.util.concurrent.CountDownLatch;
+import java.util.concurrent.ThreadFactory;
 import java.util.concurrent.TimeUnit;
 
 import org.apache.mina.filter.codec.ProtocolCodecException;
@@ -63,6 +64,7 @@ import org.apache.qpid.protocol.AMQConst
 import org.apache.qpid.protocol.AMQMethodEvent;
 import org.apache.qpid.protocol.AMQMethodListener;
 import org.apache.qpid.protocol.ProtocolEngine;
+import org.apache.qpid.thread.Threading;
 import org.apache.qpid.transport.NetworkDriver;
 import org.apache.qpid.transport.network.io.IoTransport;
 import org.slf4j.Logger;
@@ -100,7 +102,7 @@ import org.slf4j.LoggerFactory;
  * connection is shutdown and a new one created. For this reason, an AMQProtocolHandler is created per AMQConnection
  * and the protocol session data is held outside of the MINA IOSession.
  *
- * <p/>This handler is responsibile for setting up the filter chain to filter all events for this handler through.
+ * <p/>This handler is responsible for setting up the filter chain to filter all events for this handler through.
  * The filter chain is set up as a stack of event handers that perform the following functions (working upwards from
  * the network traffic at the bottom), handing off incoming events to an asynchronous thread pool to do the work,
  * optionally handling secure sockets encoding/decoding, encoding/decoding the AMQP format itself.
@@ -114,8 +116,8 @@ import org.slf4j.LoggerFactory;
  * @todo Use a single handler instance, by shifting everything to do with the 'protocol session' state, including
  * failover state, into AMQProtocolSession, and tracking that from AMQConnection? The lifecycles of
  * AMQProtocolSesssion and AMQConnection will be the same, so if there is high cohesion between them, they could
- * be merged, although there is sense in keeping the session model seperate. Will clarify things by having data
- * held per protocol handler, per protocol session, per network connection, per channel, in seperate classes, so
+ * be merged, although there is sense in keeping the session model separate. Will clarify things by having data
+ * held per protocol handler, per protocol session, per network connection, per channel, in separate classes, so
  * that lifecycles of the fields match lifecycles of their containing objects.
  */
 public class AMQProtocolHandler implements ProtocolEngine
@@ -158,7 +160,7 @@ public class AMQProtocolHandler implemen
     /** Used to provide a condition to wait upon for operations that are required to wait for failover to complete. */
     private CountDownLatch _failoverLatch;
 
-    /** The last failover exception that occured */
+    /** The last failover exception that occurred */
     private FailoverException _lastFailoverException;
 
     /** Defines the default timeout to use for synchronous protocol commands. */
@@ -187,6 +189,21 @@ public class AMQProtocolHandler implemen
         _protocolSession = new AMQProtocolSession(this, _connection);
         _stateManager = new AMQStateManager(_protocolSession);
         _codecFactory = new AMQCodecFactory(false, _protocolSession);
+        _poolReference.setThreadFactory(new ThreadFactory()
+        {
+
+            public Thread newThread(final Runnable runnable)
+            {
+                try
+                {
+                    return Threading.getThreadFactory().createThread(runnable);
+                }
+                catch (Exception e)
+                {
+                    throw new RuntimeException("Failed to create thread", e);
+                }
+            }
+        });
         _readJob = new Job(_poolReference, Job.MAX_JOB_EVENTS, true);
         _writeJob = new Job(_poolReference, Job.MAX_JOB_EVENTS, false);
         _poolReference.acquireExecutorService();
@@ -275,7 +292,15 @@ public class AMQProtocolHandler implemen
     {
         if(!_connection.isClosed())
         {
-            Thread failoverThread = new Thread(_failoverHandler);
+            final Thread failoverThread;
+            try
+            {
+                failoverThread = Threading.getThreadFactory().createThread(_failoverHandler);
+            }
+            catch (Exception e)
+            {
+                throw new RuntimeException("Failed to create thread", e);
+            }
             failoverThread.setName("Failover");
             // Do not inherit daemon-ness from current thread as this can be a daemon
             // thread such as a AnonymousIoService thread.
@@ -369,7 +394,7 @@ public class AMQProtocolHandler implemen
     }
 
     /**
-     * This caters for the case where we only need to propogate an exception to the the frame listeners to interupt any
+     * This caters for the case where we only need to propagate an exception to the the frame listeners to interupt any
      * protocol level waits.
      *
      * This will would normally be used to notify all Frame Listeners that Failover is about to occur and they should
@@ -407,7 +432,7 @@ public class AMQProtocolHandler implemen
         }
 
         //Only notify the Frame listeners that failover is going to occur as the State listeners shouldn't be
-        // interupted unless failover cannot restore the state.
+        // interrupted unless failover cannot restore the state.
         propagateExceptionToFrameListeners(_lastFailoverException);
     }
 

Modified: qpid/branches/qpid-2935/qpid/java/client/src/main/java/org/apache/qpid/client/protocol/AMQProtocolSession.java
URL: http://svn.apache.org/viewvc/qpid/branches/qpid-2935/qpid/java/client/src/main/java/org/apache/qpid/client/protocol/AMQProtocolSession.java?rev=1068464&r1=1068463&r2=1068464&view=diff
==============================================================================
--- qpid/branches/qpid-2935/qpid/java/client/src/main/java/org/apache/qpid/client/protocol/AMQProtocolSession.java (original)
+++ qpid/branches/qpid-2935/qpid/java/client/src/main/java/org/apache/qpid/client/protocol/AMQProtocolSession.java Tue Feb  8 16:16:49 2011
@@ -54,6 +54,10 @@ public class AMQProtocolSession implemen
 
     public static final String PROTOCOL_INITIATION_RECEIVED = "ProtocolInitiatiionReceived";
 
+    //Usable channels are numbered 1 to <ChannelMax>
+    public static final int MAX_CHANNEL_MAX = 0xFFFF;
+    public static final int MIN_USABLE_CHANNEL_NUM = 1;
+
     protected static final String CONNECTION_TUNE_PARAMETERS = "ConnectionTuneParameters";
 
     protected static final String AMQ_CONNECTION = "AMQConnection";
@@ -178,6 +182,7 @@ public class AMQProtocolSession implemen
     {
         _connectionTuneParameters = params;
         AMQConnection con = getAMQConnection();
+
         con.setMaximumChannelCount(params.getChannelMax());
         con.setMaximumFrameSize(params.getFrameMax());
         _protocolHandler.initHeartbeats((int) params.getHeartbeat());

Modified: qpid/branches/qpid-2935/qpid/java/client/src/main/java/org/apache/qpid/jms/ChannelLimitReachedException.java
URL: http://svn.apache.org/viewvc/qpid/branches/qpid-2935/qpid/java/client/src/main/java/org/apache/qpid/jms/ChannelLimitReachedException.java?rev=1068464&r1=1068463&r2=1068464&view=diff
==============================================================================
--- qpid/branches/qpid-2935/qpid/java/client/src/main/java/org/apache/qpid/jms/ChannelLimitReachedException.java (original)
+++ qpid/branches/qpid-2935/qpid/java/client/src/main/java/org/apache/qpid/jms/ChannelLimitReachedException.java Tue Feb  8 16:16:49 2011
@@ -33,9 +33,9 @@ public class ChannelLimitReachedExceptio
 
     public ChannelLimitReachedException(long limit)
     {
-        super("Unable to create session since maximum number of sessions per connection is " +
-              limit + ". Either close one or more sessions or increase the " +
-              "maximum number of sessions per connection (or contact your AMQP administrator.", ERROR_CODE);
+        super("Unable to create session, the maximum number of sessions per connection is " +
+              limit + ". You must either close one or more sessions or increase the " +
+              "maximum number of sessions available per connection.", ERROR_CODE);
         _limit = limit;
     }
 

Modified: qpid/branches/qpid-2935/qpid/java/common/Composite.tpl
URL: http://svn.apache.org/viewvc/qpid/branches/qpid-2935/qpid/java/common/Composite.tpl?rev=1068464&r1=1068463&r2=1068464&view=diff
==============================================================================
--- qpid/branches/qpid-2935/qpid/java/common/Composite.tpl (original)
+++ qpid/branches/qpid-2935/qpid/java/common/Composite.tpl Tue Feb  8 16:16:49 2011
@@ -44,6 +44,8 @@ cls = klass(type)["@name"]
 
 segments = type["segments"]
 
+connectioncontrol="false"
+
 if type.name in ("control", "command"):
   base = "Method"
   size = 0
@@ -54,6 +56,7 @@ if type.name in ("control", "command"):
     payload = "false"
   if type.name == "control" and cls == "connection":
     track = "Frame.L1"
+    connectioncontrol="true"
   elif cls == "session" and type["@name"] in ("attach", "attached", "detach", "detached"):
     track = "Frame.L2"
   elif type.name == "command":
@@ -100,6 +103,11 @@ public final class $name extends $base {
         return $track;
     }
 
+    public final boolean isConnectionControl()
+    {
+        return $connectioncontrol;
+    }
+
 ${
 
 if pack > 0:

Modified: qpid/branches/qpid-2935/qpid/java/common/src/main/java/org/apache/qpid/pool/ReferenceCountingExecutorService.java
URL: http://svn.apache.org/viewvc/qpid/branches/qpid-2935/qpid/java/common/src/main/java/org/apache/qpid/pool/ReferenceCountingExecutorService.java?rev=1068464&r1=1068463&r2=1068464&view=diff
==============================================================================
--- qpid/branches/qpid-2935/qpid/java/common/src/main/java/org/apache/qpid/pool/ReferenceCountingExecutorService.java (original)
+++ qpid/branches/qpid-2935/qpid/java/common/src/main/java/org/apache/qpid/pool/ReferenceCountingExecutorService.java Tue Feb  8 16:16:49 2011
@@ -22,10 +22,12 @@ package org.apache.qpid.pool;
 
 import java.util.concurrent.ExecutorService;
 import java.util.concurrent.Executors;
+import java.util.concurrent.ThreadFactory;
 import java.util.concurrent.ThreadPoolExecutor;
 import java.util.concurrent.TimeUnit;
 import java.util.concurrent.LinkedBlockingQueue;
 
+
 /**
  * ReferenceCountingExecutorService wraps an ExecutorService in order to provide shared reference to it. It counts
  * the references taken, instantiating the service on the first reference, and shutting it down when the last
@@ -36,7 +38,7 @@ import java.util.concurrent.LinkedBlocki
  *
  * <p/><table id="crc><caption>CRC Card</caption>
  * <tr><th> Responsibilities <th> Collaborations
- * <tr><td> Provide a shared exector service. <td> {@link Executors}
+ * <tr><td> Provide a shared executor service. <td> {@link Executors}
  * <tr><td> Shutdown the executor service when not needed. <td> {@link ExecutorService}
  * <tr><td> Track references to the executor service.
  * <tr><td> Provide configuration of the executor service.
@@ -53,13 +55,15 @@ import java.util.concurrent.LinkedBlocki
  * @todo {@link #_poolSize} should be static?
  *
  * @todo The {@link #getPool()} method breaks the encapsulation of the reference counter. Generally when getPool is used
- *       further checks are applied to ensure that the exector service has not been shutdown. This passes responsibility
+ *       further checks are applied to ensure that the executor service has not been shutdown. This passes responsibility
  *       for managing the lifecycle of the reference counted object onto the caller rather than neatly encapsulating it
  *       here. Could think about adding more state to the lifecycle, to mark ref counted objects as invalid, and have an
  *       isValid method, or could make calling code deal with RejectedExecutionException raised by shutdown executors.
  */
 public class ReferenceCountingExecutorService
 {
+
+
     /** Defines the smallest thread pool that will be allocated, irrespective of the number of processors. */
     private static final int MINIMUM_POOL_SIZE = 4;
 
@@ -87,6 +91,11 @@ public class ReferenceCountingExecutorSe
     /** Holds the number of executor threads to create. */
     private int _poolSize = Integer.getInteger("amqj.read_write_pool_size", DEFAULT_POOL_SIZE);
 
+    /** Thread Factory used to create thread of the pool.   Uses the default implementation provided by
+     *  {@link java.util.concurrent.Executors#defaultThreadFactory()} unless reset by the caller.
+     */
+    private ThreadFactory _threadFactory = Executors.defaultThreadFactory();
+
     private final boolean _useBiasedPool = Boolean.getBoolean("org.apache.qpid.use_write_biased_pool");
 
     /**
@@ -116,19 +125,23 @@ public class ReferenceCountingExecutorSe
         {
             if (_refCount++ == 0)
             {
-//                _pool = Executors.newFixedThreadPool(_poolSize);
-
                 // Use a job queue that biases to writes
                 if(_useBiasedPool)
                 {
                     _pool =  new ThreadPoolExecutor(_poolSize, _poolSize,
                                           0L, TimeUnit.MILLISECONDS,
-                                          new ReadWriteJobQueue());
+                                          new ReadWriteJobQueue(),
+                                          _threadFactory);
+
                 }
                 else
                 {
-                    _pool = Executors.newFixedThreadPool(_poolSize);
+                    _pool = new ThreadPoolExecutor(_poolSize, _poolSize,
+                            0L, TimeUnit.MILLISECONDS,
+                            new LinkedBlockingQueue<Runnable>(),
+                            _threadFactory);
                 }
+
             }
 
 
@@ -137,7 +150,7 @@ public class ReferenceCountingExecutorSe
     }
 
     /**
-     * Releases a reference to a shared executor service, decrementing the reference count. If the refence count falls
+     * Releases a reference to a shared executor service, decrementing the reference count. If the reference count falls
      * to zero, the executor service is shut down.
      */
     public void releaseExecutorService()
@@ -169,4 +182,34 @@ public class ReferenceCountingExecutorSe
     {
         return _refCount;
     }
+
+    /**
+     *
+     * Return the thread factory used by the {@link ThreadPoolExecutor} to create new threads.
+     *
+     * @return thread factory
+     */
+    public ThreadFactory getThreadFactory()
+    {
+        return _threadFactory;
+    }
+
+    /**
+     * Sets the thread factory used by the {@link ThreadPoolExecutor} to create new threads.
+     * <p>
+     * If the pool has been already created, the change will have no effect until
+     * {@link #getReferenceCount()} reaches zero and the pool recreated.  For this reason,
+     * callers must invoke this method <i>before</i> calling {@link #acquireExecutorService()}.
+     *
+     * @param threadFactory thread factory
+     */
+    public void setThreadFactory(final ThreadFactory threadFactory)
+    {
+        if (threadFactory == null)
+        {
+            throw new NullPointerException("threadFactory cannot be null");
+        }
+        _threadFactory = threadFactory;
+    }
+
 }

Modified: qpid/branches/qpid-2935/qpid/java/common/src/main/java/org/apache/qpid/thread/DefaultThreadFactory.java
URL: http://svn.apache.org/viewvc/qpid/branches/qpid-2935/qpid/java/common/src/main/java/org/apache/qpid/thread/DefaultThreadFactory.java?rev=1068464&r1=1068463&r2=1068464&view=diff
==============================================================================
--- qpid/branches/qpid-2935/qpid/java/common/src/main/java/org/apache/qpid/thread/DefaultThreadFactory.java (original)
+++ qpid/branches/qpid-2935/qpid/java/common/src/main/java/org/apache/qpid/thread/DefaultThreadFactory.java Tue Feb  8 16:16:49 2011
@@ -1,4 +1,3 @@
-package org.apache.qpid.thread;
 /*
  * 
  * Licensed to the Apache Software Foundation (ASF) under one
@@ -20,29 +19,25 @@ package org.apache.qpid.thread;
  * 
  */
 
+package org.apache.qpid.thread;
 
-public class DefaultThreadFactory implements ThreadFactory
-{
-
-    private static class QpidThread extends Thread
-    {
-        private QpidThread(final Runnable target)
-        {
-            super(target);
-        }
 
-    }
 
+public class DefaultThreadFactory implements ThreadFactory
+{
 
+    private final LoggingUncaughtExceptionHandler _loggingUncaughtExceptionHandler = new LoggingUncaughtExceptionHandler();
 
     public Thread createThread(Runnable r)
     {
-        return new Thread(r);
+        Thread t = new Thread(r);
+        t.setUncaughtExceptionHandler(_loggingUncaughtExceptionHandler);
+        return t;
     }
 
     public Thread createThread(Runnable r, int priority)
     {
-        Thread t = new Thread(r);
+        Thread t = createThread(r);
         t.setPriority(priority);
         return t;
     }

Modified: qpid/branches/qpid-2935/qpid/java/common/src/main/java/org/apache/qpid/thread/RealtimeThreadFactory.java
URL: http://svn.apache.org/viewvc/qpid/branches/qpid-2935/qpid/java/common/src/main/java/org/apache/qpid/thread/RealtimeThreadFactory.java?rev=1068464&r1=1068463&r2=1068464&view=diff
==============================================================================
--- qpid/branches/qpid-2935/qpid/java/common/src/main/java/org/apache/qpid/thread/RealtimeThreadFactory.java (original)
+++ qpid/branches/qpid-2935/qpid/java/common/src/main/java/org/apache/qpid/thread/RealtimeThreadFactory.java Tue Feb  8 16:16:49 2011
@@ -25,6 +25,8 @@ import java.lang.reflect.Constructor;
 
 public class RealtimeThreadFactory implements ThreadFactory
 {
+    private final LoggingUncaughtExceptionHandler _loggingUncaughtExceptionHandler = new LoggingUncaughtExceptionHandler();
+
     private Class threadClass;
     private Constructor threadConstructor;
     private Constructor priorityParameterConstructor;
@@ -62,7 +64,9 @@ public class RealtimeThreadFactory imple
     public Thread createThread(Runnable r, int priority) throws Exception
     {
         Object priorityParams = priorityParameterConstructor.newInstance(priority);
-        return (Thread)threadConstructor.newInstance(priorityParams,null,null,null,null,r);
+        Thread thread = (Thread)threadConstructor.newInstance(priorityParams,null,null,null,null,r);
+        thread.setUncaughtExceptionHandler(_loggingUncaughtExceptionHandler);
+        return thread;
     }
 
 }

Modified: qpid/branches/qpid-2935/qpid/java/common/src/main/java/org/apache/qpid/transport/ClientDelegate.java
URL: http://svn.apache.org/viewvc/qpid/branches/qpid-2935/qpid/java/common/src/main/java/org/apache/qpid/transport/ClientDelegate.java?rev=1068464&r1=1068463&r2=1068464&view=diff
==============================================================================
--- qpid/branches/qpid-2935/qpid/java/common/src/main/java/org/apache/qpid/transport/ClientDelegate.java (original)
+++ qpid/branches/qpid-2935/qpid/java/common/src/main/java/org/apache/qpid/transport/ClientDelegate.java Tue Feb  8 16:16:49 2011
@@ -86,7 +86,8 @@ public class ClientDelegate extends Conn
         }
     }
 
-    @Override public void connectionStart(Connection conn, ConnectionStart start)
+    @Override
+    public void connectionStart(Connection conn, ConnectionStart start)
     {
         Map<String,Object> clientProperties = new HashMap<String,Object>();
 
@@ -156,7 +157,8 @@ public class ClientDelegate extends Conn
         }
     }
 
-    @Override public void connectionSecure(Connection conn, ConnectionSecure secure)
+    @Override
+    public void connectionSecure(Connection conn, ConnectionSecure secure)
     {
         SaslClient sc = conn.getSaslClient();
         try
@@ -170,9 +172,9 @@ public class ClientDelegate extends Conn
         }
     }
 
-    @Override public void connectionTune(Connection conn, ConnectionTune tune)
+    @Override
+    public void connectionTune(Connection conn, ConnectionTune tune)
     {
-        conn.setChannelMax(tune.getChannelMax());
         int hb_interval = calculateHeartbeatInterval(conSettings.getHeartbeatInterval(),
                                                      tune.getHeartbeatMin(),
                                                      tune.getHeartbeatMax()
@@ -182,10 +184,17 @@ public class ClientDelegate extends Conn
                               hb_interval);
         // The idle timeout is twice the heartbeat amount (in milisecs)
         conn.setIdleTimeout(hb_interval*1000*2);
+
+        int channelMax = tune.getChannelMax();
+        //0 means no implied limit, except available server resources
+        //(or that forced by protocol limitations [0xFFFF])
+        conn.setChannelMax(channelMax == 0 ? Connection.MAX_CHANNEL_MAX : channelMax);
+
         conn.connectionOpen(conSettings.getVhost(), null, Option.INSIST);
     }
 
-    @Override public void connectionOpenOk(Connection conn, ConnectionOpenOk ok)
+    @Override
+    public void connectionOpenOk(Connection conn, ConnectionOpenOk ok)
     {
         SaslClient sc = conn.getSaslClient();
         if (sc != null)
@@ -210,12 +219,14 @@ public class ClientDelegate extends Conn
         conn.setState(OPEN);
     }
 
-    @Override public void connectionRedirect(Connection conn, ConnectionRedirect redir)
+    @Override
+    public void connectionRedirect(Connection conn, ConnectionRedirect redir)
     {
         throw new UnsupportedOperationException();
     }
 
-    @Override public void connectionHeartbeat(Connection conn, ConnectionHeartbeat hearbeat)
+    @Override
+    public void connectionHeartbeat(Connection conn, ConnectionHeartbeat hearbeat)
     {
         conn.connectionHeartbeat();
     }

Modified: qpid/branches/qpid-2935/qpid/java/common/src/main/java/org/apache/qpid/transport/Connection.java
URL: http://svn.apache.org/viewvc/qpid/branches/qpid-2935/qpid/java/common/src/main/java/org/apache/qpid/transport/Connection.java?rev=1068464&r1=1068463&r2=1068464&view=diff
==============================================================================
--- qpid/branches/qpid-2935/qpid/java/common/src/main/java/org/apache/qpid/transport/Connection.java (original)
+++ qpid/branches/qpid-2935/qpid/java/common/src/main/java/org/apache/qpid/transport/Connection.java Tue Feb  8 16:16:49 2011
@@ -59,6 +59,9 @@ public class Connection extends Connecti
 
     protected static final Logger log = Logger.get(Connection.class);
 
+    //Usable channels are numbered 0 to <ChannelMax> - 1
+    public static final int MAX_CHANNEL_MAX = 0xFFFF;
+    public static final int MIN_USABLE_CHANNEL_NUM = 0;
 
     public enum State { NEW, CLOSED, OPENING, OPEN, CLOSING, CLOSE_RCVD }
 
@@ -404,7 +407,8 @@ public class Connection extends Connecti
     {
         synchronized (lock)
         {
-            for (int i = 1; i <= getChannelMax(); i++)
+            //For a negotiated channelMax N, there are channels 0 to N-1 available.
+            for (int i = 0; i < getChannelMax(); i++)
             {
                 if (!channels.containsKey(i))
                 {
@@ -434,7 +438,7 @@ public class Connection extends Connecti
         }
     }
 
-    Session getSession(int channel)
+    protected Session getSession(int channel)
     {
         synchronized (lock)
         {

Modified: qpid/branches/qpid-2935/qpid/java/common/src/main/java/org/apache/qpid/transport/ProtocolError.java
URL: http://svn.apache.org/viewvc/qpid/branches/qpid-2935/qpid/java/common/src/main/java/org/apache/qpid/transport/ProtocolError.java?rev=1068464&r1=1068463&r2=1068464&view=diff
==============================================================================
--- qpid/branches/qpid-2935/qpid/java/common/src/main/java/org/apache/qpid/transport/ProtocolError.java (original)
+++ qpid/branches/qpid-2935/qpid/java/common/src/main/java/org/apache/qpid/transport/ProtocolError.java Tue Feb  8 16:16:49 2011
@@ -60,6 +60,11 @@ public final class ProtocolError impleme
         return track;
     }
 
+    public boolean isConnectionControl()
+    {
+        return false;
+    }
+
     public String getMessage()
     {
         return String.format(format, args);

Modified: qpid/branches/qpid-2935/qpid/java/common/src/main/java/org/apache/qpid/transport/ProtocolEvent.java
URL: http://svn.apache.org/viewvc/qpid/branches/qpid-2935/qpid/java/common/src/main/java/org/apache/qpid/transport/ProtocolEvent.java?rev=1068464&r1=1068463&r2=1068464&view=diff
==============================================================================
--- qpid/branches/qpid-2935/qpid/java/common/src/main/java/org/apache/qpid/transport/ProtocolEvent.java (original)
+++ qpid/branches/qpid-2935/qpid/java/common/src/main/java/org/apache/qpid/transport/ProtocolEvent.java Tue Feb  8 16:16:49 2011
@@ -37,4 +37,5 @@ public interface ProtocolEvent
 
     <C> void delegate(C context, ProtocolDelegate<C> delegate);
 
+    boolean isConnectionControl();
 }

Modified: qpid/branches/qpid-2935/qpid/java/common/src/main/java/org/apache/qpid/transport/ProtocolHeader.java
URL: http://svn.apache.org/viewvc/qpid/branches/qpid-2935/qpid/java/common/src/main/java/org/apache/qpid/transport/ProtocolHeader.java?rev=1068464&r1=1068463&r2=1068464&view=diff
==============================================================================
--- qpid/branches/qpid-2935/qpid/java/common/src/main/java/org/apache/qpid/transport/ProtocolHeader.java (original)
+++ qpid/branches/qpid-2935/qpid/java/common/src/main/java/org/apache/qpid/transport/ProtocolHeader.java Tue Feb  8 16:16:49 2011
@@ -88,6 +88,11 @@ public final class ProtocolHeader implem
         return Frame.L1;
     }
 
+    public boolean isConnectionControl()
+    {
+        return false;
+    }
+
     public ByteBuffer toByteBuffer()
     {
         ByteBuffer buf = ByteBuffer.allocate(8);

Modified: qpid/branches/qpid-2935/qpid/java/common/src/main/java/org/apache/qpid/transport/ServerDelegate.java
URL: http://svn.apache.org/viewvc/qpid/branches/qpid-2935/qpid/java/common/src/main/java/org/apache/qpid/transport/ServerDelegate.java?rev=1068464&r1=1068463&r2=1068464&view=diff
==============================================================================
--- qpid/branches/qpid-2935/qpid/java/common/src/main/java/org/apache/qpid/transport/ServerDelegate.java (original)
+++ qpid/branches/qpid-2935/qpid/java/common/src/main/java/org/apache/qpid/transport/ServerDelegate.java Tue Feb  8 16:16:49 2011
@@ -30,6 +30,8 @@ import javax.security.sasl.Sasl;
 import javax.security.sasl.SaslException;
 import javax.security.sasl.SaslServer;
 
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 /**
  * ServerDelegate
@@ -38,8 +40,8 @@ import javax.security.sasl.SaslServer;
 
 public class ServerDelegate extends ConnectionDelegate
 {
+    protected static final Logger _logger = LoggerFactory.getLogger(ServerDelegate.class);
 
-    private SaslServer saslServer;
     private List<Object> _locales;
     private List<Object> _mechanisms;
     private Map<String, Object> _clientProperties;
@@ -47,7 +49,7 @@ public class ServerDelegate extends Conn
 
     public ServerDelegate()
     {
-        this(null, Collections.EMPTY_LIST, Collections.singletonList((Object)"utf8"));
+        this(null, Collections.emptyList(), Collections.singletonList((Object)"utf8"));
     }
 
     protected ServerDelegate(Map<String, Object> clientProperties, List<Object> mechanisms, List<Object> locales)
@@ -64,7 +66,8 @@ public class ServerDelegate extends Conn
         conn.connectionStart(_clientProperties, _mechanisms, _locales);
     }
 
-    @Override public void connectionStartOk(Connection conn, ConnectionStartOk ok)
+    @Override
+    public void connectionStartOk(Connection conn, ConnectionStartOk ok)
     {
         conn.setLocale(ok.getLocale());
         String mechanism = ok.getMechanism();
@@ -75,9 +78,9 @@ public class ServerDelegate extends Conn
         if (mechanism == null || mechanism.length() == 0)
         {
             conn.connectionTune
-                (Integer.MAX_VALUE,
+                (getChannelMax(),
                  org.apache.qpid.transport.network.ConnectionBinding.MAX_FRAME_SIZE,
-                 0, Integer.MAX_VALUE);
+                 0, getHeartbeatMax());
             return;
         }
 
@@ -118,7 +121,7 @@ public class ServerDelegate extends Conn
             {
                 ss.dispose();
                 conn.connectionTune
-                    (Integer.MAX_VALUE,
+                    (getChannelMax(),
                      org.apache.qpid.transport.network.ConnectionBinding.MAX_FRAME_SIZE,
                      0, getHeartbeatMax());
                 conn.setAuthorizationID(ss.getAuthorizationID());
@@ -140,19 +143,42 @@ public class ServerDelegate extends Conn
         return Integer.MAX_VALUE;
     }
 
-    @Override public void connectionSecureOk(Connection conn, ConnectionSecureOk ok)
+    protected int getChannelMax()
+    {
+        return Integer.MAX_VALUE;
+    }
+
+    @Override
+    public void connectionSecureOk(Connection conn, ConnectionSecureOk ok)
     {
         secure(conn, ok.getResponse());
     }
 
-    @Override public void connectionTuneOk(Connection conn, ConnectionTuneOk ok)
+    @Override
+    public void connectionTuneOk(Connection conn, ConnectionTuneOk ok)
     {
+        int okChannelMax = ok.getChannelMax();
         
+        if (okChannelMax > getChannelMax())
+        {
+            _logger.error("Connection '" + conn.getConnectionId() + "' being severed, " +
+                    "client connectionTuneOk returned a channelMax (" + okChannelMax +
+                    ") above the servers offered limit (" + getChannelMax() +")");
+
+            //Due to the error we must forcefully close the connection without negotiation
+            conn.getSender().close();
+            return;
+        }
+
+        //0 means no implied limit, except available server resources
+        //(or that forced by protocol limitations [0xFFFF])
+        conn.setChannelMax(okChannelMax == 0 ? Connection.MAX_CHANNEL_MAX : okChannelMax);
     }
 
-    @Override public void connectionOpen(Connection conn, ConnectionOpen open)
+    @Override
+    public void connectionOpen(Connection conn, ConnectionOpen open)
     {
-        conn.connectionOpenOk(Collections.EMPTY_LIST);
+        conn.connectionOpenOk(Collections.emptyList());
 
         conn.setState(OPEN);
     }
@@ -168,7 +194,8 @@ public class ServerDelegate extends Conn
         return new Session(conn, new Binary(atc.getName()), 0);
     }
 
-    @Override public void sessionAttach(Connection conn, SessionAttach atc)
+    @Override
+    public void sessionAttach(Connection conn, SessionAttach atc)
     {
         Session ssn = getSession(conn, atc);
         conn.map(ssn, atc.getChannel());

Modified: qpid/branches/qpid-2935/qpid/java/common/src/main/java/org/apache/qpid/transport/network/io/IoNetworkTransport.java
URL: http://svn.apache.org/viewvc/qpid/branches/qpid-2935/qpid/java/common/src/main/java/org/apache/qpid/transport/network/io/IoNetworkTransport.java?rev=1068464&r1=1068463&r2=1068464&view=diff
==============================================================================
--- qpid/branches/qpid-2935/qpid/java/common/src/main/java/org/apache/qpid/transport/network/io/IoNetworkTransport.java (original)
+++ qpid/branches/qpid-2935/qpid/java/common/src/main/java/org/apache/qpid/transport/network/io/IoNetworkTransport.java Tue Feb  8 16:16:49 2011
@@ -52,7 +52,6 @@ public class IoNetworkTransport implemen
     private long timeout = 60000; 
     private ConnectionSettings settings;    
     
-    @Override
     public void init(ConnectionSettings settings)
     {
         try
@@ -84,20 +83,17 @@ public class IoNetworkTransport implemen
         }
     }
 
-    @Override
     public void receiver(Receiver<ByteBuffer> delegate)
     {
         receiver = new IoReceiver(this, delegate,
                 2*settings.getReadBufferSize() , timeout);
     }
 
-    @Override
     public Sender<ByteBuffer> sender()
     {
         return new IoSender(this, 2*settings.getWriteBufferSize(), timeout);
     }
-    
-    @Override
+
     public void close()
     {
         

Modified: qpid/branches/qpid-2935/qpid/java/common/src/main/java/org/apache/qpid/transport/network/mina/MINANetworkDriver.java
URL: http://svn.apache.org/viewvc/qpid/branches/qpid-2935/qpid/java/common/src/main/java/org/apache/qpid/transport/network/mina/MINANetworkDriver.java?rev=1068464&r1=1068463&r2=1068464&view=diff
==============================================================================
--- qpid/branches/qpid-2935/qpid/java/common/src/main/java/org/apache/qpid/transport/network/mina/MINANetworkDriver.java (original)
+++ qpid/branches/qpid-2935/qpid/java/common/src/main/java/org/apache/qpid/transport/network/mina/MINANetworkDriver.java Tue Feb  8 16:16:49 2011
@@ -83,6 +83,14 @@ public class MINANetworkDriver extends I
 
     private static final Logger _logger = LoggerFactory.getLogger(MINANetworkDriver.class);
 
+    static
+    {
+        org.apache.mina.common.ByteBuffer.setUseDirectBuffers(Boolean.getBoolean("amqj.enableDirectBuffers"));
+
+        //override the MINA defaults to prevent use of the PooledByteBufferAllocator 
+        org.apache.mina.common.ByteBuffer.setAllocator(new SimpleByteBufferAllocator());
+    }
+
     public MINANetworkDriver(boolean useNIO, int processors, boolean executorPool, boolean protectIO)
     {
         _useNIO = useNIO;
@@ -209,14 +217,6 @@ public class MINANetworkDriver extends I
                                                                                  // connector
         }
 
-        org.apache.mina.common.ByteBuffer.setUseDirectBuffers(Boolean.getBoolean("amqj.enableDirectBuffers"));
-        // the MINA default is currently to use the pooled allocator although this may change in future
-        // once more testing of the performance of the simple allocator has been done
-        if (!Boolean.getBoolean("amqj.enablePooledAllocator"))
-        {
-            org.apache.mina.common.ByteBuffer.setAllocator(new SimpleByteBufferAllocator());
-        }
-
         SocketConnectorConfig cfg = (SocketConnectorConfig) _socketConnector.getDefaultConfig();
         String s = "";
                     StackTraceElement[] trace = Thread.currentThread().getStackTrace();

Modified: qpid/branches/qpid-2935/qpid/java/common/src/test/java/org/apache/qpid/thread/ThreadFactoryTest.java
URL: http://svn.apache.org/viewvc/qpid/branches/qpid-2935/qpid/java/common/src/test/java/org/apache/qpid/thread/ThreadFactoryTest.java?rev=1068464&r1=1068463&r2=1068464&view=diff
==============================================================================
--- qpid/branches/qpid-2935/qpid/java/common/src/test/java/org/apache/qpid/thread/ThreadFactoryTest.java (original)
+++ qpid/branches/qpid-2935/qpid/java/common/src/test/java/org/apache/qpid/thread/ThreadFactoryTest.java Tue Feb  8 16:16:49 2011
@@ -1,4 +1,3 @@
-package org.apache.qpid.thread;
 /*
  * 
  * Licensed to the Apache Software Foundation (ASF) under one
@@ -20,18 +19,22 @@ package org.apache.qpid.thread;
  * 
  */
 
+package org.apache.qpid.thread;
 
 import junit.framework.TestCase;
 
+/**
+ * Tests the ThreadFactory.
+ */
 public class ThreadFactoryTest extends TestCase
 {
     public void testThreadFactory()
     {
-        Class threadFactoryClass = null;
+        Class<? extends ThreadFactory> threadFactoryClass = null;
         try
         {
             threadFactoryClass = Class.forName(System.getProperty("qpid.thread_factory",
-                    "org.apache.qpid.thread.DefaultThreadFactory"));            
+                    "org.apache.qpid.thread.DefaultThreadFactory")).asSubclass(ThreadFactory.class);
         }
         // If the thread factory class was wrong it will flagged way before it gets here.
         catch(Exception e)
@@ -41,20 +44,19 @@ public class ThreadFactoryTest extends T
         
         assertEquals(threadFactoryClass, Threading.getThreadFactory().getClass());
     }
-    
-    public void testThreadCreate()
+
+    /**
+     * Tests creating a thread without a priority.   Also verifies that the factory sets the
+     * uncaught exception handler so uncaught exceptions are logged to SLF4J.
+     */
+    public void testCreateThreadWithDefaultPriority()
     {
-        Runnable r = new Runnable(){
-          
-            public void run(){
-                
-            }            
-        };
+        Runnable r = createRunnable();
         
         Thread t = null;
         try
         {
-            t = Threading.getThreadFactory().createThread(r,5);
+            t = Threading.getThreadFactory().createThread(r);
         }
         catch(Exception e)
         {
@@ -62,6 +64,41 @@ public class ThreadFactoryTest extends T
         }
         
         assertNotNull(t);
-        assertEquals(5,t.getPriority());
+        assertEquals(Thread.NORM_PRIORITY, t.getPriority());
+        assertTrue(t.getUncaughtExceptionHandler() instanceof LoggingUncaughtExceptionHandler);
+    }
+
+    /**
+     * Tests creating thread with a priority.   Also verifies that the factory sets the
+     * uncaught exception handler so uncaught exceptions are logged to SLF4J.
+     */
+    public void testCreateThreadWithSpecifiedPriority()
+    {
+        Runnable r = createRunnable();
+
+        Thread t = null;
+        try
+        {
+            t = Threading.getThreadFactory().createThread(r, 4);
+        }
+        catch(Exception e)
+        {
+            fail("Error creating thread using Qpid thread factory");
+        }
+
+        assertNotNull(t);
+        assertEquals(4, t.getPriority());
+        assertTrue(t.getUncaughtExceptionHandler() instanceof LoggingUncaughtExceptionHandler);
+    }
+
+    private Runnable createRunnable()
+    {
+        Runnable r = new Runnable(){
+
+            public void run(){
+
+            }
+        };
+        return r;
     }
 }

Modified: qpid/branches/qpid-2935/qpid/java/genpom
URL: http://svn.apache.org/viewvc/qpid/branches/qpid-2935/qpid/java/genpom?rev=1068464&r1=1068463&r2=1068464&view=diff
==============================================================================
--- qpid/branches/qpid-2935/qpid/java/genpom (original)
+++ qpid/branches/qpid-2935/qpid/java/genpom Tue Feb  8 16:16:49 2011
@@ -32,9 +32,11 @@ parser.add_option("-a", "--artifact")
 parser.add_option("-v", "--version")
 parser.add_option("-d", "--description", default="")
 parser.add_option("-u", "--url", default="")
-parser.add_option("-i", "--ignore", action="store_true", help="ignore missing poms")
+parser.add_option("-m", "--modules", help="modules dependencies")
+parser.add_option("-p", "--prefix", help="prefix of the project's artifacts names")
+parser.add_option("-i", "--ignore", action="store_true", help="ignore missing deps")
 parser.add_option("-s", "--search-path", action="append",
-                  help="the path to search for poms")
+                  help="the path to search for deps")
 parser.add_option("-S", "--scope", metavar="ARTIFACT=SCOPE", action="append",
                   default=[],
                   help="specify scope for an artifact")
@@ -62,16 +64,18 @@ if opts.version is None:
 if opts.name is None and opts.artifact is None:
   die("one of name or artifact must be supplied")
 
+if opts.prefix is not None:
+  opts.artifact = opts.prefix + "-" + opts.artifact
+
 if opts.name is None:
   opts.name = opts.artifact
 
 if opts.artifact is None:
   opts.artifact = opts.name
 
-def lookup(pom, attr):
-  nd = pom["project"][attr]
+def lookup(dep, attr):
+  nd = dep["dep"][attr]
   if nd is None:
-    nd = pom["project/parent"][attr]
     if nd is None:
       return None
   return nd.text()
@@ -90,17 +94,35 @@ for s in opts.scope:
   scopes[m.group(1)] = m.group(2)
 
 deps = []
+module_depends = []
+if opts.modules is not None:
+  module_depends = opts.modules.replace("/", "-").split();
+  
+for module in module_depends:
+  if opts.prefix is None:
+     artifactId = module
+  else:
+     artifactId = opts.prefix + "-" + module
+  
+  deps.append("""
+    <dependency>
+      <groupId>%s</groupId>
+      <artifactId>%s</artifactId>
+      <version>%s</version>
+    </dependency>
+""" % (opts.group, artifactId, opts.version))
+
 for jar in jars:
   base, ext = os.path.splitext(os.path.basename(jar))
-  pom = search(expanded_path, "%s.pom" % base)
-  if pom is None:
+  dep = search(expanded_path, "%s.xml" % base)
+  if dep is None:
     if opts.ignore:
       continue
     else:
-      die("unable to locate pom for %s" % jar)
-  group = lookup(pom, "groupId")
-  artifactId = lookup(pom, "artifactId")
-  version = lookup(pom, "version")
+      die("unable to locate xml for %s" % jar)
+  group = lookup(dep, "groupId")
+  artifactId = lookup(dep, "artifactId")
+  version = lookup(dep, "version")
   deps.append("""
     <dependency>
       <groupId>%s</groupId>
@@ -119,22 +141,27 @@ TEMPLATE = """<?xml version="1.0" encodi
   <groupId>%(group)s</groupId>
   <artifactId>%(artifact)s</artifactId>
   <version>%(version)s</version>
+
   <name>%(name)s</name>
   <url>%(url)s</url>
   <description>%(description)s</description>
+
   <organization>
     <name>The Apache Software Foundation</name>
     <url>http://www.apache.org</url>
   </organization>
+
   <licenses>
     <license>
       <name>The Apache Software License, Version 2.0</name>
-      <url>/LICENSE.txt</url>
+      <url>http://www.apache.org/licenses/LICENSE-2.0.html</url>
     </license>
   </licenses>
+
   <dependencies>
     %(dependencies)s
   </dependencies>
+
 </project>
 """
 

Propchange: qpid/branches/qpid-2935/qpid/java/management/client/src/main/java/org/apache/qpid/management/
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Tue Feb  8 16:16:49 2011
@@ -1,3 +1,4 @@
 /incubator/qpid/trunk/qpid/java/management/client/src/main/java/org/apache/qpid/management:443187-703176
 /qpid/branches/java-broker-0-10/qpid/java/management/client/src/main/java/org/apache/qpid/management:795950-829653
 /qpid/branches/java-network-refactor/qpid/java/management/client/src/main/java/org/apache/qpid/management:805429-821809
+/qpid/trunk/qpid/java/management/client/src/main/java/org/apache/qpid/management:1061302-1068442

Propchange: qpid/branches/qpid-2935/qpid/java/management/client/src/test/java/org/apache/qpid/management/
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Tue Feb  8 16:16:49 2011
@@ -1,3 +1,4 @@
 /incubator/qpid/trunk/qpid/java/management/client/src/test/java/org/apache/qpid/management:443187-703176
 /qpid/branches/java-broker-0-10/qpid/java/management/client/src/test/java/org/apache/qpid/management:795950-829653
 /qpid/branches/java-network-refactor/qpid/java/management/client/src/test/java/org/apache/qpid/management:805429-821809
+/qpid/trunk/qpid/java/management/client/src/test/java/org/apache/qpid/management:1061302-1068442

Propchange: qpid/branches/qpid-2935/qpid/java/management/common/src/main/java/org/apache/qpid/management/common/mbeans/ConfigurationManagement.java
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Tue Feb  8 16:16:49 2011
@@ -1,3 +1,4 @@
 /qpid/branches/java-broker-0-10/qpid/java/management/common/src/main/java/org/apache/qpid/management/common/mbeans/ConfigurationManagement.java:795950-829653
 /qpid/branches/java-network-refactor/qpid/java/management/common/src/main/java/org/apache/qpid/management/common/mbeans/ConfigurationManagement.java:805429-821809
 /qpid/trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/configuration/management/ConfigurationManagement.java:742626,743015,743028-743029,743304,743306,743311,743357,744113,747363,747367,747369-747370,747376,747783,747868-747870,747875,748561,748591,748641,748680,748686,749149,749282,749285,749315,749340,749572,753219-753220,753253,754934,754958,755256,757258,757270,758730,759097,760919,761721,762365,762992,763959,764026,764109,764140,764790
+/qpid/trunk/qpid/java/management/common/src/main/java/org/apache/qpid/management/common/mbeans/ConfigurationManagement.java:1061302-1068442

Propchange: qpid/branches/qpid-2935/qpid/java/management/common/src/main/java/org/apache/qpid/management/common/mbeans/LoggingManagement.java
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Tue Feb  8 16:16:49 2011
@@ -1,3 +1,4 @@
 /qpid/branches/java-broker-0-10/qpid/java/management/common/src/main/java/org/apache/qpid/management/common/mbeans/LoggingManagement.java:795950-829653
 /qpid/branches/java-network-refactor/qpid/java/management/common/src/main/java/org/apache/qpid/management/common/mbeans/LoggingManagement.java:805429-821809
 /qpid/trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/logging/management/LoggingManagement.java:742626,743015,743028-743029,743304,743306,743311,743357,744113,747363,747367,747369-747370,747376,747783,747868-747870,747875,748561,748591,748641,748680,748686,749149,749282,749285,749315,749340,749572,753219-753220,753253,754934,754958,755256,757258,757270,758730,759097,760919,761721,762365,762992,763959,764026,764109,764140,764790
+/qpid/trunk/qpid/java/management/common/src/main/java/org/apache/qpid/management/common/mbeans/LoggingManagement.java:1061302-1068442

Propchange: qpid/branches/qpid-2935/qpid/java/management/common/src/main/java/org/apache/qpid/management/common/mbeans/ManagedBroker.java
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Tue Feb  8 16:16:49 2011
@@ -2,3 +2,4 @@
 /qpid/branches/java-broker-0-10/qpid/java/management/common/src/main/java/org/apache/qpid/management/common/mbeans/ManagedBroker.java:795950-829653
 /qpid/branches/java-network-refactor/qpid/java/management/common/src/main/java/org/apache/qpid/management/common/mbeans/ManagedBroker.java:805429-821809
 /qpid/trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/management/ManagedBroker.java:753219-753220,753253,758730,759097,760919,761721,762365,762992,763959,764026,764109,764140,764790
+/qpid/trunk/qpid/java/management/common/src/main/java/org/apache/qpid/management/common/mbeans/ManagedBroker.java:1061302-1068442

Propchange: qpid/branches/qpid-2935/qpid/java/management/common/src/main/java/org/apache/qpid/management/common/mbeans/ManagedConnection.java
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Tue Feb  8 16:16:49 2011
@@ -1,3 +1,4 @@
 /qpid/branches/java-broker-0-10/qpid/java/management/common/src/main/java/org/apache/qpid/management/common/mbeans/ManagedConnection.java:795950-829653
 /qpid/branches/java-network-refactor/qpid/java/management/common/src/main/java/org/apache/qpid/management/common/mbeans/ManagedConnection.java:805429-821809
 /qpid/trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/protocol/ManagedConnection.java:742626,743015,743028-743029,743304,743306,743311,743357,744113,747363,747367,747369-747370,747376,747783,747868-747870,747875,748561,748591,748641,748680,748686,749149,749282,749285,749315,749340,749572,753219-753220,753253,754934,754958,755256,757258,757270,758730,759097,760919,761721,762365,762992,763959,764026,764109,764140,764790
+/qpid/trunk/qpid/java/management/common/src/main/java/org/apache/qpid/management/common/mbeans/ManagedConnection.java:1061302-1068442

Propchange: qpid/branches/qpid-2935/qpid/java/management/common/src/main/java/org/apache/qpid/management/common/mbeans/ManagedExchange.java
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Tue Feb  8 16:16:49 2011
@@ -1,3 +1,4 @@
 /qpid/branches/java-broker-0-10/qpid/java/management/common/src/main/java/org/apache/qpid/management/common/mbeans/ManagedExchange.java:795950-829653
 /qpid/branches/java-network-refactor/qpid/java/management/common/src/main/java/org/apache/qpid/management/common/mbeans/ManagedExchange.java:805429-821809
 /qpid/trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/exchange/ManagedExchange.java:742626,743015,743028-743029,743304,743306,743311,743357,744113,747363,747367,747369-747370,747376,747783,747868-747870,747875,748561,748591,748641,748680,748686,749149,749282,749285,749315,749340,749572,753219-753220,753253,754934,754958,755256,757258,757270,758730,759097,760919,761721,762365,762992,763959,764026,764109,764140,764790
+/qpid/trunk/qpid/java/management/common/src/main/java/org/apache/qpid/management/common/mbeans/ManagedExchange.java:1061302-1068442

Propchange: qpid/branches/qpid-2935/qpid/java/management/common/src/main/java/org/apache/qpid/management/common/mbeans/ManagedQueue.java
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Tue Feb  8 16:16:49 2011
@@ -2,3 +2,4 @@
 /qpid/branches/java-broker-0-10/qpid/java/management/common/src/main/java/org/apache/qpid/management/common/mbeans/ManagedQueue.java:795950-829653
 /qpid/branches/java-network-refactor/qpid/java/management/common/src/main/java/org/apache/qpid/management/common/mbeans/ManagedQueue.java:805429-821809
 /qpid/trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/queue/ManagedQueue.java:753219-753220,753253,757270,758730,759097,760919,761721,762365,762992,763959,764026,764109,764140,764790
+/qpid/trunk/qpid/java/management/common/src/main/java/org/apache/qpid/management/common/mbeans/ManagedQueue.java:1061302-1068442

Propchange: qpid/branches/qpid-2935/qpid/java/management/common/src/main/java/org/apache/qpid/management/common/mbeans/UserManagement.java
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Tue Feb  8 16:16:49 2011
@@ -1,3 +1,4 @@
 /qpid/branches/java-broker-0-10/qpid/java/management/common/src/main/java/org/apache/qpid/management/common/mbeans/UserManagement.java:795950-829653
 /qpid/branches/java-network-refactor/qpid/java/management/common/src/main/java/org/apache/qpid/management/common/mbeans/UserManagement.java:805429-821809
 /qpid/trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/security/access/management/UserManagement.java:742626,743015,743028-743029,743304,743306,743311,743357,744113,747363,747367,747369-747370,747376,747783,747868-747870,747875,748561,748591,748641,748680,748686,749149,749282,749285,749315,749340,749572,753219-753220,753253,754934,754958,755256,757258,757270,758730,759097,760919,761721,762365,762992,763959,764026,764109,764140,764790
+/qpid/trunk/qpid/java/management/common/src/main/java/org/apache/qpid/management/common/mbeans/UserManagement.java:1061302-1068442

Propchange: qpid/branches/qpid-2935/qpid/java/management/common/src/main/java/org/apache/qpid/management/common/mbeans/annotations/MBeanAttribute.java
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Tue Feb  8 16:16:49 2011
@@ -2,3 +2,4 @@
 /qpid/branches/java-broker-0-10/qpid/java/management/common/src/main/java/org/apache/qpid/management/common/mbeans/annotations/MBeanAttribute.java:795950-829653
 /qpid/branches/java-network-refactor/qpid/java/management/common/src/main/java/org/apache/qpid/management/common/mbeans/annotations/MBeanAttribute.java:805429-821809
 /qpid/trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/management/MBeanAttribute.java:753219-753220,753253,758730,759097,760919,761721,762365,762992,763959,764026,764109,764140,764790
+/qpid/trunk/qpid/java/management/common/src/main/java/org/apache/qpid/management/common/mbeans/annotations/MBeanAttribute.java:1061302-1068442

Propchange: qpid/branches/qpid-2935/qpid/java/management/common/src/main/java/org/apache/qpid/management/common/mbeans/annotations/MBeanConstructor.java
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Tue Feb  8 16:16:49 2011
@@ -2,3 +2,4 @@
 /qpid/branches/java-broker-0-10/qpid/java/management/common/src/main/java/org/apache/qpid/management/common/mbeans/annotations/MBeanConstructor.java:795950-829653
 /qpid/branches/java-network-refactor/qpid/java/management/common/src/main/java/org/apache/qpid/management/common/mbeans/annotations/MBeanConstructor.java:805429-821809
 /qpid/trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/management/MBeanConstructor.java:753219-753220,753253,758730,759097,760919,761721,762365,762992,763959,764026,764109,764140,764790
+/qpid/trunk/qpid/java/management/common/src/main/java/org/apache/qpid/management/common/mbeans/annotations/MBeanConstructor.java:1061302-1068442

Propchange: qpid/branches/qpid-2935/qpid/java/management/common/src/main/java/org/apache/qpid/management/common/mbeans/annotations/MBeanDescription.java
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Tue Feb  8 16:16:49 2011
@@ -2,3 +2,4 @@
 /qpid/branches/java-broker-0-10/qpid/java/management/common/src/main/java/org/apache/qpid/management/common/mbeans/annotations/MBeanDescription.java:795950-829653
 /qpid/branches/java-network-refactor/qpid/java/management/common/src/main/java/org/apache/qpid/management/common/mbeans/annotations/MBeanDescription.java:805429-821809
 /qpid/trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/management/MBeanDescription.java:753219-753220,753253,758730,759097,760919,761721,762365,762992,763959,764026,764109,764140,764790
+/qpid/trunk/qpid/java/management/common/src/main/java/org/apache/qpid/management/common/mbeans/annotations/MBeanDescription.java:1061302-1068442

Propchange: qpid/branches/qpid-2935/qpid/java/management/common/src/main/java/org/apache/qpid/management/common/mbeans/annotations/MBeanOperation.java
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Tue Feb  8 16:16:49 2011
@@ -2,3 +2,4 @@
 /qpid/branches/java-broker-0-10/qpid/java/management/common/src/main/java/org/apache/qpid/management/common/mbeans/annotations/MBeanOperation.java:795950-829653
 /qpid/branches/java-network-refactor/qpid/java/management/common/src/main/java/org/apache/qpid/management/common/mbeans/annotations/MBeanOperation.java:805429-821809
 /qpid/trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/management/MBeanOperation.java:753219-753220,753253,758730,759097,760919,761721,762365,762992,763959,764026,764109,764140,764790
+/qpid/trunk/qpid/java/management/common/src/main/java/org/apache/qpid/management/common/mbeans/annotations/MBeanOperation.java:1061302-1068442

Propchange: qpid/branches/qpid-2935/qpid/java/management/common/src/main/java/org/apache/qpid/management/common/mbeans/annotations/MBeanOperationParameter.java
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Tue Feb  8 16:16:49 2011
@@ -2,3 +2,4 @@
 /qpid/branches/java-broker-0-10/qpid/java/management/common/src/main/java/org/apache/qpid/management/common/mbeans/annotations/MBeanOperationParameter.java:795950-829653
 /qpid/branches/java-network-refactor/qpid/java/management/common/src/main/java/org/apache/qpid/management/common/mbeans/annotations/MBeanOperationParameter.java:805429-821809
 /qpid/trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/management/MBeanOperationParameter.java:753219-753220,753253,758730,759097,760919,761721,762365,762992,763959,764026,764109,764140,764790
+/qpid/trunk/qpid/java/management/common/src/main/java/org/apache/qpid/management/common/mbeans/annotations/MBeanOperationParameter.java:1061302-1068442

Propchange: qpid/branches/qpid-2935/qpid/java/management/eclipse-plugin/src/
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Tue Feb  8 16:16:49 2011
@@ -1,3 +1,4 @@
 /qpid/branches/java-broker-0-10/qpid/java/management/eclipse-plugin/src:795950-829653
 /qpid/branches/java-network-refactor/qpid/java/management/eclipse-plugin/src:805429-821809
 /qpid/branches/jmx_mc_gsoc09/qpid/java/management/eclipse-plugin/src:788755
+/qpid/trunk/qpid/java/management/eclipse-plugin/src:1061302-1068442

Propchange: qpid/branches/qpid-2935/qpid/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/views/type/ConnectionTypeTabControl.java
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Tue Feb  8 16:16:49 2011
@@ -1,3 +1,4 @@
 /incubator/qpid/trunk/qpid/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/views/type/ConnectionTypeTabControl.java:443187-726139
 /qpid/branches/java-broker-0-10/qpid/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/views/type/ConnectionTypeTabControl.java:795950-829653
 /qpid/branches/java-network-refactor/qpid/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/views/type/ConnectionTypeTabControl.java:805429-821809
+/qpid/trunk/qpid/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/views/type/ConnectionTypeTabControl.java:1061302-1068442

Propchange: qpid/branches/qpid-2935/qpid/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/views/type/ExchangeTypeTabControl.java
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Tue Feb  8 16:16:49 2011
@@ -1,3 +1,4 @@
 /incubator/qpid/trunk/qpid/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/views/type/ExchangeTypeTabControl.java:443187-726139
 /qpid/branches/java-broker-0-10/qpid/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/views/type/ExchangeTypeTabControl.java:795950-829653
 /qpid/branches/java-network-refactor/qpid/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/views/type/ExchangeTypeTabControl.java:805429-821809
+/qpid/trunk/qpid/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/views/type/ExchangeTypeTabControl.java:1061302-1068442

Propchange: qpid/branches/qpid-2935/qpid/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/views/type/MBeanTypeTabControl.java
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Tue Feb  8 16:16:49 2011
@@ -1,3 +1,4 @@
 /incubator/qpid/trunk/qpid/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/views/type/MBeanTypeTabControl.java:443187-726139
 /qpid/branches/java-broker-0-10/qpid/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/views/type/MBeanTypeTabControl.java:795950-829653
 /qpid/branches/java-network-refactor/qpid/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/views/type/MBeanTypeTabControl.java:805429-821809
+/qpid/trunk/qpid/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/views/type/MBeanTypeTabControl.java:1061302-1068442

Propchange: qpid/branches/qpid-2935/qpid/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/views/type/QueueTypeTabControl.java
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Tue Feb  8 16:16:49 2011
@@ -1,3 +1,4 @@
 /incubator/qpid/trunk/qpid/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/views/type/QueueTypeTabControl.java:443187-726139
 /qpid/branches/java-broker-0-10/qpid/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/views/type/QueueTypeTabControl.java:795950-829653
 /qpid/branches/java-network-refactor/qpid/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/views/type/QueueTypeTabControl.java:805429-821809
+/qpid/trunk/qpid/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/views/type/QueueTypeTabControl.java:1061302-1068442

Propchange: qpid/branches/qpid-2935/qpid/java/management/eclipse-plugin/src/main/resources/macosx/Contents/MacOS/qpidmc
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Tue Feb  8 16:16:49 2011
@@ -1,3 +1,4 @@
 /incubator/qpid/trunk/qpid/java/management/eclipse-plugin/src/main/resources/macosx/Contents/MacOS/qpidmc:443187-726139
 /qpid/branches/java-broker-0-10/qpid/java/management/eclipse-plugin/src/main/resources/macosx/Contents/MacOS/qpidmc:795950-829653
 /qpid/branches/java-network-refactor/qpid/java/management/eclipse-plugin/src/main/resources/macosx/Contents/MacOS/qpidmc:805429-821809
+/qpid/trunk/qpid/java/management/eclipse-plugin/src/main/resources/macosx/Contents/MacOS/qpidmc:1061302-1068442



---------------------------------------------------------------------
Apache Qpid - AMQP Messaging Implementation
Project:      http://qpid.apache.org
Use/Interact: mailto:commits-subscribe@qpid.apache.org