Yes, dead on -- worked for single threaded tests - however, should testOne()
and testTwo() affect each other if executed on separate threads?
I.e., in this configuration in my pom.xml
(...)
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<configuration>
<groups>unit,performance</groups>
<parallel>methods</parallel>
<threadCount>1</threadCount>
</configuration>
</plugin>
(...)
succeeds -- for threadCount > 1 however, fails..
Let me know if that is the intended behavior (thread-safety of CamelContext
/ or endpoints), a limitation or this is an uncovered bug.
Thanks !
James.Strachan wrote:
>
> 2008/6/16 James Strachan <[EMAIL PROTECTED]>:
>> I wonder if using an AtomicInteger inside your ExceptionThrower might
>> help?
>
> BTW I mean change the type of 'i' from int to AtomicInteger then
> change the code to something like this...
>
> switch (i.incrementAndGet()) {
> case 1:
> System.out.println("throwing null");
> throw new NullPointerException();
> case 2:
> System.out.println("throwing
> exception");
> throw new Exception();
> default:
> System.out.println("throwing nothing");
> ; // nop
> }
>
>
>
>>
>> 2008/6/16 jmfj <[EMAIL PROTECTED]>:
>>>
>>> The results of this unit test are not the same everytime - it should
>>> (right?)
>>> -
>>>
>>> ** FIRST RUN (maven)
>>> -------------------------------------------------------------------------------
>>> Test set: TestSuite
>>> -------------------------------------------------------------------------------
>>> Tests run: 2, Failures: 1, Errors: 0, Skipped: 0, Time elapsed: 20.743
>>> sec
>>> <<< FAILURE!
>>>
>>> testExceptionHandlerOne(net.quantlet.box.mediation.CamelTest) Time
>>> elapsed:
>>> 20.079 sec <<< FAILURE!
>>> java.lang.AssertionError: mock:null-pointer Received message count.
>>> Expected: <1> but was: <0>
>>> at
>>> org.apache.camel.component.mock.MockEndpoint.fail(MockEndpoint.java:658)
>>> at
>>> org.apache.camel.component.mock.MockEndpoint.assertEquals(MockEndpoint.java:640)
>>> at
>>> org.apache.camel.component.mock.MockEndpoint.assertIsSatisfied(MockEndpoint.java:217)
>>> at
>>> org.apache.camel.component.mock.MockEndpoint.assertIsSatisfied(MockEndpoint.java:193)
>>> at
>>> net.quantlet.box.mediation.CamelTest.testExceptionHandlerOne(CamelTest.java:82)
>>>
>>> TestExceptionHandlerOne was successful
>>>
>>> ** SECOND RUN (eclipse)
>>>
>>> java.lang.AssertionError: mock:null-pointer Received message count.
>>> Expected: <1> but was: <0>
>>> at
>>> org.apache.camel.component.mock.MockEndpoint.fail(MockEndpoint.java:658)
>>> at
>>> org.apache.camel.component.mock.MockEndpoint.assertEquals(MockEndpoint.java:640)
>>> at
>>> org.apache.camel.component.mock.MockEndpoint.assertIsSatisfied(MockEndpoint.java:217)
>>> at
>>> org.apache.camel.component.mock.MockEndpoint.assertIsSatisfied(MockEndpoint.java:193)
>>> at
>>> net.quantlet.box.mediation.CamelTest.testExceptionHandlerTwo(CamelTest.java:123)
>>> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>>> at
>>> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
>>> at
>>> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
>>> at java.lang.reflect.Method.invoke(Method.java:585)
>>> at
>>> org.testng.internal.MethodHelper.invokeMethod(MethodHelper.java:580)
>>> at org.testng.internal.Invoker.invokeMethod(Invoker.java:478)
>>> at org.testng.internal.Invoker.invokeTestMethod(Invoker.java:617)
>>> at
>>> org.testng.internal.Invoker.invokeTestMethods(Invoker.java:885)
>>> at
>>> org.testng.internal.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:126)
>>> at
>>> org.testng.internal.TestMethodWorker.run(TestMethodWorker.java:110)
>>> at org.testng.TestRunner.runWorkers(TestRunner.java:712)
>>> at org.testng.TestRunner.privateRun(TestRunner.java:582)
>>> at org.testng.TestRunner.run(TestRunner.java:477)
>>> at org.testng.SuiteRunner.runTest(SuiteRunner.java:324)
>>> at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:319)
>>> at org.testng.SuiteRunner.privateRun(SuiteRunner.java:292)
>>> at org.testng.SuiteRunner.run(SuiteRunner.java:198)
>>> at org.testng.TestNG.createAndRunSuiteRunners(TestNG.java:823)
>>> at org.testng.TestNG.runSuitesLocally(TestNG.java:790)
>>> at org.testng.TestNG.run(TestNG.java:708)
>>> at org.testng.remote.RemoteTestNG.run(RemoteTestNG.java:73)
>>> at org.testng.remote.RemoteTestNG.main(RemoteTestNG.java:124)
>>>
>>> TestExceptionHandlerOne was successful
>>>
>>> ** THIRD RUN (eclipse again)
>>>
>>> java.lang.AssertionError: mock:null-pointer Received message count.
>>> Expected: <1> but was: <0>
>>> at
>>> org.apache.camel.component.mock.MockEndpoint.fail(MockEndpoint.java:658)
>>> at
>>> org.apache.camel.component.mock.MockEndpoint.assertEquals(MockEndpoint.java:640)
>>> at
>>> org.apache.camel.component.mock.MockEndpoint.assertIsSatisfied(MockEndpoint.java:217)
>>> at
>>> org.apache.camel.component.mock.MockEndpoint.assertIsSatisfied(MockEndpoint.java:193)
>>> at
>>> net.quantlet.box.mediation.CamelTest.testExceptionHandlerTwo(CamelTest.java:123)
>>> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>>> at
>>> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
>>> at
>>> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
>>> at java.lang.reflect.Method.invoke(Method.java:585)
>>> at
>>> org.testng.internal.MethodHelper.invokeMethod(MethodHelper.java:580)
>>> at org.testng.internal.Invoker.invokeMethod(Invoker.java:478)
>>> at org.testng.internal.Invoker.invokeTestMethod(Invoker.java:617)
>>> at
>>> org.testng.internal.Invoker.invokeTestMethods(Invoker.java:885)
>>> at
>>> org.testng.internal.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:126)
>>> at
>>> org.testng.internal.TestMethodWorker.run(TestMethodWorker.java:110)
>>> at org.testng.TestRunner.runWorkers(TestRunner.java:712)
>>> at org.testng.TestRunner.privateRun(TestRunner.java:582)
>>> at org.testng.TestRunner.run(TestRunner.java:477)
>>> at org.testng.SuiteRunner.runTest(SuiteRunner.java:324)
>>> at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:319)
>>> at org.testng.SuiteRunner.privateRun(SuiteRunner.java:292)
>>> at org.testng.SuiteRunner.run(SuiteRunner.java:198)
>>> at org.testng.TestNG.createAndRunSuiteRunners(TestNG.java:823)
>>> at org.testng.TestNG.runSuitesLocally(TestNG.java:790)
>>> at org.testng.TestNG.run(TestNG.java:708)
>>> at org.testng.remote.RemoteTestNG.run(RemoteTestNG.java:73)
>>> at org.testng.remote.RemoteTestNG.main(RemoteTestNG.java:124)
>>>
>>> and
>>>
>>> java.lang.AssertionError: mock:null-pointer Received message count.
>>> Expected: <1> but was: <0>
>>> at
>>> org.apache.camel.component.mock.MockEndpoint.fail(MockEndpoint.java:658)
>>> at
>>> org.apache.camel.component.mock.MockEndpoint.assertEquals(MockEndpoint.java:640)
>>> at
>>> org.apache.camel.component.mock.MockEndpoint.assertIsSatisfied(MockEndpoint.java:217)
>>> at
>>> org.apache.camel.component.mock.MockEndpoint.assertIsSatisfied(MockEndpoint.java:193)
>>> at
>>> net.quantlet.box.mediation.CamelTest.testExceptionHandlerOne(CamelTest.java:82)
>>> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>>> at
>>> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
>>> at
>>> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
>>> at java.lang.reflect.Method.invoke(Method.java:585)
>>> at
>>> org.testng.internal.MethodHelper.invokeMethod(MethodHelper.java:580)
>>> at org.testng.internal.Invoker.invokeMethod(Invoker.java:478)
>>> at org.testng.internal.Invoker.invokeTestMethod(Invoker.java:617)
>>> at
>>> org.testng.internal.Invoker.invokeTestMethods(Invoker.java:885)
>>> at
>>> org.testng.internal.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:126)
>>> at
>>> org.testng.internal.TestMethodWorker.run(TestMethodWorker.java:110)
>>> at org.testng.TestRunner.runWorkers(TestRunner.java:712)
>>> at org.testng.TestRunner.privateRun(TestRunner.java:582)
>>> at org.testng.TestRunner.run(TestRunner.java:477)
>>> at org.testng.SuiteRunner.runTest(SuiteRunner.java:324)
>>> at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:319)
>>> at org.testng.SuiteRunner.privateRun(SuiteRunner.java:292)
>>> at org.testng.SuiteRunner.run(SuiteRunner.java:198)
>>> at org.testng.TestNG.createAndRunSuiteRunners(TestNG.java:823)
>>> at org.testng.TestNG.runSuitesLocally(TestNG.java:790)
>>> at org.testng.TestNG.run(TestNG.java:708)
>>> at org.testng.remote.RemoteTestNG.run(RemoteTestNG.java:73)
>>> at org.testng.remote.RemoteTestNG.main(RemoteTestNG.java:124)
>>>
>>> I might be missing something (hope not) - anyways, here is the entire
>>> unit
>>> test (TestNG) for your enjoyment...
>>>
>>> http://www.nabble.com/file/p17867803/CamelTest.java CamelTest.java
>>>
>>>
>>> --
>>> View this message in context:
>>> http://www.nabble.com/Unit-Test---Non-Deterministic-Results-tp17867803s22882p17867803.html
>>> Sent from the Camel - Development mailing list archive at Nabble.com.
>>>
>>>
>>
>>
>>
>> --
>> James
>> -------
>> http://macstrac.blogspot.com/
>>
>> Open Source Integration
>> http://open.iona.com
>>
>
>
>
> --
> James
> -------
> http://macstrac.blogspot.com/
>
> Open Source Integration
> http://open.iona.com
>
>
--
View this message in context:
http://www.nabble.com/Unit-Test---Non-Deterministic-Results-tp17867803s22882p17870129.html
Sent from the Camel - Development mailing list archive at Nabble.com.