[jboss-cvs] JBoss Messaging SVN: r3098 - in trunk/tests/src/org/jboss/test/messaging: jms and 1 other directory.
jboss-cvs-commits at lists.jboss.org
jboss-cvs-commits at lists.jboss.org
Tue Sep 11 18:47:16 EDT 2007
Author: clebert.suconic at jboss.com
Date: 2007-09-11 18:47:15 -0400 (Tue, 11 Sep 2007)
New Revision: 3098
Modified:
trunk/tests/src/org/jboss/test/messaging/MessagingTestCase.java
trunk/tests/src/org/jboss/test/messaging/jms/MessageConsumerTest.java
trunk/tests/src/org/jboss/test/messaging/jms/ScheduledDeliveryTest.java
Log:
Fixing eventual failures because of GC.
Modified: trunk/tests/src/org/jboss/test/messaging/MessagingTestCase.java
===================================================================
--- trunk/tests/src/org/jboss/test/messaging/MessagingTestCase.java 2007-09-11 22:46:01 UTC (rev 3097)
+++ trunk/tests/src/org/jboss/test/messaging/MessagingTestCase.java 2007-09-11 22:47:15 UTC (rev 3098)
@@ -25,6 +25,7 @@
import java.sql.ResultSet;
import java.util.ArrayList;
import java.util.List;
+import java.lang.ref.WeakReference;
import javax.jms.Connection;
import javax.jms.ConnectionFactory;
@@ -585,6 +586,23 @@
}
}
+ /** Some testcases are time sensitive, and we need to make sure a GC would happen before certain scenarios*/
+ protected void forceGC()
+ {
+ WeakReference dumbReference = new WeakReference(new Object());
+ // A loopt that will wait GC, using the minimal time as possible
+ while (dumbReference.get() != null)
+ {
+ System.gc();
+ try
+ {
+ Thread.sleep(500);
+ } catch (InterruptedException e)
+ {
+ }
+ }
+ }
+
// Private -------------------------------------------------------
// Inner classes -------------------------------------------------
Modified: trunk/tests/src/org/jboss/test/messaging/jms/MessageConsumerTest.java
===================================================================
--- trunk/tests/src/org/jboss/test/messaging/jms/MessageConsumerTest.java 2007-09-11 22:46:01 UTC (rev 3097)
+++ trunk/tests/src/org/jboss/test/messaging/jms/MessageConsumerTest.java 2007-09-11 22:47:15 UTC (rev 3098)
@@ -2193,8 +2193,7 @@
//This is a really weird test - the received object is always going to be null since no message is sent!!
- System.gc(); /// If A GC need to be executed, it' s better to be executed now
- Thread.sleep(1000);
+ forceGC(); /// If A GC need to be executed, it' s better to be executed now
if (log.isTraceEnabled()) log.trace("testTimeoutReceiveOnClose");
Object monitor = new Object();
Modified: trunk/tests/src/org/jboss/test/messaging/jms/ScheduledDeliveryTest.java
===================================================================
--- trunk/tests/src/org/jboss/test/messaging/jms/ScheduledDeliveryTest.java 2007-09-11 22:46:01 UTC (rev 3097)
+++ trunk/tests/src/org/jboss/test/messaging/jms/ScheduledDeliveryTest.java 2007-09-11 22:47:15 UTC (rev 3098)
@@ -127,7 +127,7 @@
//Now stop the server and restart it
conn.close();
-
+
ServerManagement.stopServerPeer();
ServerManagement.startServerPeer();
@@ -143,22 +143,24 @@
MessageConsumer cons = sess.createConsumer(queue1);
+ forceGC();
+
//First the non scheduled messages should be received
-
+
TextMessage rm1 = (TextMessage)cons.receive(250);
assertNotNull(rm1);
assertEquals(tm2.getText(), rm1.getText());
- TextMessage rm2 = (TextMessage)cons.receive(250);
+ TextMessage rm2 = (TextMessage)cons.receive(250);
assertNotNull(rm2);
assertEquals(tm3.getText(), rm2.getText());
- TextMessage rm3 = (TextMessage)cons.receive(250);
+ TextMessage rm3 = (TextMessage)cons.receive(250);
assertNotNull(rm3);
assertEquals(tm4.getText(), rm3.getText());
//Now the one with a scheduled with a -ve number
- TextMessage rm5 = (TextMessage)cons.receive(250);
+ TextMessage rm5 = (TextMessage)cons.receive(250);
assertNotNull(rm5);
assertEquals(tm9.getText(), rm5.getText());
@@ -486,23 +488,25 @@
{
sess.commit();
}
-
+
//First the non scheduled messages should be received
-
- TextMessage rm1 = (TextMessage)cons.receive(250);
+ forceGC();
+
+
+ TextMessage rm1 = (TextMessage)cons.receive(250);
assertNotNull(rm1);
assertEquals(tm2.getText(), rm1.getText());
- TextMessage rm2 = (TextMessage)cons.receive(250);
+ TextMessage rm2 = (TextMessage)cons.receive(250);
assertNotNull(rm2);
assertEquals(tm3.getText(), rm2.getText());
- TextMessage rm3 = (TextMessage)cons.receive(250);
+ TextMessage rm3 = (TextMessage)cons.receive(250);
assertNotNull(rm3);
assertEquals(tm4.getText(), rm3.getText());
//Now the one with a scheduled with a -ve number
- TextMessage rm5 = (TextMessage)cons.receive(250);
+ TextMessage rm5 = (TextMessage)cons.receive(250);
assertNotNull(rm5);
assertEquals(tm9.getText(), rm5.getText());
More information about the jboss-cvs-commits
mailing list