JBoss hornetq SVN: r10209 - in branches/Branch_2_2_EAP: src/main/org/hornetq/core/postoffice/impl and 8 other directories.
by do-not-reply@jboss.org
Author: clebert.suconic(a)jboss.com
Date: 2011-02-15 17:30:27 -0500 (Tue, 15 Feb 2011)
New Revision: 10209
Modified:
branches/Branch_2_2_EAP/src/main/org/hornetq/core/persistence/impl/journal/LargeServerMessageImpl.java
branches/Branch_2_2_EAP/src/main/org/hornetq/core/postoffice/impl/PostOfficeImpl.java
branches/Branch_2_2_EAP/src/main/org/hornetq/core/server/Queue.java
branches/Branch_2_2_EAP/src/main/org/hornetq/core/server/ScheduledDeliveryHandler.java
branches/Branch_2_2_EAP/src/main/org/hornetq/core/server/cluster/impl/BridgeImpl.java
branches/Branch_2_2_EAP/src/main/org/hornetq/core/server/impl/HornetQServerImpl.java
branches/Branch_2_2_EAP/src/main/org/hornetq/core/server/impl/QueueImpl.java
branches/Branch_2_2_EAP/src/main/org/hornetq/core/server/impl/ScheduledDeliveryHandlerImpl.java
branches/Branch_2_2_EAP/src/main/org/hornetq/core/settings/HierarchicalRepository.java
branches/Branch_2_2_EAP/src/main/org/hornetq/core/settings/impl/HierarchicalObjectRepository.java
branches/Branch_2_2_EAP/tests/src/org/hornetq/tests/integration/client/OrderTest.java
branches/Branch_2_2_EAP/tests/src/org/hornetq/tests/integration/client/TemporaryQueueTest.java
branches/Branch_2_2_EAP/tests/src/org/hornetq/tests/unit/core/postoffice/impl/FakeQueue.java
branches/Branch_2_2_EAP/tests/src/org/hornetq/tests/util/ServiceTestBase.java
Log:
https://issues.jboss.org/browse/JBPAPP-5926 - further fixing scheduled delivery order of delivery
Modified: branches/Branch_2_2_EAP/src/main/org/hornetq/core/persistence/impl/journal/LargeServerMessageImpl.java
===================================================================
--- branches/Branch_2_2_EAP/src/main/org/hornetq/core/persistence/impl/journal/LargeServerMessageImpl.java 2011-02-15 21:09:12 UTC (rev 10208)
+++ branches/Branch_2_2_EAP/src/main/org/hornetq/core/persistence/impl/journal/LargeServerMessageImpl.java 2011-02-15 22:30:27 UTC (rev 10209)
@@ -173,7 +173,7 @@
// This file is linked to another message, deleting the reference where it belongs on this case
linkMessage.decrementDelayDeletionCount();
}
- else
+ else if (delayDeletionCount.get() <= 0)
{
if (LargeServerMessageImpl.isTrace)
{
@@ -192,18 +192,27 @@
}
}
+ public int incrementRefCount() throws Exception
+ {
+ int value = super.incrementRefCount();
+
+// new Exception("increment, value=" + value +
+// " on msgCount = " +
+// this.getIntProperty("counter-message") +
+// " messageID=" +
+// this.getMessageID()).printStackTrace();
+
+ return value;
+ }
+
+ static int deleted = 0;
+
@Override
public synchronized int decrementRefCount() throws Exception
{
int currentRefCount = super.decrementRefCount();
- // We use <= as this could be used by load.
- // because of a failure, no references were loaded, so we have 0... and we still need to delete the associated
- // files
- if (delayDeletionCount.get() <= 0)
- {
- checkDelete();
- }
+ checkDelete();
return currentRefCount;
}
@@ -315,7 +324,7 @@
file = storageManager.createFileForLargeMessage(getMessageID(), durable);
file.open();
-
+
bodySize = file.size();
}
}
Modified: branches/Branch_2_2_EAP/src/main/org/hornetq/core/postoffice/impl/PostOfficeImpl.java
===================================================================
--- branches/Branch_2_2_EAP/src/main/org/hornetq/core/postoffice/impl/PostOfficeImpl.java 2011-02-15 21:09:12 UTC (rev 10208)
+++ branches/Branch_2_2_EAP/src/main/org/hornetq/core/postoffice/impl/PostOfficeImpl.java 2011-02-15 22:30:27 UTC (rev 10209)
@@ -466,6 +466,9 @@
public synchronized Binding removeBinding(final SimpleString uniqueName) throws Exception
{
+
+ addressSettingsRepository.clear();
+
Binding binding = addressManager.removeBinding(uniqueName);
if (binding == null)
Modified: branches/Branch_2_2_EAP/src/main/org/hornetq/core/server/Queue.java
===================================================================
--- branches/Branch_2_2_EAP/src/main/org/hornetq/core/server/Queue.java 2011-02-15 21:09:12 UTC (rev 10208)
+++ branches/Branch_2_2_EAP/src/main/org/hornetq/core/server/Queue.java 2011-02-15 22:30:27 UTC (rev 10209)
@@ -68,7 +68,7 @@
void cancel(Transaction tx, MessageReference ref) throws Exception;
- void cancel(MessageReference reference) throws Exception;
+ void cancel(MessageReference reference, long timeBase) throws Exception;
void deliverAsync();
@@ -129,7 +129,7 @@
Collection<Consumer> getConsumers();
- boolean checkRedelivery(MessageReference ref) throws Exception;
+ boolean checkRedelivery(MessageReference ref, long timeBase) throws Exception;
LinkedListIterator<MessageReference> iterator();
Modified: branches/Branch_2_2_EAP/src/main/org/hornetq/core/server/ScheduledDeliveryHandler.java
===================================================================
--- branches/Branch_2_2_EAP/src/main/org/hornetq/core/server/ScheduledDeliveryHandler.java 2011-02-15 21:09:12 UTC (rev 10208)
+++ branches/Branch_2_2_EAP/src/main/org/hornetq/core/server/ScheduledDeliveryHandler.java 2011-02-15 22:30:27 UTC (rev 10209)
@@ -21,7 +21,7 @@
*/
public interface ScheduledDeliveryHandler
{
- boolean checkAndSchedule(MessageReference ref);
+ boolean checkAndSchedule(MessageReference ref, final boolean tail);
int getScheduledCount();
Modified: branches/Branch_2_2_EAP/src/main/org/hornetq/core/server/cluster/impl/BridgeImpl.java
===================================================================
--- branches/Branch_2_2_EAP/src/main/org/hornetq/core/server/cluster/impl/BridgeImpl.java 2011-02-15 21:09:12 UTC (rev 10208)
+++ branches/Branch_2_2_EAP/src/main/org/hornetq/core/server/cluster/impl/BridgeImpl.java 2011-02-15 22:30:27 UTC (rev 10209)
@@ -189,12 +189,14 @@
}
Queue queue = null;
+
+ long timeBase = System.currentTimeMillis();
for (MessageReference ref2 : list)
{
queue = ref2.getQueue();
- queue.cancel(ref2);
+ queue.cancel(ref2, timeBase);
}
}
Modified: branches/Branch_2_2_EAP/src/main/org/hornetq/core/server/impl/HornetQServerImpl.java
===================================================================
--- branches/Branch_2_2_EAP/src/main/org/hornetq/core/server/impl/HornetQServerImpl.java 2011-02-15 21:09:12 UTC (rev 10208)
+++ branches/Branch_2_2_EAP/src/main/org/hornetq/core/server/impl/HornetQServerImpl.java 2011-02-15 22:30:27 UTC (rev 10209)
@@ -1011,6 +1011,8 @@
public void destroyQueue(final SimpleString queueName, final ServerSession session) throws Exception
{
+ addressSettingsRepository.clear();
+
Binding binding = postOffice.getBinding(queueName);
if (binding == null)
Modified: branches/Branch_2_2_EAP/src/main/org/hornetq/core/server/impl/QueueImpl.java
===================================================================
--- branches/Branch_2_2_EAP/src/main/org/hornetq/core/server/impl/QueueImpl.java 2011-02-15 21:09:12 UTC (rev 10208)
+++ branches/Branch_2_2_EAP/src/main/org/hornetq/core/server/impl/QueueImpl.java 2011-02-15 22:30:27 UTC (rev 10209)
@@ -317,7 +317,7 @@
/* Called when a message is cancelled back into the queue */
public synchronized void addHead(final MessageReference ref)
{
- if (scheduledDeliveryHandler.checkAndSchedule(ref))
+ if (scheduledDeliveryHandler.checkAndSchedule(ref, false))
{
return;
}
@@ -330,7 +330,7 @@
public synchronized void reload(final MessageReference ref)
{
queueMemorySize.addAndGet(ref.getMessage().getMemoryEstimate());
- if (!scheduledDeliveryHandler.checkAndSchedule(ref))
+ if (!scheduledDeliveryHandler.checkAndSchedule(ref, true))
{
internalAddTail(ref);
}
@@ -347,7 +347,7 @@
public void addTail(final MessageReference ref, final boolean direct)
{
- if (scheduledDeliveryHandler.checkAndSchedule(ref))
+ if (scheduledDeliveryHandler.checkAndSchedule(ref, true))
{
synchronized (this)
{
@@ -806,11 +806,11 @@
getRefsOperation(tx).addAck(reference);
}
- public synchronized void cancel(final MessageReference reference) throws Exception
+ public synchronized void cancel(final MessageReference reference, final long timeBase) throws Exception
{
- if (checkRedelivery(reference))
+ if (checkRedelivery(reference, timeBase))
{
- if (!scheduledDeliveryHandler.checkAndSchedule(reference))
+ if (!scheduledDeliveryHandler.checkAndSchedule(reference, false))
{
internalAddHead(reference);
}
@@ -1275,10 +1275,6 @@
{
for (ConsumerHolder holder : this.consumerList)
{
- if (holder.iter != null)
- {
- holder.iter.close();
- }
holder.iter = null;
}
}
@@ -1575,7 +1571,7 @@
}
}
- public boolean checkRedelivery(final MessageReference reference) throws Exception
+ public boolean checkRedelivery(final MessageReference reference, final long timeBase) throws Exception
{
ServerMessage message = reference.getMessage();
@@ -1604,7 +1600,7 @@
if (redeliveryDelay > 0)
{
- reference.setScheduledDeliveryTime(System.currentTimeMillis() + redeliveryDelay);
+ reference.setScheduledDeliveryTime(timeBase + redeliveryDelay);
if (message.isDurable() && durable)
{
@@ -1987,12 +1983,14 @@
public void afterRollback(final Transaction tx)
{
Map<QueueImpl, LinkedList<MessageReference>> queueMap = new HashMap<QueueImpl, LinkedList<MessageReference>>();
+
+ long timeBase = System.currentTimeMillis();
for (MessageReference ref : refsToAck)
{
try
{
- if (ref.getQueue().checkRedelivery(ref))
+ if (ref.getQueue().checkRedelivery(ref, timeBase))
{
LinkedList<MessageReference> toCancel = queueMap.get(ref.getQueue());
Modified: branches/Branch_2_2_EAP/src/main/org/hornetq/core/server/impl/ScheduledDeliveryHandlerImpl.java
===================================================================
--- branches/Branch_2_2_EAP/src/main/org/hornetq/core/server/impl/ScheduledDeliveryHandlerImpl.java 2011-02-15 21:09:12 UTC (rev 10208)
+++ branches/Branch_2_2_EAP/src/main/org/hornetq/core/server/impl/ScheduledDeliveryHandlerImpl.java 2011-02-15 22:30:27 UTC (rev 10209)
@@ -43,6 +43,8 @@
private final ScheduledExecutorService scheduledExecutor;
+ private final Object lockDelivery = new Object();
+
private LinkedList<MessageReference> scheduledReferences = new LinkedList<MessageReference>();
public ScheduledDeliveryHandlerImpl(final ScheduledExecutorService scheduledExecutor)
@@ -50,7 +52,7 @@
this.scheduledExecutor = scheduledExecutor;
}
- public boolean checkAndSchedule(final MessageReference ref)
+ public boolean checkAndSchedule(final MessageReference ref, final boolean tail)
{
long deliveryTime = ref.getScheduledDeliveryTime();
@@ -65,7 +67,14 @@
synchronized (scheduledReferences)
{
- scheduledReferences.add(ref);
+ if (tail)
+ {
+ scheduledReferences.add(ref);
+ }
+ else
+ {
+ scheduledReferences.addFirst(ref);
+ }
}
scheduleDelivery(runnable, deliveryTime);
@@ -162,41 +171,43 @@
HashSet<Queue> queues = new HashSet<Queue>();
LinkedList<MessageReference> references = new LinkedList<MessageReference>();
- synchronized (scheduledReferences)
+ synchronized (lockDelivery)
{
-
- Iterator<MessageReference> iter = scheduledReferences.iterator();
- while (iter.hasNext())
+ synchronized (scheduledReferences)
{
- MessageReference reference = iter.next();
- if (reference.getScheduledDeliveryTime() == this.scheduledTime)
+
+ Iterator<MessageReference> iter = scheduledReferences.iterator();
+ while (iter.hasNext())
{
- iter.remove();
-
- reference.setScheduledDeliveryTime(0);
-
- references.add(reference);
-
- queues.add(reference.getQueue());
+ MessageReference reference = iter.next();
+ if (reference.getScheduledDeliveryTime() <= this.scheduledTime)
+ {
+ iter.remove();
+
+ reference.setScheduledDeliveryTime(0);
+
+ references.add(reference);
+
+ queues.add(reference.getQueue());
+ }
}
}
- }
-
- for (MessageReference reference : references)
- {
- reference.getQueue().addHead(reference);
- }
-
- // Just to speed up GC
- references.clear();
-
- for (Queue queue : queues)
- {
- synchronized (queue)
+
+ for (MessageReference reference : references)
{
- queue.resetAllIterators();
- queue.deliverAsync();
+ reference.getQueue().addTail(reference);
}
+
+ // Just to speed up GC
+ references.clear();
+
+ for (Queue queue : queues)
+ {
+ synchronized (queue)
+ {
+ queue.deliverAsync();
+ }
+ }
}
}
}
Modified: branches/Branch_2_2_EAP/src/main/org/hornetq/core/settings/HierarchicalRepository.java
===================================================================
--- branches/Branch_2_2_EAP/src/main/org/hornetq/core/settings/HierarchicalRepository.java 2011-02-15 21:09:12 UTC (rev 10208)
+++ branches/Branch_2_2_EAP/src/main/org/hornetq/core/settings/HierarchicalRepository.java 2011-02-15 22:30:27 UTC (rev 10209)
@@ -62,4 +62,6 @@
* clear the repository
*/
void clear();
+
+ int getCacheSize();
}
Modified: branches/Branch_2_2_EAP/src/main/org/hornetq/core/settings/impl/HierarchicalObjectRepository.java
===================================================================
--- branches/Branch_2_2_EAP/src/main/org/hornetq/core/settings/impl/HierarchicalObjectRepository.java 2011-02-15 21:09:12 UTC (rev 10208)
+++ branches/Branch_2_2_EAP/src/main/org/hornetq/core/settings/impl/HierarchicalObjectRepository.java 2011-02-15 22:30:27 UTC (rev 10209)
@@ -76,6 +76,11 @@
matches.put(match, match1);
onChange();
}
+
+ public int getCacheSize()
+ {
+ return cache.size();
+ }
/**
* return the value held against the nearest match
@@ -153,6 +158,7 @@
public void removeMatch(final String match)
{
matches.remove(match);
+ new Exception("Clearing cache").printStackTrace();
cache.clear();
onChange();
}
Modified: branches/Branch_2_2_EAP/tests/src/org/hornetq/tests/integration/client/OrderTest.java
===================================================================
--- branches/Branch_2_2_EAP/tests/src/org/hornetq/tests/integration/client/OrderTest.java 2011-02-15 21:09:12 UTC (rev 10208)
+++ branches/Branch_2_2_EAP/tests/src/org/hornetq/tests/integration/client/OrderTest.java 2011-02-15 22:30:27 UTC (rev 10209)
@@ -258,7 +258,7 @@
server.getAddressSettingsRepository().clear();
AddressSettings setting = new AddressSettings();
- setting.setRedeliveryDelay(1000);
+ setting.setRedeliveryDelay(500);
server.getAddressSettingsRepository().addMatch("#", setting);
server.start();
Modified: branches/Branch_2_2_EAP/tests/src/org/hornetq/tests/integration/client/TemporaryQueueTest.java
===================================================================
--- branches/Branch_2_2_EAP/tests/src/org/hornetq/tests/integration/client/TemporaryQueueTest.java 2011-02-15 21:09:12 UTC (rev 10208)
+++ branches/Branch_2_2_EAP/tests/src/org/hornetq/tests/integration/client/TemporaryQueueTest.java 2011-02-15 22:30:27 UTC (rev 10209)
@@ -92,6 +92,29 @@
session.close();
}
+
+ public void testMemoryLeakOnAddressSettingForTemporaryQueue() throws Exception
+ {
+ for (int i = 0 ; i < 1000; i++)
+ {
+ SimpleString queue = RandomUtil.randomSimpleString();
+ SimpleString address = RandomUtil.randomSimpleString();
+ session.createTemporaryQueue(address, queue);
+
+ session.close();
+ session = sf.createSession();
+ }
+
+
+ session.close();
+
+ sf.close();
+
+ System.out.println("size = " + server.getAddressSettingsRepository().getCacheSize());
+
+ assertTrue(server.getAddressSettingsRepository().getCacheSize() < 10);
+ }
+
public void testPaginStoreIsRemovedWhenQueueIsDeleted() throws Exception
{
SimpleString queue = RandomUtil.randomSimpleString();
Modified: branches/Branch_2_2_EAP/tests/src/org/hornetq/tests/unit/core/postoffice/impl/FakeQueue.java
===================================================================
--- branches/Branch_2_2_EAP/tests/src/org/hornetq/tests/unit/core/postoffice/impl/FakeQueue.java 2011-02-15 21:09:12 UTC (rev 10208)
+++ branches/Branch_2_2_EAP/tests/src/org/hornetq/tests/unit/core/postoffice/impl/FakeQueue.java 2011-02-15 22:30:27 UTC (rev 10209)
@@ -166,7 +166,7 @@
/* (non-Javadoc)
* @see org.hornetq.core.server.Queue#cancel(org.hornetq.core.server.MessageReference)
*/
- public void cancel(final MessageReference reference) throws Exception
+ public void cancel(final MessageReference reference, final long timeBase) throws Exception
{
// TODO Auto-generated method stub
@@ -211,7 +211,7 @@
/* (non-Javadoc)
* @see org.hornetq.core.server.Queue#checkDLQ(org.hornetq.core.server.MessageReference)
*/
- public boolean checkRedelivery(final MessageReference ref) throws Exception
+ public boolean checkRedelivery(final MessageReference ref, final long timeBase) throws Exception
{
// TODO Auto-generated method stub
return false;
Modified: branches/Branch_2_2_EAP/tests/src/org/hornetq/tests/util/ServiceTestBase.java
===================================================================
--- branches/Branch_2_2_EAP/tests/src/org/hornetq/tests/util/ServiceTestBase.java 2011-02-15 21:09:12 UTC (rev 10208)
+++ branches/Branch_2_2_EAP/tests/src/org/hornetq/tests/util/ServiceTestBase.java 2011-02-15 22:30:27 UTC (rev 10209)
@@ -494,16 +494,19 @@
File largeMessagesFileDir = new File(getLargeMessagesDir());
// Deleting the file is async... we keep looking for a period of the time until the file is really gone
- for (int i = 0; i < 100; i++)
+ long timeout = System.currentTimeMillis() + 5000;
+ while (timeout > System.currentTimeMillis() && largeMessagesFileDir.listFiles().length != expect)
{
- if (largeMessagesFileDir.listFiles().length != expect)
+ Thread.sleep(100);
+ }
+
+
+ if (expect != largeMessagesFileDir.listFiles().length)
+ {
+ for (File file : largeMessagesFileDir.listFiles())
{
- Thread.sleep(10);
+ System.out.println("File " + file + " still on ");
}
- else
- {
- break;
- }
}
Assert.assertEquals(expect, largeMessagesFileDir.listFiles().length);
14 years, 1 month
JBoss hornetq SVN: r10208 - in trunk: hornetq-rest and 1 other directory.
by do-not-reply@jboss.org
Author: clebert.suconic(a)jboss.com
Date: 2011-02-15 16:09:12 -0500 (Tue, 15 Feb 2011)
New Revision: 10208
Modified:
trunk/build-maven.xml
trunk/hornetq-rest/pom.xml
Log:
release for Resource Adapter team
Modified: trunk/build-maven.xml
===================================================================
--- trunk/build-maven.xml 2011-02-15 19:22:34 UTC (rev 10207)
+++ trunk/build-maven.xml 2011-02-15 21:09:12 UTC (rev 10208)
@@ -13,7 +13,7 @@
-->
<project default="upload" name="HornetQ">
- <property name="hornetq.version" value="2.2.0.QA-10117"/>
+ <property name="hornetq.version" value="2.2.0.QA-10129"/>
<property name="build.dir" value="build"/>
<property name="jars.dir" value="${build.dir}/jars"/>
Modified: trunk/hornetq-rest/pom.xml
===================================================================
--- trunk/hornetq-rest/pom.xml 2011-02-15 19:22:34 UTC (rev 10207)
+++ trunk/hornetq-rest/pom.xml 2011-02-15 21:09:12 UTC (rev 10208)
@@ -10,7 +10,7 @@
<properties>
<resteasy.version>2.0.1.GA</resteasy.version>
- <hornetq.version>2.2.0.QA-10111</hornetq.version>
+ <hornetq.version>2.2.0.QA-10129</hornetq.version>
</properties>
<licenses>
14 years, 1 month
JBoss hornetq SVN: r10207 - branches/Branch_2_2_EAP/src/main/org/hornetq/utils.
by do-not-reply@jboss.org
Author: clebert.suconic(a)jboss.com
Date: 2011-02-15 14:22:34 -0500 (Tue, 15 Feb 2011)
New Revision: 10207
Modified:
branches/Branch_2_2_EAP/src/main/org/hornetq/utils/LinkedListImpl.java
Log:
fixing possible NPE
Modified: branches/Branch_2_2_EAP/src/main/org/hornetq/utils/LinkedListImpl.java
===================================================================
--- branches/Branch_2_2_EAP/src/main/org/hornetq/utils/LinkedListImpl.java 2011-02-15 10:51:24 UTC (rev 10206)
+++ branches/Branch_2_2_EAP/src/main/org/hornetq/utils/LinkedListImpl.java 2011-02-15 19:22:34 UTC (rev 10207)
@@ -41,7 +41,7 @@
private int size;
// We store in an array rather than a Map for the best performance
- private Iterator[] iters;
+ private volatile Iterator[] iters;
private int numIters;
@@ -186,7 +186,11 @@
{
for (int i = 0; i < numIters; i++)
{
- iters[i].nudged(node);
+ Iterator iter = iters[i];
+ if (iter != null)
+ {
+ iter.nudged(node);
+ }
}
}
14 years, 1 month
JBoss hornetq SVN: r10206 - branches/Branch_2_2_EAP/examples/jms/clustered-static-oneway/src/org/hornetq/jms/example.
by do-not-reply@jboss.org
Author: ataylor
Date: 2011-02-15 05:51:24 -0500 (Tue, 15 Feb 2011)
New Revision: 10206
Modified:
branches/Branch_2_2_EAP/examples/jms/clustered-static-oneway/src/org/hornetq/jms/example/ClusterStaticOnewayExample.java
Log:
fixed example
Modified: branches/Branch_2_2_EAP/examples/jms/clustered-static-oneway/src/org/hornetq/jms/example/ClusterStaticOnewayExample.java
===================================================================
--- branches/Branch_2_2_EAP/examples/jms/clustered-static-oneway/src/org/hornetq/jms/example/ClusterStaticOnewayExample.java 2011-02-15 01:04:21 UTC (rev 10205)
+++ branches/Branch_2_2_EAP/examples/jms/clustered-static-oneway/src/org/hornetq/jms/example/ClusterStaticOnewayExample.java 2011-02-15 10:51:24 UTC (rev 10206)
@@ -16,6 +16,7 @@
import javax.jms.*;
import javax.naming.InitialContext;
+import java.lang.Exception;
/**
* A simple example that demonstrates server side load-balancing of messages between the queue instances on different
@@ -56,62 +57,51 @@
// Step 3. Look-up a JMS Connection Factory object from JNDI on server 0
ConnectionFactory cf0 = (ConnectionFactory)ic0.lookup("/ConnectionFactory");
- //grab an initial connection and wait, in reality you wouldn't do it this way but since we want to ensure an
+ //step 4. grab an initial connection and wait, in reality you wouldn't do it this way but since we want to ensure an
// equal load balance we do this and then create 4 connections round robined
initialConnection = cf0.createConnection();
Thread.sleep(2000);
- // Step 6. We create a JMS Connection connection0 which is a connection to server 0
+ // Step 5. We create a JMS Connection connection0 which is a connection to server 0
connection0 = cf0.createConnection();
- // Step 7. We create a JMS Connection connection1 which is a connection to server 1
+ // Step 6. We create a JMS Connection connection1 which is a connection to server 1
connection1 = cf0.createConnection();
- // Step 6. We create a JMS Connection connection0 which is a connection to server 0
+ // Step 7. We create a JMS Connection connection0 which is a connection to server 2
connection2 = cf0.createConnection();
- // Step 7. We create a JMS Connection connection1 which is a connection to server 1
- connection3 = cf0.createConnection();
-
// Step 8. We create a JMS Session on server 0
Session session0 = connection0.createSession(false, Session.AUTO_ACKNOWLEDGE);
// Step 9. We create a JMS Session on server 1
Session session1 = connection1.createSession(false, Session.AUTO_ACKNOWLEDGE);
-
- // Step 8. We create a JMS Session on server 0
+ // Step 10. We create a JMS Session on server 2
Session session2 = connection2.createSession(false, Session.AUTO_ACKNOWLEDGE);
- // Step 9. We create a JMS Session on server 1
- Session session3 = connection3.createSession(false, Session.AUTO_ACKNOWLEDGE);
-
- // Step 10. We start the connections to ensure delivery occurs on them
+ // Step 11. We start the connections to ensure delivery occurs on them
connection0.start();
connection1.start();
connection2.start();
- connection3.start();
-
- // Step 11. We create JMS MessageConsumer objects on server 0 and server 1
+ // Step 12. We create JMS MessageConsumer objects on server 0,server 1 and server 2
MessageConsumer consumer0 = session0.createConsumer(queue);
MessageConsumer consumer1 = session1.createConsumer(queue);
MessageConsumer consumer2 = session2.createConsumer(queue);
- MessageConsumer consumer3 = session3.createConsumer(queue);
-
Thread.sleep(2000);
- // Step 12. We create a JMS MessageProducer object on server 3
- MessageProducer producer = session3.createProducer(queue);
+ // Step 13. We create a JMS MessageProducer object on server 2
+ MessageProducer producer = session2.createProducer(queue);
- // Step 13. We send some messages to server 0
+ // Step 14. We send some messages to server 2
- final int numMessages = 20;
+ final int numMessages = 18;
for (int i = 0; i < numMessages; i++)
{
@@ -122,20 +112,23 @@
System.out.println("Sent message: " + message.getText());
}
Thread.sleep(2000);
- // Step 14. We now consume those messages on *both* server 0 and server 1.
+ // Step 15. We now consume those messages on *both* server 0,server 1 and 3.
// We note the messages have been distributed between servers in a round robin fashion
// JMS Queues implement point-to-point message where each message is only ever consumed by a
// maximum of one consumer
int con0Node = getServer(connection0);
int con1Node = getServer(connection1);
int con2Node = getServer(connection2);
- int con3Node = getServer(connection3);
- if(con0Node + con1Node + con2Node + con3Node != 6)
+ if(con0Node + con1Node + con2Node != 3)
{
+ System.out.println("connections not load balanced");
+ System.out.println("con0Node = " + con0Node);
+ System.out.println("con1Node = " + con1Node);
+ System.out.println("con2Node = " + con2Node);
return false;
}
- for (int i = 0; i < numMessages; i += 4)
+ for (int i = 0; i < numMessages; i += 3)
{
TextMessage message0 = (TextMessage)consumer0.receive(5000);
@@ -148,10 +141,6 @@
TextMessage message2 = (TextMessage)consumer2.receive(5000);
System.out.println("Got message: " + message2.getText() + " from node " + con2Node);
-
- TextMessage message3 = (TextMessage)consumer3.receive(5000);
-
- System.out.println("Got message: " + message3.getText() + " from node " + con3Node);
}
return true;
14 years, 1 month
JBoss hornetq SVN: r10205 - in branches/Branch_2_2_EAP: src/main/org/hornetq/core/server/impl and 2 other directories.
by do-not-reply@jboss.org
Author: clebert.suconic(a)jboss.com
Date: 2011-02-14 20:04:21 -0500 (Mon, 14 Feb 2011)
New Revision: 10205
Modified:
branches/Branch_2_2_EAP/src/main/org/hornetq/core/server/Queue.java
branches/Branch_2_2_EAP/src/main/org/hornetq/core/server/impl/QueueImpl.java
branches/Branch_2_2_EAP/src/main/org/hornetq/core/server/impl/ScheduledDeliveryHandlerImpl.java
branches/Branch_2_2_EAP/tests/src/org/hornetq/tests/integration/client/OrderTest.java
branches/Branch_2_2_EAP/tests/src/org/hornetq/tests/unit/core/postoffice/impl/FakeQueue.java
Log:
https://issues.jboss.org/browse/JBPAPP-5926 - fixing scheduled delivery order of delivery
Modified: branches/Branch_2_2_EAP/src/main/org/hornetq/core/server/Queue.java
===================================================================
--- branches/Branch_2_2_EAP/src/main/org/hornetq/core/server/Queue.java 2011-02-14 13:32:17 UTC (rev 10204)
+++ branches/Branch_2_2_EAP/src/main/org/hornetq/core/server/Queue.java 2011-02-15 01:04:21 UTC (rev 10205)
@@ -129,7 +129,7 @@
Collection<Consumer> getConsumers();
- boolean checkDLQ(MessageReference ref) throws Exception;
+ boolean checkRedelivery(MessageReference ref) throws Exception;
LinkedListIterator<MessageReference> iterator();
Modified: branches/Branch_2_2_EAP/src/main/org/hornetq/core/server/impl/QueueImpl.java
===================================================================
--- branches/Branch_2_2_EAP/src/main/org/hornetq/core/server/impl/QueueImpl.java 2011-02-14 13:32:17 UTC (rev 10204)
+++ branches/Branch_2_2_EAP/src/main/org/hornetq/core/server/impl/QueueImpl.java 2011-02-15 01:04:21 UTC (rev 10205)
@@ -808,7 +808,7 @@
public synchronized void cancel(final MessageReference reference) throws Exception
{
- if (checkDLQ(reference))
+ if (checkRedelivery(reference))
{
if (!scheduledDeliveryHandler.checkAndSchedule(reference))
{
@@ -1275,6 +1275,10 @@
{
for (ConsumerHolder holder : this.consumerList)
{
+ if (holder.iter != null)
+ {
+ holder.iter.close();
+ }
holder.iter = null;
}
}
@@ -1571,11 +1575,12 @@
}
}
- public boolean checkDLQ(final MessageReference reference) throws Exception
+ public boolean checkRedelivery(final MessageReference reference) throws Exception
{
ServerMessage message = reference.getMessage();
// TODO: DeliveryCount on paging
+
if (message.isDurable() && durable && !reference.isPaged())
{
storageManager.updateDeliveryCount(reference);
@@ -1585,6 +1590,7 @@
int maxDeliveries = addressSettings.getMaxDeliveryAttempts();
+ // First check DLA
if (maxDeliveries > 0 && reference.getDeliveryCount() >= maxDeliveries)
{
sendToDeadLetterAddress(reference);
@@ -1593,13 +1599,17 @@
}
else
{
+ // Second check Redelivery Delay
long redeliveryDelay = addressSettings.getRedeliveryDelay();
if (redeliveryDelay > 0)
{
reference.setScheduledDeliveryTime(System.currentTimeMillis() + redeliveryDelay);
-
- storageManager.updateScheduledDeliveryTime(reference);
+
+ if (message.isDurable() && durable)
+ {
+ storageManager.updateScheduledDeliveryTime(reference);
+ }
}
deliveringCount.decrementAndGet();
@@ -1982,7 +1992,7 @@
{
try
{
- if (ref.getQueue().checkDLQ(ref))
+ if (ref.getQueue().checkRedelivery(ref))
{
LinkedList<MessageReference> toCancel = queueMap.get(ref.getQueue());
Modified: branches/Branch_2_2_EAP/src/main/org/hornetq/core/server/impl/ScheduledDeliveryHandlerImpl.java
===================================================================
--- branches/Branch_2_2_EAP/src/main/org/hornetq/core/server/impl/ScheduledDeliveryHandlerImpl.java 2011-02-14 13:32:17 UTC (rev 10204)
+++ branches/Branch_2_2_EAP/src/main/org/hornetq/core/server/impl/ScheduledDeliveryHandlerImpl.java 2011-02-15 01:04:21 UTC (rev 10205)
@@ -13,9 +13,10 @@
package org.hornetq.core.server.impl;
import java.util.ArrayList;
-import java.util.LinkedHashMap;
+import java.util.HashSet;
+import java.util.Iterator;
+import java.util.LinkedList;
import java.util.List;
-import java.util.Map;
import java.util.concurrent.Future;
import java.util.concurrent.ScheduledExecutorService;
import java.util.concurrent.TimeUnit;
@@ -23,6 +24,7 @@
import org.hornetq.core.filter.Filter;
import org.hornetq.core.logging.Logger;
import org.hornetq.core.server.MessageReference;
+import org.hornetq.core.server.Queue;
import org.hornetq.core.server.ScheduledDeliveryHandler;
/**
@@ -40,9 +42,9 @@
private static final boolean trace = ScheduledDeliveryHandlerImpl.log.isTraceEnabled();
private final ScheduledExecutorService scheduledExecutor;
+
+ private LinkedList<MessageReference> scheduledReferences = new LinkedList<MessageReference>();
- private final Map<Long, ScheduledDeliveryRunnable> scheduledRunnables = new LinkedHashMap<Long, ScheduledDeliveryRunnable>();
-
public ScheduledDeliveryHandlerImpl(final ScheduledExecutorService scheduledExecutor)
{
this.scheduledExecutor = scheduledExecutor;
@@ -52,18 +54,18 @@
{
long deliveryTime = ref.getScheduledDeliveryTime();
- if (deliveryTime > System.currentTimeMillis() && scheduledExecutor != null)
+ if (deliveryTime > 0 && scheduledExecutor != null)
{
if (ScheduledDeliveryHandlerImpl.trace)
{
ScheduledDeliveryHandlerImpl.log.trace("Scheduling delivery for " + ref + " to occur at " + deliveryTime);
}
- ScheduledDeliveryRunnable runnable = new ScheduledDeliveryRunnable(ref);
+ ScheduledDeliveryRunnable runnable = new ScheduledDeliveryRunnable(ref.getScheduledDeliveryTime());
- synchronized (scheduledRunnables)
+ synchronized (scheduledReferences)
{
- scheduledRunnables.put(ref.getMessage().getMessageID(), runnable);
+ scheduledReferences.add(ref);
}
scheduleDelivery(runnable, deliveryTime);
@@ -75,19 +77,19 @@
public int getScheduledCount()
{
- return scheduledRunnables.size();
+ synchronized (scheduledReferences)
+ {
+ return scheduledReferences.size();
+ }
}
public List<MessageReference> getScheduledReferences()
{
List<MessageReference> refs = new ArrayList<MessageReference>();
- synchronized (scheduledRunnables)
+ synchronized (scheduledReferences)
{
- for (ScheduledDeliveryRunnable scheduledRunnable : scheduledRunnables.values())
- {
- refs.add(scheduledRunnable.getReference());
- }
+ refs.addAll(scheduledReferences);
}
return refs;
}
@@ -96,40 +98,40 @@
{
List<MessageReference> refs = new ArrayList<MessageReference>();
- synchronized (scheduledRunnables)
+ synchronized (scheduledReferences)
{
- Map<Long, ScheduledDeliveryRunnable> copy = new LinkedHashMap<Long, ScheduledDeliveryRunnable>(scheduledRunnables);
- for (ScheduledDeliveryRunnable runnable : copy.values())
+ Iterator<MessageReference> iter = scheduledReferences.iterator();
+
+ while (iter.hasNext())
{
- if (filter == null || filter.match(runnable.getReference().getMessage()))
+ MessageReference ref = iter.next();
+ if (filter.match(ref.getMessage()))
{
- runnable.cancel();
-
- refs.add(runnable.getReference());
+ iter.remove();
+ refs.add(ref);
}
}
- for (MessageReference ref : refs)
- {
- scheduledRunnables.remove(ref.getMessage().getMessageID());
- }
}
return refs;
}
public MessageReference removeReferenceWithID(final long id)
{
- synchronized (scheduledRunnables)
+ synchronized (scheduledReferences)
{
- ScheduledDeliveryRunnable runnable = scheduledRunnables.remove(id);
- if (runnable == null)
+ Iterator<MessageReference> iter = scheduledReferences.iterator();
+ while (iter.hasNext())
{
- return null;
+ MessageReference ref = iter.next();
+ if (ref.getMessage().getMessageID() == id)
+ {
+ iter.remove();
+ return ref;
+ }
}
- else
- {
- return runnable.getReference();
- }
}
+
+ return null;
}
private void scheduleDelivery(final ScheduledDeliveryRunnable runnable, final long deliveryTime)
@@ -137,81 +139,65 @@
long now = System.currentTimeMillis();
long delay = deliveryTime - now;
+
+ if (delay < 0)
+ {
+ delay = 0;
+ }
- Future<?> future = scheduledExecutor.schedule(runnable, delay, TimeUnit.MILLISECONDS);
-
- runnable.setFuture(future);
+ scheduledExecutor.schedule(runnable, delay, TimeUnit.MILLISECONDS);
}
private class ScheduledDeliveryRunnable implements Runnable
{
- private final MessageReference ref;
+ private final long scheduledTime;
- private volatile Future<?> future;
-
- private boolean cancelled;
-
- public ScheduledDeliveryRunnable(final MessageReference ref)
+ public ScheduledDeliveryRunnable(final long scheduledTime)
{
- this.ref = ref;
+ this.scheduledTime = scheduledTime;
}
- public synchronized void setFuture(final Future<?> future)
- {
- if (cancelled)
- {
- future.cancel(false);
- }
- else
- {
- this.future = future;
- }
- }
-
- public synchronized void cancel()
- {
- if (future != null)
- {
- future.cancel(false);
- }
-
- cancelled = true;
- }
-
- public MessageReference getReference()
- {
- return ref;
- }
-
public void run()
{
- if (ScheduledDeliveryHandlerImpl.trace)
- {
- ScheduledDeliveryHandlerImpl.log.trace("Scheduled delivery timeout " + ref);
- }
+ HashSet<Queue> queues = new HashSet<Queue>();
+ LinkedList<MessageReference> references = new LinkedList<MessageReference>();
- synchronized (scheduledRunnables)
+ synchronized (scheduledReferences)
{
- Object removed = scheduledRunnables.remove(ref.getMessage().getMessageID());
-
- if (removed == null)
+
+ Iterator<MessageReference> iter = scheduledReferences.iterator();
+ while (iter.hasNext())
{
- ScheduledDeliveryHandlerImpl.log.warn("Failed to remove timeout " + this);
+ MessageReference reference = iter.next();
+ if (reference.getScheduledDeliveryTime() == this.scheduledTime)
+ {
+ iter.remove();
- return;
+ reference.setScheduledDeliveryTime(0);
+
+ references.add(reference);
+
+ queues.add(reference.getQueue());
+ }
}
}
-
- ref.setScheduledDeliveryTime(0);
-
- synchronized (ref.getQueue())
+
+ for (MessageReference reference : references)
{
- ref.getQueue().resetAllIterators();
-
- ref.getQueue().addHead(ref);
-
- ref.getQueue().deliverAsync();
+ reference.getQueue().addHead(reference);
}
+
+ // Just to speed up GC
+ references.clear();
+
+ for (Queue queue : queues)
+ {
+ synchronized (queue)
+ {
+ queue.resetAllIterators();
+ queue.deliverAsync();
+ }
+ }
}
}
}
Modified: branches/Branch_2_2_EAP/tests/src/org/hornetq/tests/integration/client/OrderTest.java
===================================================================
--- branches/Branch_2_2_EAP/tests/src/org/hornetq/tests/integration/client/OrderTest.java 2011-02-14 13:32:17 UTC (rev 10204)
+++ branches/Branch_2_2_EAP/tests/src/org/hornetq/tests/integration/client/OrderTest.java 2011-02-15 01:04:21 UTC (rev 10205)
@@ -15,9 +15,15 @@
import junit.framework.Assert;
-import org.hornetq.api.core.client.*;
+import org.hornetq.api.core.client.ClientConsumer;
+import org.hornetq.api.core.client.ClientMessage;
+import org.hornetq.api.core.client.ClientProducer;
+import org.hornetq.api.core.client.ClientSession;
+import org.hornetq.api.core.client.ClientSessionFactory;
+import org.hornetq.api.core.client.ServerLocator;
import org.hornetq.core.logging.Logger;
import org.hornetq.core.server.HornetQServer;
+import org.hornetq.core.settings.impl.AddressSettings;
import org.hornetq.tests.util.ServiceTestBase;
/**
@@ -31,10 +37,9 @@
{
// Constants -----------------------------------------------------
-
+
private static final Logger log = Logger.getLogger(OrderTest.class);
-
// Attributes ----------------------------------------------------
private HornetQServer server;
@@ -78,7 +83,6 @@
server = createServer(persistent, true);
server.start();
-
locator.setBlockOnNonDurableSend(false);
locator.setBlockOnDurableSend(false);
locator.setBlockOnAcknowledge(true);
@@ -126,7 +130,7 @@
if (!started || started && i % 2 == 0)
{
ClientMessage msg = cons.receive(10000);
-
+
Assert.assertEquals(i, msg.getIntProperty("id").intValue());
}
}
@@ -140,7 +144,7 @@
if (!started || started && i % 2 == 0)
{
ClientMessage msg = cons.receive(10000);
-
+
Assert.assertEquals(i, msg.getIntProperty("id").intValue());
}
}
@@ -170,9 +174,9 @@
public void doTestOverCancel(final boolean persistent) throws Exception
{
server = createServer(persistent, true);
+
server.start();
-
locator.setBlockOnNonDurableSend(false);
locator.setBlockOnDurableSend(false);
locator.setBlockOnAcknowledge(false);
@@ -237,6 +241,94 @@
}
+ public void testOrderOverSessionClosePersistentWithRedeliveryDelay() throws Exception
+ {
+ doTestOverCancelWithRedelivery(true);
+ }
+
+ public void testOrderOverSessionCloseNonPersistentWithRedeliveryDelay() throws Exception
+ {
+ doTestOverCancelWithRedelivery(false);
+ }
+
+
+ public void doTestOverCancelWithRedelivery(final boolean persistent) throws Exception
+ {
+ server = createServer(persistent, true);
+
+ server.getAddressSettingsRepository().clear();
+ AddressSettings setting = new AddressSettings();
+ setting.setRedeliveryDelay(1000);
+ server.getAddressSettingsRepository().addMatch("#", setting);
+
+ server.start();
+
+ locator.setBlockOnNonDurableSend(false);
+ locator.setBlockOnDurableSend(false);
+ locator.setBlockOnAcknowledge(false);
+
+ ClientSessionFactory sf = locator.createSessionFactory();
+ ClientSession session = sf.createSession(true, true, 0);
+
+ int numberOfMessages = 500;
+
+ try
+ {
+ session.createQueue("queue", "queue", true);
+
+ ClientProducer prod = session.createProducer("queue");
+
+ for (int i = 0; i < numberOfMessages; i++)
+ {
+ ClientMessage msg = session.createMessage(i % 2 == 0);
+ msg.putIntProperty("id", i);
+ prod.send(msg);
+ }
+
+ session.close();
+
+ session = sf.createSession(false, false);;
+
+ session.start();
+
+ ClientConsumer cons = session.createConsumer("queue");
+
+ for (int i = 0 ; i < numberOfMessages; i++)
+ {
+ ClientMessage msg = cons.receive(5000);
+ msg.acknowledge();
+ assertEquals(i, msg.getIntProperty("id").intValue());
+ }
+ session.close();
+
+
+ session = sf.createSession(false, false);;
+
+ session.start();
+
+ cons = session.createConsumer("queue");
+
+
+ for (int i = 0 ; i < numberOfMessages; i++)
+ {
+ ClientMessage msg = cons.receive(5000);
+ assertNotNull(msg);
+ msg.acknowledge();
+ assertEquals(i, msg.getIntProperty("id").intValue());
+ }
+
+ // receive again
+ session.commit();
+ session.close();
+ }
+ finally
+ {
+ sf.close();
+ session.close();
+ }
+
+ }
+
// Package protected ---------------------------------------------
// Protected -----------------------------------------------------
Modified: branches/Branch_2_2_EAP/tests/src/org/hornetq/tests/unit/core/postoffice/impl/FakeQueue.java
===================================================================
--- branches/Branch_2_2_EAP/tests/src/org/hornetq/tests/unit/core/postoffice/impl/FakeQueue.java 2011-02-14 13:32:17 UTC (rev 10204)
+++ branches/Branch_2_2_EAP/tests/src/org/hornetq/tests/unit/core/postoffice/impl/FakeQueue.java 2011-02-15 01:04:21 UTC (rev 10205)
@@ -211,7 +211,7 @@
/* (non-Javadoc)
* @see org.hornetq.core.server.Queue#checkDLQ(org.hornetq.core.server.MessageReference)
*/
- public boolean checkDLQ(final MessageReference ref) throws Exception
+ public boolean checkRedelivery(final MessageReference ref) throws Exception
{
// TODO Auto-generated method stub
return false;
14 years, 1 month
JBoss hornetq SVN: r10204 - projects/jopr-plugin/tags/HornetQ-jopr-plugin_2_0_0_Final.
by do-not-reply@jboss.org
Author: ataylor
Date: 2011-02-14 08:32:17 -0500 (Mon, 14 Feb 2011)
New Revision: 10204
Modified:
projects/jopr-plugin/tags/HornetQ-jopr-plugin_2_0_0_Final/pom.xml
Log:
updated version after tag
Modified: projects/jopr-plugin/tags/HornetQ-jopr-plugin_2_0_0_Final/pom.xml
===================================================================
--- projects/jopr-plugin/tags/HornetQ-jopr-plugin_2_0_0_Final/pom.xml 2011-02-14 13:23:51 UTC (rev 10203)
+++ projects/jopr-plugin/tags/HornetQ-jopr-plugin_2_0_0_Final/pom.xml 2011-02-14 13:32:17 UTC (rev 10204)
@@ -5,7 +5,7 @@
<groupId>org.hornetq</groupId>
<artifactId>hornetq-jopr-plugin</artifactId>
<packaging>jar</packaging>
- <version>2.0.0.CR2</version>
+ <version>2.0.0.Final</version>
<name>JBoss Application Server JOPR plugin</name>
<url>http://hornetq.org</url>
<description>HornetQ JOPR plugin</description>
14 years, 1 month
JBoss hornetq SVN: r10203 - projects/jopr-plugin/tags.
by do-not-reply@jboss.org
Author: ataylor
Date: 2011-02-14 08:23:51 -0500 (Mon, 14 Feb 2011)
New Revision: 10203
Added:
projects/jopr-plugin/tags/HornetQ-jopr-plugin_2_0_0_Final/
Log:
promote 2_0_0_CR2 to 2_0_0_Final
14 years, 1 month
JBoss hornetq SVN: r10202 - in branches/Branch_2_2_EAP: tests/jms-tests/src/org/hornetq/jms/tests and 1 other directories.
by do-not-reply@jboss.org
Author: clebert.suconic(a)jboss.com
Date: 2011-02-13 14:43:11 -0500 (Sun, 13 Feb 2011)
New Revision: 10202
Modified:
branches/Branch_2_2_EAP/.classpath
branches/Branch_2_2_EAP/.project
branches/Branch_2_2_EAP/tests/jms-tests/src/org/hornetq/jms/tests/DeliveryOrderTest.java
branches/Branch_2_2_EAP/tests/src/org/hornetq/tests/integration/cluster/distribution/SymmetricClusterTest.java
Log:
accidental commit
Modified: branches/Branch_2_2_EAP/.classpath
===================================================================
--- branches/Branch_2_2_EAP/.classpath 2011-02-13 19:27:53 UTC (rev 10201)
+++ branches/Branch_2_2_EAP/.classpath 2011-02-13 19:43:11 UTC (rev 10202)
@@ -1,7 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
<classpathentry excluding="**/.svn/**/*" kind="src" path="src/main"/>
- <classpathentry kind="src" path="order-test"/>
<classpathentry kind="src" path="src/config/common"/>
<classpathentry kind="src" path="build/src"/>
<classpathentry kind="src" path="tests/jms-tests/config"/>
Modified: branches/Branch_2_2_EAP/.project
===================================================================
--- branches/Branch_2_2_EAP/.project 2011-02-13 19:27:53 UTC (rev 10201)
+++ branches/Branch_2_2_EAP/.project 2011-02-13 19:43:11 UTC (rev 10202)
@@ -20,11 +20,4 @@
<nature>org.eclipse.jdt.core.javanature</nature>
<nature>net.sourceforge.metrics.nature</nature>
</natures>
- <linkedResources>
- <link>
- <name>order-test</name>
- <type>2</type>
- <location>/Users/clebertsuconic/Dropbox/HornetQ-Stuff/order-test</location>
- </link>
- </linkedResources>
</projectDescription>
Modified: branches/Branch_2_2_EAP/tests/jms-tests/src/org/hornetq/jms/tests/DeliveryOrderTest.java
===================================================================
--- branches/Branch_2_2_EAP/tests/jms-tests/src/org/hornetq/jms/tests/DeliveryOrderTest.java 2011-02-13 19:27:53 UTC (rev 10201)
+++ branches/Branch_2_2_EAP/tests/jms-tests/src/org/hornetq/jms/tests/DeliveryOrderTest.java 2011-02-13 19:43:11 UTC (rev 10202)
@@ -98,68 +98,6 @@
}
}
- public void testCancelationOrder() throws Exception
- {
- Connection conn = null;
- try
- {
- conn = JMSTestCase.cf.createConnection();
-
- Session sess = conn.createSession(true, Session.SESSION_TRANSACTED);
-
- Session sess2 = conn.createSession(true, Session.SESSION_TRANSACTED);
-
- MessageProducer prod = sess.createProducer(HornetQServerTestCase.queue1);
-
- MessageConsumer cons = sess2.createConsumer(HornetQServerTestCase.queue1);
-
- final int NUM_MESSAGES = 5;
-
- conn.start();
-
- for (int i = 0; i < NUM_MESSAGES; i++)
- {
- TextMessage tm = sess.createTextMessage("message" + i);
-
- prod.send(tm);
- }
- sess.commit();
-
- for (int i = 0 ; i < NUM_MESSAGES; i++)
- {
- TextMessage tm = (TextMessage)cons.receive(5000);
- assertNotNull(tm);
- assertEquals("message" + i, tm.getText());
- }
-
- cons.close();
-
- sess2.close();
-
-
- sess2 = conn.createSession(true, Session.SESSION_TRANSACTED);
-
- cons = sess2.createConsumer(queue1);
-
- for (int i = 0 ; i < NUM_MESSAGES; i++)
- {
- TextMessage tm = (TextMessage)cons.receive(5000);
- assertNotNull(tm);
- assertEquals("message" + i, tm.getText());
- }
-
- sess2.commit();
-
- }
- finally
- {
- if (conn != null)
- {
- conn.close();
- }
- }
- }
-
class MyListener implements MessageListener
{
private int c;
Modified: branches/Branch_2_2_EAP/tests/src/org/hornetq/tests/integration/cluster/distribution/SymmetricClusterTest.java
===================================================================
--- branches/Branch_2_2_EAP/tests/src/org/hornetq/tests/integration/cluster/distribution/SymmetricClusterTest.java 2011-02-13 19:27:53 UTC (rev 10201)
+++ branches/Branch_2_2_EAP/tests/src/org/hornetq/tests/integration/cluster/distribution/SymmetricClusterTest.java 2011-02-13 19:43:11 UTC (rev 10202)
@@ -983,19 +983,6 @@
verifyReceiveRoundRobinInSomeOrder(10, 23, 24, 25);
}
-
-
- /*public void testLoop() throws Exception
- {
- for (int i = 0 ; i < 1000; i++)
- {
- System.out.println("#test "+ i);
- Thread.sleep(1000);
- testRouteWhenNoConsumersTrueLoadBalancedQueues();
- tearDown();
- setUp();
- }
- }*/
public void testRouteWhenNoConsumersTrueLoadBalancedQueues() throws Exception
{
14 years, 1 month
JBoss hornetq SVN: r10201 - in branches/Branch_2_2_EAP: src/config/common and 2 other directories.
by do-not-reply@jboss.org
Author: clebert.suconic(a)jboss.com
Date: 2011-02-13 14:27:53 -0500 (Sun, 13 Feb 2011)
New Revision: 10201
Modified:
branches/Branch_2_2_EAP/.classpath
branches/Branch_2_2_EAP/.project
branches/Branch_2_2_EAP/build-maven.xml
branches/Branch_2_2_EAP/src/config/common/hornetq-version.properties
branches/Branch_2_2_EAP/tests/jms-tests/src/org/hornetq/jms/tests/DeliveryOrderTest.java
branches/Branch_2_2_EAP/tests/src/org/hornetq/tests/integration/cluster/distribution/SymmetricClusterTest.java
Log:
release change
Modified: branches/Branch_2_2_EAP/.classpath
===================================================================
--- branches/Branch_2_2_EAP/.classpath 2011-02-13 19:00:55 UTC (rev 10200)
+++ branches/Branch_2_2_EAP/.classpath 2011-02-13 19:27:53 UTC (rev 10201)
@@ -1,6 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
<classpathentry excluding="**/.svn/**/*" kind="src" path="src/main"/>
+ <classpathentry kind="src" path="order-test"/>
<classpathentry kind="src" path="src/config/common"/>
<classpathentry kind="src" path="build/src"/>
<classpathentry kind="src" path="tests/jms-tests/config"/>
Modified: branches/Branch_2_2_EAP/.project
===================================================================
--- branches/Branch_2_2_EAP/.project 2011-02-13 19:00:55 UTC (rev 10200)
+++ branches/Branch_2_2_EAP/.project 2011-02-13 19:27:53 UTC (rev 10201)
@@ -20,4 +20,11 @@
<nature>org.eclipse.jdt.core.javanature</nature>
<nature>net.sourceforge.metrics.nature</nature>
</natures>
+ <linkedResources>
+ <link>
+ <name>order-test</name>
+ <type>2</type>
+ <location>/Users/clebertsuconic/Dropbox/HornetQ-Stuff/order-test</location>
+ </link>
+ </linkedResources>
</projectDescription>
Modified: branches/Branch_2_2_EAP/build-maven.xml
===================================================================
--- branches/Branch_2_2_EAP/build-maven.xml 2011-02-13 19:00:55 UTC (rev 10200)
+++ branches/Branch_2_2_EAP/build-maven.xml 2011-02-13 19:27:53 UTC (rev 10201)
@@ -13,7 +13,7 @@
-->
<project default="upload" name="HornetQ">
- <property name="hornetq.version" value="2.2.0.EAP-QA-10198"/>
+ <property name="hornetq.version" value="2.2.0.EAP-QA-10199"/>
<property name="build.dir" value="build"/>
<property name="jars.dir" value="${build.dir}/jars"/>
Modified: branches/Branch_2_2_EAP/src/config/common/hornetq-version.properties
===================================================================
--- branches/Branch_2_2_EAP/src/config/common/hornetq-version.properties 2011-02-13 19:00:55 UTC (rev 10200)
+++ branches/Branch_2_2_EAP/src/config/common/hornetq-version.properties 2011-02-13 19:27:53 UTC (rev 10201)
@@ -1,4 +1,4 @@
-hornetq.version.versionName=QA_10198
+hornetq.version.versionName=QA_10199
hornetq.version.majorVersion=2
hornetq.version.minorVersion=2
hornetq.version.microVersion=0
Modified: branches/Branch_2_2_EAP/tests/jms-tests/src/org/hornetq/jms/tests/DeliveryOrderTest.java
===================================================================
--- branches/Branch_2_2_EAP/tests/jms-tests/src/org/hornetq/jms/tests/DeliveryOrderTest.java 2011-02-13 19:00:55 UTC (rev 10200)
+++ branches/Branch_2_2_EAP/tests/jms-tests/src/org/hornetq/jms/tests/DeliveryOrderTest.java 2011-02-13 19:27:53 UTC (rev 10201)
@@ -98,6 +98,68 @@
}
}
+ public void testCancelationOrder() throws Exception
+ {
+ Connection conn = null;
+ try
+ {
+ conn = JMSTestCase.cf.createConnection();
+
+ Session sess = conn.createSession(true, Session.SESSION_TRANSACTED);
+
+ Session sess2 = conn.createSession(true, Session.SESSION_TRANSACTED);
+
+ MessageProducer prod = sess.createProducer(HornetQServerTestCase.queue1);
+
+ MessageConsumer cons = sess2.createConsumer(HornetQServerTestCase.queue1);
+
+ final int NUM_MESSAGES = 5;
+
+ conn.start();
+
+ for (int i = 0; i < NUM_MESSAGES; i++)
+ {
+ TextMessage tm = sess.createTextMessage("message" + i);
+
+ prod.send(tm);
+ }
+ sess.commit();
+
+ for (int i = 0 ; i < NUM_MESSAGES; i++)
+ {
+ TextMessage tm = (TextMessage)cons.receive(5000);
+ assertNotNull(tm);
+ assertEquals("message" + i, tm.getText());
+ }
+
+ cons.close();
+
+ sess2.close();
+
+
+ sess2 = conn.createSession(true, Session.SESSION_TRANSACTED);
+
+ cons = sess2.createConsumer(queue1);
+
+ for (int i = 0 ; i < NUM_MESSAGES; i++)
+ {
+ TextMessage tm = (TextMessage)cons.receive(5000);
+ assertNotNull(tm);
+ assertEquals("message" + i, tm.getText());
+ }
+
+ sess2.commit();
+
+ }
+ finally
+ {
+ if (conn != null)
+ {
+ conn.close();
+ }
+ }
+ }
+
class MyListener implements MessageListener
{
private int c;
Modified: branches/Branch_2_2_EAP/tests/src/org/hornetq/tests/integration/cluster/distribution/SymmetricClusterTest.java
===================================================================
--- branches/Branch_2_2_EAP/tests/src/org/hornetq/tests/integration/cluster/distribution/SymmetricClusterTest.java 2011-02-13 19:00:55 UTC (rev 10200)
+++ branches/Branch_2_2_EAP/tests/src/org/hornetq/tests/integration/cluster/distribution/SymmetricClusterTest.java 2011-02-13 19:27:53 UTC (rev 10201)
@@ -983,6 +983,19 @@
verifyReceiveRoundRobinInSomeOrder(10, 23, 24, 25);
}
+
+
+ /*public void testLoop() throws Exception
+ {
+ for (int i = 0 ; i < 1000; i++)
+ {
+ System.out.println("#test "+ i);
+ Thread.sleep(1000);
+ testRouteWhenNoConsumersTrueLoadBalancedQueues();
+ tearDown();
+ setUp();
+ }
+ }*/
public void testRouteWhenNoConsumersTrueLoadBalancedQueues() throws Exception
{
14 years, 1 month
JBoss hornetq SVN: r10200 - branches/Branch_2_2_EAP/hornetq-rest.
by do-not-reply@jboss.org
Author: clebert.suconic(a)jboss.com
Date: 2011-02-13 14:00:55 -0500 (Sun, 13 Feb 2011)
New Revision: 10200
Modified:
branches/Branch_2_2_EAP/hornetq-rest/pom.xml
Log:
release change
Modified: branches/Branch_2_2_EAP/hornetq-rest/pom.xml
===================================================================
--- branches/Branch_2_2_EAP/hornetq-rest/pom.xml 2011-02-11 22:06:46 UTC (rev 10199)
+++ branches/Branch_2_2_EAP/hornetq-rest/pom.xml 2011-02-13 19:00:55 UTC (rev 10200)
@@ -10,7 +10,7 @@
<properties>
<resteasy.version>2.0.1.GA</resteasy.version>
- <hornetq.version>2.2.0.EAP-QA-10198</hornetq.version>
+ <hornetq.version>2.2.0.EAP-QA-10199</hornetq.version>
</properties>
<licenses>
14 years, 1 month