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