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}PersonServicefrom 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}GetPersonhas
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