Author: robbie
Date: Tue Jul 31 13:08:37 2012
New Revision: 1367529

URL: http://svn.apache.org/viewvc?rev=1367529&view=rev
Log:
QPID-4164: Prevent the erroneous re-storing of recovered messages during 
move/copyMessage management functions.

merged from trunk r1365832

Modified:
    qpid/branches/0.18/qpid/java/   (props changed)
    qpid/branches/0.18/qpid/java/amqp-1-0-client/   (props changed)
    qpid/branches/0.18/qpid/java/amqp-1-0-client-jms/   (props changed)
    qpid/branches/0.18/qpid/java/amqp-1-0-common/   (props changed)
    
qpid/branches/0.18/qpid/java/bdbstore/src/main/java/org/apache/qpid/server/store/berkeleydb/AbstractBDBMessageStore.java
    qpid/branches/0.18/qpid/java/broker/   (props changed)
    
qpid/branches/0.18/qpid/java/broker-plugins/management-jmx/src/test/java/org/apache/qpid/systest/management/jmx/QueueManagementTest.java
    qpid/branches/0.18/qpid/java/broker/bin/   (props changed)
    
qpid/branches/0.18/qpid/java/broker/src/main/java/org/apache/qpid/server/management/
   (props changed)
    
qpid/branches/0.18/qpid/java/broker/src/main/java/org/apache/qpid/server/message/MessageMetaData_1_0.java
   (props changed)
    
qpid/branches/0.18/qpid/java/broker/src/main/java/org/apache/qpid/server/protocol/ProtocolEngine_1_0_0.java
   (props changed)
    
qpid/branches/0.18/qpid/java/broker/src/main/java/org/apache/qpid/server/protocol/ProtocolEngine_1_0_0_SASL.java
   (props changed)
    
qpid/branches/0.18/qpid/java/broker/src/main/java/org/apache/qpid/server/protocol/v1_0/
   (props changed)
    
qpid/branches/0.18/qpid/java/broker/src/main/java/org/apache/qpid/server/queue/ 
  (props changed)
    
qpid/branches/0.18/qpid/java/broker/src/main/java/org/apache/qpid/server/store/derby/DerbyMessageStore.java
    
qpid/branches/0.18/qpid/java/broker/src/main/java/org/apache/qpid/server/virtualhost/
   (props changed)
    
qpid/branches/0.18/qpid/java/management/common/src/main/java/org/apache/qpid/management/common/mbeans/ConfigurationManagement.java
   (props changed)
    
qpid/branches/0.18/qpid/java/management/common/src/main/java/org/apache/qpid/management/common/mbeans/LoggingManagement.java
   (props changed)
    
qpid/branches/0.18/qpid/java/management/common/src/main/java/org/apache/qpid/management/common/mbeans/ManagedBroker.java
   (props changed)
    
qpid/branches/0.18/qpid/java/management/common/src/main/java/org/apache/qpid/management/common/mbeans/ManagedConnection.java
   (props changed)
    
qpid/branches/0.18/qpid/java/management/common/src/main/java/org/apache/qpid/management/common/mbeans/ManagedExchange.java
   (props changed)
    
qpid/branches/0.18/qpid/java/management/common/src/main/java/org/apache/qpid/management/common/mbeans/ManagedQueue.java
   (props changed)
    
qpid/branches/0.18/qpid/java/management/common/src/main/java/org/apache/qpid/management/common/mbeans/UserManagement.java
   (props changed)
    
qpid/branches/0.18/qpid/java/management/common/src/main/java/org/apache/qpid/management/common/mbeans/annotations/MBeanAttribute.java
   (props changed)
    
qpid/branches/0.18/qpid/java/management/common/src/main/java/org/apache/qpid/management/common/mbeans/annotations/MBeanConstructor.java
   (props changed)
    
qpid/branches/0.18/qpid/java/management/common/src/main/java/org/apache/qpid/management/common/mbeans/annotations/MBeanDescription.java
   (props changed)
    
qpid/branches/0.18/qpid/java/management/common/src/main/java/org/apache/qpid/management/common/mbeans/annotations/MBeanOperation.java
   (props changed)
    
qpid/branches/0.18/qpid/java/management/common/src/main/java/org/apache/qpid/management/common/mbeans/annotations/MBeanOperationParameter.java
   (props changed)
    qpid/branches/0.18/qpid/java/management/eclipse-plugin/src/   (props 
changed)
    
qpid/branches/0.18/qpid/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/views/type/ConnectionTypeTabControl.java
   (props changed)
    
qpid/branches/0.18/qpid/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/views/type/ExchangeTypeTabControl.java
   (props changed)
    
qpid/branches/0.18/qpid/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/views/type/MBeanTypeTabControl.java
   (props changed)
    
qpid/branches/0.18/qpid/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/views/type/QueueTypeTabControl.java
   (props changed)
    
qpid/branches/0.18/qpid/java/management/eclipse-plugin/src/main/resources/macosx/Contents/MacOS/qpidmc
   (props changed)
    
qpid/branches/0.18/qpid/java/systests/src/main/java/org/apache/qpid/server/SupportedProtocolVersionsTest.java
   (props changed)
    
qpid/branches/0.18/qpid/java/systests/src/main/java/org/apache/qpid/test/utils/QpidBrokerTestCase.java
   (props changed)
    qpid/branches/0.18/qpid/java/test-profiles/   (props changed)
    qpid/branches/0.18/qpid/java/test-profiles/CPPExcludes   (props changed)
    qpid/branches/0.18/qpid/java/test-profiles/Excludes   (props changed)
    qpid/branches/0.18/qpid/java/test-profiles/JavaBDBExcludes   (props changed)
    qpid/branches/0.18/qpid/java/test-profiles/JavaExcludes   (props changed)
    qpid/branches/0.18/qpid/java/test-profiles/JavaPre010Excludes   (props 
changed)
    qpid/branches/0.18/qpid/java/test-profiles/JavaTransientExcludes   
(contents, props changed)
    qpid/branches/0.18/qpid/java/test-profiles/XAExcludes   (props changed)
    qpid/branches/0.18/qpid/java/test-profiles/cpp.async.testprofile   (props 
changed)
    qpid/branches/0.18/qpid/java/test-profiles/cpp.cluster.testprofile   (props 
changed)
    qpid/branches/0.18/qpid/java/test-profiles/cpp.noprefetch.testprofile   
(props changed)
    qpid/branches/0.18/qpid/java/test-profiles/cpp.ssl.excludes   (props 
changed)
    qpid/branches/0.18/qpid/java/test-profiles/cpp.ssl.testprofile   (props 
changed)
    qpid/branches/0.18/qpid/java/test-profiles/cpp.testprofile   (props changed)
    qpid/branches/0.18/qpid/java/test-profiles/java-bdb-spawn.0-9-1.testprofile 
  (props changed)
    qpid/branches/0.18/qpid/java/test-profiles/java-bdb.0-9-1.testprofile   
(props changed)
    qpid/branches/0.18/qpid/java/test-profiles/java-dby-spawn.0-9-1.testprofile 
  (props changed)
    qpid/branches/0.18/qpid/java/test-profiles/java-dby.0-9-1.testprofile   
(props changed)
    qpid/branches/0.18/qpid/java/test-profiles/java-mms-spawn.0-10.testprofile  
 (props changed)
    qpid/branches/0.18/qpid/java/test-profiles/java-mms-spawn.0-9-1.testprofile 
  (props changed)
    qpid/branches/0.18/qpid/java/test-profiles/java-mms.0-9-1.testprofile   
(props changed)
    qpid/branches/0.18/qpid/java/test-profiles/log4j-test.xml   (props changed)
    qpid/branches/0.18/qpid/java/test-profiles/test-provider.properties   
(props changed)
    qpid/branches/0.18/qpid/java/test-profiles/test_resources/   (props changed)
    qpid/branches/0.18/qpid/java/test-profiles/testprofile.defaults   (props 
changed)

Propchange: qpid/branches/0.18/qpid/java/
------------------------------------------------------------------------------
  Merged /qpid/trunk/qpid/java:r1365832

Propchange: qpid/branches/0.18/qpid/java/amqp-1-0-client/
------------------------------------------------------------------------------
  Merged /qpid/trunk/qpid/java/amqp-1-0-client:r1365832

Propchange: qpid/branches/0.18/qpid/java/amqp-1-0-client-jms/
------------------------------------------------------------------------------
  Merged /qpid/trunk/qpid/java/amqp-1-0-client-jms:r1365832

Propchange: qpid/branches/0.18/qpid/java/amqp-1-0-common/
------------------------------------------------------------------------------
  Merged /qpid/trunk/qpid/java/amqp-1-0-common:r1365832

Modified: 
qpid/branches/0.18/qpid/java/bdbstore/src/main/java/org/apache/qpid/server/store/berkeleydb/AbstractBDBMessageStore.java
URL: 
http://svn.apache.org/viewvc/qpid/branches/0.18/qpid/java/bdbstore/src/main/java/org/apache/qpid/server/store/berkeleydb/AbstractBDBMessageStore.java?rev=1367529&r1=1367528&r2=1367529&view=diff
==============================================================================
--- 
qpid/branches/0.18/qpid/java/bdbstore/src/main/java/org/apache/qpid/server/store/berkeleydb/AbstractBDBMessageStore.java
 (original)
+++ 
qpid/branches/0.18/qpid/java/bdbstore/src/main/java/org/apache/qpid/server/store/berkeleydb/AbstractBDBMessageStore.java
 Tue Jul 31 13:08:37 2012
@@ -546,7 +546,7 @@ public abstract class AbstractBDBMessage
                 long messageId = LongBinding.entryToLong(key);
                 StorableMessageMetaData metaData = 
valueBinding.entryToObject(value);
 
-                StoredBDBMessage message = new StoredBDBMessage(messageId, 
metaData, false);
+                StoredBDBMessage message = new StoredBDBMessage(messageId, 
metaData, true);
 
                 mrh.message(message);
 
@@ -1576,34 +1576,26 @@ public abstract class AbstractBDBMessage
     {
 
         private final long _messageId;
-        private volatile SoftReference<StorableMessageMetaData> _metaDataRef;
+        private final boolean _isRecovered;
 
         private StorableMessageMetaData _metaData;
-        private volatile SoftReference<byte[]> _dataRef;
+        private volatile SoftReference<StorableMessageMetaData> _metaDataRef;
+
         private byte[] _data;
+        private volatile SoftReference<byte[]> _dataRef;
 
         StoredBDBMessage(long messageId, StorableMessageMetaData metaData)
         {
-            this(messageId, metaData, true);
+            this(messageId, metaData, false);
         }
 
-
-        StoredBDBMessage(long messageId,
-                           StorableMessageMetaData metaData, boolean persist)
+        StoredBDBMessage(long messageId, StorableMessageMetaData metaData, 
boolean isRecovered)
         {
-            try
-            {
-                _messageId = messageId;
-                _metaData = metaData;
-
-                _metaDataRef = new 
SoftReference<StorableMessageMetaData>(metaData);
-
-            }
-            catch (DatabaseException e)
-            {
-                throw new RuntimeException(e);
-            }
+            _messageId = messageId;
+            _isRecovered = isRecovered;
 
+            _metaData = metaData;
+            _metaDataRef = new 
SoftReference<StorableMessageMetaData>(metaData);
         }
 
         public StorableMessageMetaData getMetaData()
@@ -1693,8 +1685,7 @@ public abstract class AbstractBDBMessage
 
         synchronized void store(com.sleepycat.je.Transaction txn)
         {
-
-            if(unstored())
+            if (!stored())
             {
                 try
                 {
@@ -1724,14 +1715,9 @@ public abstract class AbstractBDBMessage
             }
         }
 
-        private boolean unstored()
-        {
-            return _metaData != null;
-        }
-
         public synchronized StoreFuture flushToStore()
         {
-            if(unstored())
+            if(!stored())
             {
                 com.sleepycat.je.Transaction txn = 
_environment.beginTransaction(null, null);
                 store(txn);
@@ -1755,6 +1741,11 @@ public abstract class AbstractBDBMessage
                 throw new RuntimeException(e);
             }
         }
+
+        private boolean stored()
+        {
+            return _metaData == null || _isRecovered;
+        }
     }
 
     private class BDBTransaction implements 
org.apache.qpid.server.store.Transaction

Propchange: qpid/branches/0.18/qpid/java/broker/
------------------------------------------------------------------------------
  Merged /qpid/trunk/qpid/java/broker:r1365832

Modified: 
qpid/branches/0.18/qpid/java/broker-plugins/management-jmx/src/test/java/org/apache/qpid/systest/management/jmx/QueueManagementTest.java
URL: 
http://svn.apache.org/viewvc/qpid/branches/0.18/qpid/java/broker-plugins/management-jmx/src/test/java/org/apache/qpid/systest/management/jmx/QueueManagementTest.java?rev=1367529&r1=1367528&r2=1367529&view=diff
==============================================================================
--- 
qpid/branches/0.18/qpid/java/broker-plugins/management-jmx/src/test/java/org/apache/qpid/systest/management/jmx/QueueManagementTest.java
 (original)
+++ 
qpid/branches/0.18/qpid/java/broker-plugins/management-jmx/src/test/java/org/apache/qpid/systest/management/jmx/QueueManagementTest.java
 Tue Jul 31 13:08:37 2012
@@ -41,10 +41,12 @@ import javax.jms.MessageConsumer;
 import javax.jms.MessageListener;
 import javax.jms.Queue;
 import javax.jms.Session;
+import javax.jms.TextMessage;
 import javax.management.Notification;
 import javax.management.NotificationListener;
 import javax.management.openmbean.CompositeData;
 import javax.management.openmbean.TabularData;
+import javax.naming.NamingException;
 
 import java.util.ArrayList;
 import java.util.Arrays;
@@ -83,7 +85,6 @@ public class QueueManagementTest extends
     private ManagedQueue _managedSourceQueue;
     private ManagedQueue _managedDestinationQueue;
 
-
     public void setUp() throws Exception
     {
         _jmxUtils = new JMXTestUtils(this);
@@ -93,10 +94,8 @@ public class QueueManagementTest extends
         _sourceQueueName = getTestQueueName() + "_src";
         _destinationQueueName = getTestQueueName() + "_dest";
 
-        _connection = getConnection();
-        _connection.start();
+        createConnectionAndSession();
 
-        _session = _connection.createSession(true, Session.SESSION_TRANSACTED);
         _sourceQueue = _session.createQueue(_sourceQueueName);
         _destinationQueue = _session.createQueue(_destinationQueueName);
         createQueueOnBroker(_sourceQueue);
@@ -104,8 +103,7 @@ public class QueueManagementTest extends
 
         _jmxUtils.open();
 
-        _managedSourceQueue = _jmxUtils.getManagedQueue(_sourceQueueName);
-        _managedDestinationQueue = 
_jmxUtils.getManagedQueue(_destinationQueueName);
+        createManagementInterfacesForQueues();
     }
 
     public void tearDown() throws Exception
@@ -498,6 +496,70 @@ public class QueueManagementTest extends
         assertEquals("Did not consume all messages from destination queue", 
numberOfMessagesToSend, totalConsumed.intValue());
     }
 
+    /**
+     * Tests {@link ManagedQueue#moveMessages(long, long, String)} interface.
+     */
+    public void testMoveMessageBetweenQueuesWithBrokerRestart() throws 
Exception
+    {
+        final int numberOfMessagesToSend = 1;
+
+        sendMessage(_session, _sourceQueue, numberOfMessagesToSend);
+        syncSession(_session);
+        assertEquals("Unexpected queue depth after send", 
numberOfMessagesToSend, _managedSourceQueue.getMessageCount().intValue());
+
+        restartBroker();
+
+        createManagementInterfacesForQueues();
+        createConnectionAndSession();
+
+        List<Long> amqMessagesIds = getAMQMessageIdsOn(_managedSourceQueue, 1, 
numberOfMessagesToSend);
+
+        // Move messages to destination
+        long messageId = amqMessagesIds.get(0);
+        _managedSourceQueue.moveMessages(messageId, messageId, 
_destinationQueueName);
+
+        assertEquals("Unexpected queue depth on destination queue after move", 
1, _managedDestinationQueue.getMessageCount().intValue());
+        assertEquals("Unexpected queue depth on source queue after move", 0, 
_managedSourceQueue.getMessageCount().intValue());
+
+        assertMessageIndicesOn(_destinationQueue, 0);
+    }
+
+    /**
+     * Tests {@link ManagedQueue#copyMessages(long, long, String)} interface.
+     */
+    public void testCopyMessageBetweenQueuesWithBrokerRestart() throws 
Exception
+    {
+        final int numberOfMessagesToSend = 1;
+
+        sendMessage(_session, _sourceQueue, numberOfMessagesToSend);
+        syncSession(_session);
+        assertEquals("Unexpected queue depth after send", 
numberOfMessagesToSend, _managedSourceQueue.getMessageCount().intValue());
+
+        restartBroker();
+
+        createManagementInterfacesForQueues();
+        createConnectionAndSession();
+
+        List<Long> amqMessagesIds = getAMQMessageIdsOn(_managedSourceQueue, 1, 
numberOfMessagesToSend);
+
+        // Move messages to destination
+        long messageId = amqMessagesIds.get(0);
+        _managedSourceQueue.copyMessages(messageId, messageId, 
_destinationQueueName);
+
+        assertEquals("Unexpected queue depth on destination queue after copy", 
1, _managedDestinationQueue.getMessageCount().intValue());
+        assertEquals("Unexpected queue depth on source queue after copy", 1, 
_managedSourceQueue.getMessageCount().intValue());
+
+        assertMessageIndicesOn(_destinationQueue, 0);
+    }
+
+    @Override
+    public Message createNextMessage(Session session, int messageNumber) 
throws JMSException
+    {
+        Message message = 
session.createTextMessage(getContentForMessageNumber(messageNumber));
+        message.setIntProperty(INDEX, messageNumber);
+        return message;
+    }
+
     private void startAsyncConsumerOn(Destination queue, Connection 
asyncConnection,
             final CountDownLatch requiredNumberOfMessagesRead, final 
AtomicInteger totalConsumed) throws Exception
     {
@@ -521,9 +583,10 @@ public class QueueManagementTest extends
 
         for (int i : expectedIndices)
         {
-            Message message = consumer.receive(1000);
+            TextMessage message = (TextMessage)consumer.receive(1000);
             assertNotNull("Expected message with index " + i, message);
             assertEquals("Expected message with index " + i, i, 
message.getIntProperty(INDEX));
+            assertEquals("Expected message content", 
getContentForMessageNumber(i), message.getText());
         }
 
         assertNull("Unexpected message encountered", consumer.receive(1000));
@@ -574,6 +637,25 @@ public class QueueManagementTest extends
         ((AMQSession<?,?>)session).sync();
     }
 
+    private void createConnectionAndSession() throws JMSException,
+            NamingException
+    {
+        _connection = getConnection();
+        _connection.start();
+        _session = _connection.createSession(true, Session.SESSION_TRANSACTED);
+    }
+
+    private void createManagementInterfacesForQueues()
+    {
+        _managedSourceQueue = _jmxUtils.getManagedQueue(_sourceQueueName);
+        _managedDestinationQueue = 
_jmxUtils.getManagedQueue(_destinationQueueName);
+    }
+
+    private String getContentForMessageNumber(int msgCount)
+    {
+        return "Message count " + msgCount;
+    }
+
     private final class RecordingNotificationListener implements 
NotificationListener
     {
         private final CountDownLatch _notificationReceivedLatch;

Propchange: qpid/branches/0.18/qpid/java/broker/bin/
------------------------------------------------------------------------------
  Merged /qpid/trunk/qpid/java/broker/bin:r1365832

Propchange: 
qpid/branches/0.18/qpid/java/broker/src/main/java/org/apache/qpid/server/management/
------------------------------------------------------------------------------
  Merged 
/qpid/trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/management:r1365832

Propchange: 
qpid/branches/0.18/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:r1365832

Propchange: 
qpid/branches/0.18/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:r1365832

Propchange: 
qpid/branches/0.18/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:r1365832

Propchange: 
qpid/branches/0.18/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:r1365832

Propchange: 
qpid/branches/0.18/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:r1365832

Modified: 
qpid/branches/0.18/qpid/java/broker/src/main/java/org/apache/qpid/server/store/derby/DerbyMessageStore.java
URL: 
http://svn.apache.org/viewvc/qpid/branches/0.18/qpid/java/broker/src/main/java/org/apache/qpid/server/store/derby/DerbyMessageStore.java?rev=1367529&r1=1367528&r2=1367529&view=diff
==============================================================================
--- 
qpid/branches/0.18/qpid/java/broker/src/main/java/org/apache/qpid/server/store/derby/DerbyMessageStore.java
 (original)
+++ 
qpid/branches/0.18/qpid/java/broker/src/main/java/org/apache/qpid/server/store/derby/DerbyMessageStore.java
 Tue Jul 31 13:08:37 2012
@@ -1575,7 +1575,7 @@ public class DerbyMessageStore implement
                         buf = buf.slice();
                         MessageMetaDataType type = 
MessageMetaDataType.values()[dataAsBytes[0]];
                         StorableMessageMetaData metaData = 
type.getFactory().createMetaData(buf);
-                        StoredDerbyMessage message = new 
StoredDerbyMessage(messageId, metaData, false);
+                        StoredDerbyMessage message = new 
StoredDerbyMessage(messageId, metaData, true);
                         messageHandler.message(message);
                     }
 
@@ -2037,6 +2037,8 @@ public class DerbyMessageStore implement
     {
 
         private final long _messageId;
+        private final boolean _isRecovered;
+
         private StorableMessageMetaData _metaData;
         private volatile SoftReference<StorableMessageMetaData> _metaDataRef;
         private byte[] _data;
@@ -2045,21 +2047,18 @@ public class DerbyMessageStore implement
 
         StoredDerbyMessage(long messageId, StorableMessageMetaData metaData)
         {
-            this(messageId, metaData, true);
+            this(messageId, metaData, false);
         }
 
 
         StoredDerbyMessage(long messageId,
-                           StorableMessageMetaData metaData, boolean persist)
+                           StorableMessageMetaData metaData, boolean 
isRecovered)
         {
             _messageId = messageId;
-
+            _isRecovered = isRecovered;
 
             _metaDataRef = new 
SoftReference<StorableMessageMetaData>(metaData);
-            if(persist)
-            {
-                _metaData = metaData;
-            }
+            _metaData = metaData;
         }
 
         @Override
@@ -2140,16 +2139,16 @@ public class DerbyMessageStore implement
         @Override
         public synchronized StoreFuture flushToStore()
         {
+            Connection conn = null;
             try
             {
-                if(_metaData != null)
+                if(!stored())
                 {
-                    Connection conn = newConnection();
+                    conn = newConnection();
 
                     store(conn);
 
                     conn.commit();
-                    conn.close();
                     storedSizeChange(getMetaData().getContentSize());
                 }
             }
@@ -2161,12 +2160,24 @@ public class DerbyMessageStore implement
                 }
                 throw new RuntimeException(e);
             }
+            finally
+            {
+                closeConnection(conn);
+            }
             return StoreFuture.IMMEDIATE_FUTURE;
         }
 
+        @Override
+        public void remove()
+        {
+            int delta = getMetaData().getContentSize();
+            DerbyMessageStore.this.removeMessage(_messageId);
+            storedSizeChange(-delta);
+        }
+
         private synchronized void store(final Connection conn) throws 
SQLException
         {
-            if(_metaData != null)
+            if (!stored())
             {
                 try
                 {
@@ -2179,20 +2190,17 @@ public class DerbyMessageStore implement
                     _metaData = null;
                     _data = null;
                 }
-            }
 
-            if(_logger.isDebugEnabled())
-            {
-                _logger.debug("Storing message " + _messageId + " to store");
+                if(_logger.isDebugEnabled())
+                {
+                    _logger.debug("Storing message " + _messageId + " to 
store");
+                }
             }
         }
 
-        @Override
-        public void remove()
+        private boolean stored()
         {
-            int delta = getMetaData().getContentSize();
-            DerbyMessageStore.this.removeMessage(_messageId);
-            storedSizeChange(-delta);
+            return _metaData == null || _isRecovered;
         }
     }
 

Propchange: 
qpid/branches/0.18/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:r1365832

Propchange: 
qpid/branches/0.18/qpid/java/management/common/src/main/java/org/apache/qpid/management/common/mbeans/ConfigurationManagement.java
------------------------------------------------------------------------------
  Merged 
/qpid/trunk/qpid/java/management/common/src/main/java/org/apache/qpid/management/common/mbeans/ConfigurationManagement.java:r1365832

Propchange: 
qpid/branches/0.18/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:r1365832

Propchange: 
qpid/branches/0.18/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:r1365832

Propchange: 
qpid/branches/0.18/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:r1365832

Propchange: 
qpid/branches/0.18/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:r1365832

Propchange: 
qpid/branches/0.18/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:r1365832

Propchange: 
qpid/branches/0.18/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:r1365832

Propchange: 
qpid/branches/0.18/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:r1365832

Propchange: 
qpid/branches/0.18/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:r1365832

Propchange: 
qpid/branches/0.18/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:r1365832

Propchange: 
qpid/branches/0.18/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:r1365832

Propchange: 
qpid/branches/0.18/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:r1365832

Propchange: qpid/branches/0.18/qpid/java/management/eclipse-plugin/src/
------------------------------------------------------------------------------
  Merged /qpid/trunk/qpid/java/management/eclipse-plugin/src:r1365832

Propchange: 
qpid/branches/0.18/qpid/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/views/type/ConnectionTypeTabControl.java
------------------------------------------------------------------------------
  Merged 
/qpid/trunk/qpid/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/views/type/ConnectionTypeTabControl.java:r1365832

Propchange: 
qpid/branches/0.18/qpid/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/views/type/ExchangeTypeTabControl.java
------------------------------------------------------------------------------
  Merged 
/qpid/trunk/qpid/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/views/type/ExchangeTypeTabControl.java:r1365832

Propchange: 
qpid/branches/0.18/qpid/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/views/type/MBeanTypeTabControl.java
------------------------------------------------------------------------------
  Merged 
/qpid/trunk/qpid/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/views/type/MBeanTypeTabControl.java:r1365832

Propchange: 
qpid/branches/0.18/qpid/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/views/type/QueueTypeTabControl.java
------------------------------------------------------------------------------
  Merged 
/qpid/trunk/qpid/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/views/type/QueueTypeTabControl.java:r1365832

Propchange: 
qpid/branches/0.18/qpid/java/management/eclipse-plugin/src/main/resources/macosx/Contents/MacOS/qpidmc
------------------------------------------------------------------------------
  Merged 
/qpid/trunk/qpid/java/management/eclipse-plugin/src/main/resources/macosx/Contents/MacOS/qpidmc:r1365832

Propchange: 
qpid/branches/0.18/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:r1365832

Propchange: 
qpid/branches/0.18/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:r1365832

Propchange: qpid/branches/0.18/qpid/java/test-profiles/
------------------------------------------------------------------------------
  Merged /qpid/trunk/qpid/java/test-profiles:r1365832

Propchange: qpid/branches/0.18/qpid/java/test-profiles/CPPExcludes
------------------------------------------------------------------------------
  Merged /qpid/trunk/qpid/java/test-profiles/CPPExcludes:r1365832

Propchange: qpid/branches/0.18/qpid/java/test-profiles/Excludes
------------------------------------------------------------------------------
  Merged /qpid/trunk/qpid/java/test-profiles/Excludes:r1365832

Propchange: qpid/branches/0.18/qpid/java/test-profiles/JavaBDBExcludes
------------------------------------------------------------------------------
  Merged /qpid/trunk/qpid/java/test-profiles/JavaBDBExcludes:r1365832

Propchange: qpid/branches/0.18/qpid/java/test-profiles/JavaExcludes
------------------------------------------------------------------------------
  Merged /qpid/trunk/qpid/java/test-profiles/JavaExcludes:r1365832

Propchange: qpid/branches/0.18/qpid/java/test-profiles/JavaPre010Excludes
------------------------------------------------------------------------------
  Merged /qpid/trunk/qpid/java/test-profiles/JavaPre010Excludes:r1365832

Modified: qpid/branches/0.18/qpid/java/test-profiles/JavaTransientExcludes
URL: 
http://svn.apache.org/viewvc/qpid/branches/0.18/qpid/java/test-profiles/JavaTransientExcludes?rev=1367529&r1=1367528&r2=1367529&view=diff
==============================================================================
--- qpid/branches/0.18/qpid/java/test-profiles/JavaTransientExcludes (original)
+++ qpid/branches/0.18/qpid/java/test-profiles/JavaTransientExcludes Tue Jul 31 
13:08:37 2012
@@ -45,3 +45,5 @@ org.apache.qpid.server.store.DurableConf
 
 
org.apache.qpid.systest.management.jmx.QueueManagementTest#testAlternateExchangeSurvivesRestart
 
org.apache.qpid.systest.management.jmx.QueueManagementTest#testQueueDescriptionSurvivesRestart
+org.apache.qpid.systest.management.jmx.QueueManagementTest#testMoveMessageBetweenQueuesWithBrokerRestart
+org.apache.qpid.systest.management.jmx.QueueManagementTest#testCopyMessageBetweenQueuesWithBrokerRestart

Propchange: qpid/branches/0.18/qpid/java/test-profiles/JavaTransientExcludes
------------------------------------------------------------------------------
  Merged /qpid/trunk/qpid/java/test-profiles/JavaTransientExcludes:r1365832

Propchange: qpid/branches/0.18/qpid/java/test-profiles/XAExcludes
------------------------------------------------------------------------------
  Merged /qpid/trunk/qpid/java/test-profiles/XAExcludes:r1365832

Propchange: qpid/branches/0.18/qpid/java/test-profiles/cpp.async.testprofile
------------------------------------------------------------------------------
  Merged /qpid/trunk/qpid/java/test-profiles/cpp.async.testprofile:r1365832

Propchange: qpid/branches/0.18/qpid/java/test-profiles/cpp.cluster.testprofile
------------------------------------------------------------------------------
  Merged /qpid/trunk/qpid/java/test-profiles/cpp.cluster.testprofile:r1365832

Propchange: 
qpid/branches/0.18/qpid/java/test-profiles/cpp.noprefetch.testprofile
------------------------------------------------------------------------------
  Merged /qpid/trunk/qpid/java/test-profiles/cpp.noprefetch.testprofile:r1365832

Propchange: qpid/branches/0.18/qpid/java/test-profiles/cpp.ssl.excludes
------------------------------------------------------------------------------
  Merged /qpid/trunk/qpid/java/test-profiles/cpp.ssl.excludes:r1365832

Propchange: qpid/branches/0.18/qpid/java/test-profiles/cpp.ssl.testprofile
------------------------------------------------------------------------------
  Merged /qpid/trunk/qpid/java/test-profiles/cpp.ssl.testprofile:r1365832

Propchange: qpid/branches/0.18/qpid/java/test-profiles/cpp.testprofile
------------------------------------------------------------------------------
  Merged /qpid/trunk/qpid/java/test-profiles/cpp.testprofile:r1365832

Propchange: 
qpid/branches/0.18/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:r1365832

Propchange: 
qpid/branches/0.18/qpid/java/test-profiles/java-bdb.0-9-1.testprofile
------------------------------------------------------------------------------
  Merged /qpid/trunk/qpid/java/test-profiles/java-bdb.0-9-1.testprofile:r1365832

Propchange: 
qpid/branches/0.18/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:r1365832

Propchange: 
qpid/branches/0.18/qpid/java/test-profiles/java-dby.0-9-1.testprofile
------------------------------------------------------------------------------
  Merged /qpid/trunk/qpid/java/test-profiles/java-dby.0-9-1.testprofile:r1365832

Propchange: 
qpid/branches/0.18/qpid/java/test-profiles/java-mms-spawn.0-10.testprofile
------------------------------------------------------------------------------
  Merged 
/qpid/trunk/qpid/java/test-profiles/java-mms-spawn.0-10.testprofile:r1365832

Propchange: 
qpid/branches/0.18/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:r1365832

Propchange: 
qpid/branches/0.18/qpid/java/test-profiles/java-mms.0-9-1.testprofile
------------------------------------------------------------------------------
  Merged /qpid/trunk/qpid/java/test-profiles/java-mms.0-9-1.testprofile:r1365832

Propchange: qpid/branches/0.18/qpid/java/test-profiles/log4j-test.xml
------------------------------------------------------------------------------
  Merged /qpid/trunk/qpid/java/test-profiles/log4j-test.xml:r1365832

Propchange: qpid/branches/0.18/qpid/java/test-profiles/test-provider.properties
------------------------------------------------------------------------------
  Merged /qpid/trunk/qpid/java/test-profiles/test-provider.properties:r1365832

Propchange: qpid/branches/0.18/qpid/java/test-profiles/test_resources/
------------------------------------------------------------------------------
  Merged /qpid/trunk/qpid/java/test-profiles/test_resources:r1365832

Propchange: qpid/branches/0.18/qpid/java/test-profiles/testprofile.defaults
------------------------------------------------------------------------------
  Merged /qpid/trunk/qpid/java/test-profiles/testprofile.defaults:r1365832



---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to