[hornetq-commits] JBoss hornetq SVN: r10314 - in branches/Branch_2_2_EAP: src/main/org/hornetq/core/persistence/impl/journal and 1 other directories.

do-not-reply at jboss.org do-not-reply at jboss.org
Thu Mar 10 13:08:03 EST 2011


Author: clebert.suconic at jboss.com
Date: 2011-03-10 13:08:03 -0500 (Thu, 10 Mar 2011)
New Revision: 10314

Modified:
   branches/Branch_2_2_EAP/src/main/org/hornetq/core/journal/impl/JournalImpl.java
   branches/Branch_2_2_EAP/src/main/org/hornetq/core/persistence/impl/journal/JournalStorageManager.java
   branches/Branch_2_2_EAP/tests/src/org/hornetq/tests/integration/DuplicateDetectionTest.java
Log:
tweak on printData

Modified: branches/Branch_2_2_EAP/src/main/org/hornetq/core/journal/impl/JournalImpl.java
===================================================================
--- branches/Branch_2_2_EAP/src/main/org/hornetq/core/journal/impl/JournalImpl.java	2011-03-10 17:56:43 UTC (rev 10313)
+++ branches/Branch_2_2_EAP/src/main/org/hornetq/core/journal/impl/JournalImpl.java	2011-03-10 18:08:03 UTC (rev 10314)
@@ -1457,12 +1457,19 @@
       return this.load(dummyLoader);
    }
 
+   public JournalLoadInformation load(final List<RecordInfo> committedRecords,
+                                                   final List<PreparedTransactionInfo> preparedTransactions,
+                                                   final TransactionFailureCallback failureCallback) throws Exception
+   {
+      return load(committedRecords, preparedTransactions, failureCallback, true);
+   }
    /**
     * @see JournalImpl#load(LoaderCallback)
     */
    public synchronized JournalLoadInformation load(final List<RecordInfo> committedRecords,
                                                    final List<PreparedTransactionInfo> preparedTransactions,
-                                                   final TransactionFailureCallback failureCallback) throws Exception
+                                                   final TransactionFailureCallback failureCallback,
+                                                   final boolean fixBadTX) throws Exception
    {
       final Set<Long> recordsToDelete = new HashSet<Long>();
       // ArrayList was taking too long to delete elements on checkDeleteSize
@@ -1799,8 +1806,13 @@
     * <p> * FileID and NumberOfElements are the transaction summary, and they will be repeated (N)umberOfFiles times </p> 
     * 
     * */
-   public synchronized JournalLoadInformation load(final LoaderCallback loadManager) throws Exception
+   public JournalLoadInformation load(final LoaderCallback loadManager) throws Exception
    {
+      return load(loadManager, true);
+   }
+   
+   public synchronized JournalLoadInformation load(final LoaderCallback loadManager, boolean fixFailingTransactions) throws Exception
+   {
       if (state != JournalImpl.STATE_STARTED)
       {
          throw new IllegalStateException("Journal must be in started state");
@@ -2126,8 +2138,11 @@
             JournalImpl.log.warn("Uncommitted transaction with id " + transaction.transactionID +
                                  " found and discarded");
 
-            // I append a rollback record here, because otherwise compacting will be throwing messages because of unknown transactions
-            this.appendRollbackRecord(transaction.transactionID, false);
+            if (fixFailingTransactions)
+            {
+               // I append a rollback record here, because otherwise compacting will be throwing messages because of unknown transactions
+               this.appendRollbackRecord(transaction.transactionID, false);
+            }
 
             loadManager.failedTransaction(transaction.transactionID,
                                           transaction.recordInfos,

Modified: branches/Branch_2_2_EAP/src/main/org/hornetq/core/persistence/impl/journal/JournalStorageManager.java
===================================================================
--- branches/Branch_2_2_EAP/src/main/org/hornetq/core/persistence/impl/journal/JournalStorageManager.java	2011-03-10 17:56:43 UTC (rev 10313)
+++ branches/Branch_2_2_EAP/src/main/org/hornetq/core/persistence/impl/journal/JournalStorageManager.java	2011-03-10 18:08:03 UTC (rev 10314)
@@ -3163,7 +3163,7 @@
             }
 
          }
-      });
+      }, false);
 
       for (RecordInfo info : records)
       {

Modified: branches/Branch_2_2_EAP/tests/src/org/hornetq/tests/integration/DuplicateDetectionTest.java
===================================================================
--- branches/Branch_2_2_EAP/tests/src/org/hornetq/tests/integration/DuplicateDetectionTest.java	2011-03-10 17:56:43 UTC (rev 10313)
+++ branches/Branch_2_2_EAP/tests/src/org/hornetq/tests/integration/DuplicateDetectionTest.java	2011-03-10 18:08:03 UTC (rev 10314)
@@ -18,6 +18,7 @@
 
 import junit.framework.Assert;
 
+import org.hornetq.api.core.HornetQException;
 import org.hornetq.api.core.Message;
 import org.hornetq.api.core.SimpleString;
 import org.hornetq.api.core.TransportConfiguration;
@@ -486,7 +487,14 @@
       message.putBytesProperty(Message.HDR_DUPLICATE_DETECTION_ID, dupID2.getData());
       producer.send(message);
 
-      session.commit();
+      try
+      {
+         session.commit();
+      }
+      catch (Exception e)
+      {
+         session.rollback();
+      }
 
       message = consumer.receive(250);
       Assert.assertEquals(0, message.getObjectProperty(propKey));
@@ -552,7 +560,15 @@
       message = createMessage(session, 4);
       producer.send(message);
 
-      session.commit();
+      try
+      {
+         session.commit();
+      }
+      catch (HornetQException e)
+      {
+         assertEquals(e.getCode(), HornetQException.TRANSACTION_ROLLED_BACK);
+         session.rollback();
+      }
 
       ClientConsumer consumer = session.createConsumer(queueName);
 
@@ -1671,14 +1687,34 @@
       message = createMessage(session, 1);
       message.putBytesProperty(Message.HDR_DUPLICATE_DETECTION_ID, dupID.getData());
       producer.send(message);
-      session.commit();
+
+      try
+      {
+         session.commit();
+      }
+      catch (HornetQException e)
+      {
+         assertEquals(e.getCode(), HornetQException.TRANSACTION_ROLLED_BACK);
+         session.rollback();
+      }
+
       message2 = consumer.receiveImmediate();
       Assert.assertNull(message2);
 
       message = createMessage(session, 2);
       message.putBytesProperty(Message.HDR_DUPLICATE_DETECTION_ID, dupID2.getData());
       producer.send(message);
-      session.commit();
+      
+      try
+      {
+         session.commit();
+      }
+      catch (HornetQException e)
+      {
+         assertEquals(e.getCode(), HornetQException.TRANSACTION_ROLLED_BACK);
+         session.rollback();
+      }
+
       message2 = consumer.receiveImmediate();
       Assert.assertNull(message2);
 



More information about the hornetq-commits mailing list