User: ejort
Date: 02/03/24 05:12:13
Modified: src/main/test/compliance/query QueryTestCase.java
Log:
merge RelMX_1_0_0_12 to RelMX_1_0_0_13 to dev branch
Revision Changes Path
1.2 +64 -0 jmx/src/main/test/compliance/query/QueryTestCase.java
Index: QueryTestCase.java
===================================================================
RCS file: /cvsroot/jboss/jmx/src/main/test/compliance/query/QueryTestCase.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- QueryTestCase.java 15 Mar 2002 20:26:40 -0000 1.1
+++ QueryTestCase.java 24 Mar 2002 13:12:13 -0000 1.2
@@ -1001,6 +1001,38 @@
}
/**
+ * Test threading, tests that running the same query in multiple threads
+ * works. This test might not catch a threading problem on every run.
+ */
+ public void testThreading() throws Exception
+ {
+ MBeanServer server1 = MBeanServerFactory.createMBeanServer("server1");
+ MBeanServer server2 = MBeanServerFactory.createMBeanServer("server2");
+ try
+ {
+ ObjectName name = new ObjectName("Domain1:type=instance1");
+ NumberTest bean1 = new NumberTest(1);
+ NumberTest bean2 = new NumberTest(2);
+ server1.registerMBean(bean1, name);
+ server2.registerMBean(bean2, name);
+ QueryExp query = Query.eq(Query.attr("Number"), Query.value(2));
+ QueryThread thread1 = new QueryThread(server1, query, 0);
+ QueryThread thread2 = new QueryThread(server2, query, 1);
+ thread1.start();
+ thread2.start();
+ thread1.join(10000);
+ thread1.check();
+ thread2.join(10000);
+ thread2.check();
+ }
+ finally
+ {
+ MBeanServerFactory.releaseMBeanServer(server1);
+ MBeanServerFactory.releaseMBeanServer(server2);
+ }
+ }
+
+ /**
* Test pathological
*/
public void testPathological() throws Exception
@@ -1553,6 +1585,38 @@
{
fail("Expected instance " + iterator.next()
+ "\nfor query " + queryExp);
+ }
+ }
+ }
+
+ public class QueryThread
+ extends Thread
+ {
+ MBeanServer server;
+ QueryExp query;
+ int expected;
+ int result;
+ public QueryThread(MBeanServer server, QueryExp query, int expected)
+ {
+ this.server = server;
+ this.query = query;
+ this.expected = expected;
+ }
+ public int getExpected()
+ {
+ return expected;
+ }
+ public void check()
+ {
+ assertEquals(expected, result);
+ }
+ public void run()
+ {
+ for (int i = 0; i < 1000; i++)
+ {
+ result = server.queryNames(null, query).size();
+ if (result != expected)
+ return;
}
}
}
_______________________________________________
Jboss-development mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/jboss-development