After some additional tests it looks like, that each second test fails
because of this. If I run all tests, number one succeed, number two fails,
number three succeed and number four fails. If I comment number number two,
number three fails and number four succeed. If I comment number two and
three, number four succeed. Very strange...

Regards,
Christian

On Mon, Jul 5, 2010 at 4:21 PM, Christian Müller <
[email protected]> wrote:

> Hello list,
>
> I using Apache Camel 2.2.0-fuse-01-00 and I have trouble to run my four
> unit tests. If I run each test separate (annotate the other tests with
> @Ignore or run only one test method in my IDE) all tests succeed. But if I
> run all tests together (one test after the others) with Maven or in my IDE,
> I receive a java.net.SocketTimeoutException. Unfortunately I have no idea,
> where the side effect is.
>
> My test looks as following:
> public class IncommingRouteTest extends CamelSpringTestSupport {
>
>     private Person client;
>
>     @EndpointInject(uri = "mock:result")
>     private MockEndpoint queueEndpoint;
>
>     @EndpointInject(uri = "mock:error")
>     private MockEndpoint errorEndpoint;
>
>     @Before
>     public void setUp() throws Exception {
>         disableJMX();
>
>         super.setUp();
>
>         URL wsdlURL =
> IncommingRouteTest.class.getClassLoader().getResource("META-INF/wlsi/person-non-wrapper.wsdl");
>         PersonService ss = new PersonService(wsdlURL, new QName("
> http://camel.apache.org/non-wrapper";, "PersonService"));
>         client = ss.getSoap();
>     }
>
>     @Test
>     public void process() throws Exception {
>         queueEndpoint.expectedMessageCount(1);
>
> queueEndpoint.expectedBodiesReceived("com.awl.wlsi.example.eai.service.types.GetPerson[personId='1']");
>         errorEndpoint.expectedMessageCount(0);
>
>         GetPerson request = new GetPerson();
>         request.setPersonId("1");
>         GetPersonResponse response = client.getPerson(request);
>
>         assertEquals("1", response.getPersonId());
>         assertEquals("Christian Mueller", response.getName());
>         assertEquals("123", response.getSsn());
>
>         queueEndpoint.assertIsSatisfied();
>         errorEndpoint.assertIsSatisfied();
>     }
>
>     @Test
>     public void processIrrecoverableExceptionForUnknowPerson() throws
> Exception {
>         queueEndpoint.expectedMessageCount(1);
>
> queueEndpoint.expectedBodiesReceived("com.awl.wlsi.example.eai.service.types.GetPerson[personId='?']");
>         errorEndpoint.expectedMessageCount(0);
>
>         GetPerson request = new GetPerson();
>         request.setPersonId("?");
>
>         try {
>             client.getPerson(request);
>             fail("We expect to get the UnknowPersonFault here");
>         } catch (UnknownPersonFault fault) {
>             // We expect to get fault here
>             assertEquals("Receive an invalid personId: '?'",
> fault.getMessage());
>         }
>
>         queueEndpoint.assertIsSatisfied();
>         errorEndpoint.assertIsSatisfied();
>     }
>
>     @Test
>     public void processRecoverableExceptionForUnknowPerson() throws
> Exception {
>         queueEndpoint.expectedMessageCount(1);
>
> queueEndpoint.expectedBodiesReceived("com.awl.wlsi.example.eai.service.types.GetPerson[personId='5']");
>         errorEndpoint.expectedMessageCount(1);
>
>         GetPerson request = new GetPerson();
>         request.setPersonId("5");
>
>         try {
>             client.getPerson(request);
>             fail("We expect to get the SOAPFaultException here");
>         } catch (SOAPFaultException fault) {
>             // We expect to get fault here
>             assertEquals("Recoverable exception", fault.getMessage());
>         }
>
>         queueEndpoint.assertIsSatisfied();
>         errorEndpoint.assertIsSatisfied();
>     }
>
>     @Test
>     public void processInvalidRequest() throws Exception {
>         queueEndpoint.expectedMessageCount(0);
>         errorEndpoint.expectedMessageCount(0);
>
>         GetPerson request = new GetPerson();
>         request.setPersonId("tooooooooooooooooooooooo long");
>
>         try {
>             client.getPerson(request);
>             fail("We expect to get a message schema validation
> failure");
>         } catch (Exception ex) {
>             // We expect to get fault here
>             assertEquals("Unmarshalling Error: cvc-maxLength-valid: Value
> 'tooooooooooooooooooooooo long' with length = '29' is not facet-valid with
> respect to maxLength '10' for type 'personId'. ", ex.getMessage());
>         }
>
>         queueEndpoint.assertIsSatisfied();
>         errorEndpoint.assertIsSatisfied();
>     }
>
>     @Override
>     protected ClassPathXmlApplicationContext createApplicationContext() {
>         return new ClassPathXmlApplicationContext(new
> String[]{"META-INF/spring/bundle-context.xml",
> "META-INF/spring/bundle-context-test.xml"});
>     }
>
>     @Override
>     protected int getExpectedRouteCount() {
>         return 0;
>     }
> }
>
>
> stack trace:
> 2010-07-05 16:07:40,963 [main           ] DEBUG
> DefaultCamelContext            - ... Routes started
> 2010-07-05 16:07:40,963 [main           ] INFO
> DefaultCamelContext            - Started 3 routes
> 2010-07-05 16:07:40,963 [main           ] INFO
> DefaultCamelContext            - Apache Camel 2.2.0-fuse-01-00
> (CamelContext:camelContext) started
> 2010-07-05 16:07:40,963 [main           ] DEBUG
> IncommingRouteTest             - Camel Routes:
> [EventDrivenConsumerRoute[Endpoint[
> http://localhost:8181/Services/PersonService] ->
> Instrumentation:route[UnitOfWork(Channel[Multicast[[Channel[sendTo(Endpoint[direct://queue])],
> Channel[sendTo(Endpoint[direct://processor])]]]])]],
> EventDrivenConsumerRoute[Endpoint[direct://queue] ->
> Instrumentation:route[UnitOfWork(pipeline[channel[com.awl.wlsi.example.eai.in.incommingrout...@b3a5d1],
> Channel[sendTo(Endpoint[mock://result] InOnly)]])]],
> EventDrivenConsumerRoute[Endpoint[direct://processor] ->
> Instrumentation:route[UnitOfWork(channel[com.awl.wlsi.example.eai.in.personproces...@139ef3a
> ])]]]
> 2010-07-05 16:07:40,963 [main           ] TRACE
> CamelBeanPostProcessor         - Camel bean processing before initialization
> for bean: this
> 2010-07-05 16:07:40,963 [main           ] TRACE
> DefaultCamelContext            - Getting endpoint with uri: mock://result
> 2010-07-05 16:07:40,963 [main           ] TRACE
> DefaultCamelContext            - Getting endpoint with uri: mock://error
> 2010-07-05 16:07:40,963 [main           ] DEBUG
> IncommingRouteTest             - Using created route builder: Routes: []
> 2010-07-05 16:07:40,963 [main           ] DEBUG
> DefaultCamelContext            - Adding routes from builder: Routes: []
> 2010-07-05 16:07:40,963 [main           ] DEBUG
> IncommingRouteTest             - Routing Rules are:
> [EventDrivenConsumerRoute[Endpoint[
> http://localhost:8181/Services/PersonService] ->
> Instrumentation:route[UnitOfWork(Channel[Multicast[[Channel[sendTo(Endpoint[direct://queue])],
> Channel[sendTo(Endpoint[direct://processor])]]]])]],
> EventDrivenConsumerRoute[Endpoint[direct://queue] ->
> Instrumentation:route[UnitOfWork(pipeline[channel[com.awl.wlsi.example.eai.in.incommingrout...@b3a5d1],
> Channel[sendTo(Endpoint[mock://result] InOnly)]])]],
> EventDrivenConsumerRoute[Endpoint[direct://processor] ->
> Instrumentation:route[UnitOfWork(channel[com.awl.wlsi.example.eai.in.personproces...@139ef3a
> ])]]]
> 2010-07-05 16:07:40,963 [main           ] DEBUG
> IncommingRouteTest             - Routing Rules are:
> [EventDrivenConsumerRoute[Endpoint[
> http://localhost:8181/Services/PersonService] ->
> Instrumentation:route[UnitOfWork(Channel[Multicast[[Channel[sendTo(Endpoint[direct://queue])],
> Channel[sendTo(Endpoint[direct://processor])]]]])]],
> EventDrivenConsumerRoute[Endpoint[direct://queue] ->
> Instrumentation:route[UnitOfWork(pipeline[channel[com.awl.wlsi.example.eai.in.incommingrout...@b3a5d1],
> Channel[sendTo(Endpoint[mock://result] InOnly)]])]],
> EventDrivenConsumerRoute[Endpoint[direct://processor] ->
> Instrumentation:route[UnitOfWork(channel[com.awl.wlsi.example.eai.in.personproces...@139ef3a
> ])]]]
> 05.07.2010 16:07:40
> org.apache.cxf.service.factory.ReflectionServiceFactoryBean
> buildServiceFromWSDL
> INFO: Creating Service 
> {http://camel.apache.org/non-wrapper}PersonService<http://camel.apache.org/non-wrapper%7DPersonService>from
>  WSDL:
> file:/D:/workspaceWLSI/wlsi/examples/wlsi-example-eai/wlsi-example-eai-incomming/target/classes/META-INF/wlsi/person-non-wrapper.wsdl
> 05.07.2010 16:08:41 org.apache.cxf.phase.PhaseInterceptorChain
> doDefaultLogging
> WARNUNG: Interceptor for {
> http://camel.apache.org/non-wrapper}PersonService#{http://camel.apache.org/non-wrapper}GetPerson<http://camel.apache.org/non-wrapper%7DPersonService#%7Bhttp://camel.apache.org/non-wrapper%7DGetPerson>has
>  thrown exception, unwinding now
> org.apache.cxf.interceptor.Fault: Could not send Message.
>     at
> org.apache.cxf.interceptor.MessageSenderInterceptor$MessageSenderEndingInterceptor.handleMessage(MessageSenderInterceptor.java:64)
>     at
> org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:243)
>     at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:484)
>     at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:310)
>     at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:262)
>     at org.apache.cxf.frontend.ClientProxy.invokeSync(ClientProxy.java:73)
>     at
> org.apache.cxf.jaxws.JaxWsClientProxy.invoke(JaxWsClientProxy.java:124)
>     at $Proxy51.getPerson(Unknown Source)
>     at
> com.awl.wlsi.example.eai.in.IncommingRouteTest.process(IncommingRouteTest.java:50)
>     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:597)
>     at org.junit.internal.runners.TestMethod.invoke(TestMethod.java:59)
>     at
> org.junit.internal.runners.MethodRoadie.runTestMethod(MethodRoadie.java:98)
>     at org.junit.internal.runners.MethodRoadie$2.run(MethodRoadie.java:79)
>     at
> org.junit.internal.runners.MethodRoadie.runBeforesThenTestThenAfters(MethodRoadie.java:87)
>     at
> org.junit.internal.runners.MethodRoadie.runTest(MethodRoadie.java:77)
>     at org.junit.internal.runners.MethodRoadie.run(MethodRoadie.java:42)
>     at
> org.junit.internal.runners.JUnit4ClassRunner.invokeTestMethod(JUnit4ClassRunner.java:88)
>     at
> org.junit.internal.runners.JUnit4ClassRunner.runMethods(JUnit4ClassRunner.java:51)
>     at
> org.junit.internal.runners.JUnit4ClassRunner$1.run(JUnit4ClassRunner.java:44)
>     at
> org.junit.internal.runners.ClassRoadie.runUnprotected(ClassRoadie.java:27)
>     at
> org.junit.internal.runners.ClassRoadie.runProtected(ClassRoadie.java:37)
>     at
> org.junit.internal.runners.JUnit4ClassRunner.run(JUnit4ClassRunner.java:42)
>     at
> org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:46)
>     at
> org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
>     at
> org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:467)
>     at
> org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:683)
>     at
> org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:390)
>     at
> org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:197)
> Caused by: java.net.SocketTimeoutException: SocketTimeoutException invoking
> http://localhost:8181/Services/PersonService: Read timed out
>     at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native
> Method)
>     at
> sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
>     at
> sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
>     at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
>     at
> org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.mapException(HTTPConduit.java:2011)
>     at
> org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.close(HTTPConduit.java:1992)
>     at
> org.apache.cxf.transport.AbstractConduit.close(AbstractConduit.java:66)
>     at
> org.apache.cxf.transport.http.HTTPConduit.close(HTTPConduit.java:640)
>     at
> org.apache.cxf.interceptor.MessageSenderInterceptor$MessageSenderEndingInterceptor.handleMessage(MessageSenderInterceptor.java:62)
>     ... 30 more
> Caused by: java.net.SocketTimeoutException: Read timed out
>     at java.net.SocketInputStream.socketRead0(Native Method)
>     at java.net.SocketInputStream.read(SocketInputStream.java:129)
>     at java.io.BufferedInputStream.fill(BufferedInputStream.java:218)
>     at java.io.BufferedInputStream.read1(BufferedInputStream.java:258)
>     at java.io.BufferedInputStream.read(BufferedInputStream.java:317)
>     at sun.net.www.http.HttpClient.parseHTTPHeader(HttpClient.java:687)
>     at sun.net.www.http.HttpClient.parseHTTP(HttpClient.java:632)
>     at sun.net.www.http.HttpClient.parseHTTPHeader(HttpClient.java:766)
>     at sun.net.www.http.HttpClient.parseHTTP(HttpClient.java:632)
>     at
> sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1072)
>     at
> java.net.HttpURLConnection.getResponseCode(HttpURLConnection.java:373)
>     at
> org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.handleResponseInternal(HTTPConduit.java:2110)
>     at
> org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.handleResponse(HTTPConduit.java:2087)
>     at
> org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.close(HTTPConduit.java:1985)
>     ... 33 more
> 2010-07-05 16:08:41,497 [main           ] DEBUG
> IncommingRouteTest             - tearDown test
> 2010-07-05 16:08:41,497 [main           ] TRACE
> ServiceHelper                  - Stopping service
> org.apache.camel.impl.producerca...@89949a
>
> Any idea? I could also provide my other code, if it's required...
>
> Thanks in advance,
> Christian
>

Reply via email to