Hello,
recently I came to subj issue, which caused problems on Windows XP
(jdk1.5.0_10, jdk1.5.0_11).
When run WSpex-as tests with FI enabled for echoInteger - after some
time period client throws Exception (attached).
The same situation with echoVoid. For bigger messages - tests passed.
After client failure even server (on the same machine) stops accepting
requests approx. for 1 minute.
When I changed FastInfoset XMLStreamReader.close() to call close()
method of underlying inputstream - tests started to pass.
But this change could cause problems, as I saw for example SJSXP doesn't
close underlying inputstream.
So it seems on client side we don't release HTTP connection resources,
and for some edge cases it causes problems.
On server side there is some TransportBackChannel, may be it makes sense
to use something similar for client side and let transport know when it
could release resources?
Thanks.
WBR,
Alexey.
C:\Projects\WSpex>ant -Dconfig=configs/jaxws-tcp-on-integer.xml run
Buildfile: build.xml
run:
[java] Reading configuration file 'configs/jaxws-tcp-on-integer.xml' ...
[java] Estimated warmup time + run time is 4 minutes 30 seconds
[java] TestServiceFIDriver-as using 1 thread(s) on 1 cpu(s)
[java] Warmup 1: echoInteger
[java] main prepare()
[java] main warmup()
[java] com.sun.xml.ws.client.ClientTransportException: HTTP transport error: java.net.BindException: Address already in use: connect
[java] at com.sun.xml.ws.transport.http.client.HttpClientTransport.getOutput(HttpClientTransport.java:122)
[java] at com.sun.xml.ws.transport.http.client.HttpTransportPipe.process(HttpTransportPipe.java:128)
[java] at com.sun.xml.xwss.XWSSClientPipe.process(XWSSClientPipe.java:104)
[java] at com.sun.xml.ws.api.pipe.helper.PipeAdapter.processRequest(PipeAdapter.java:79)
[java] at com.sun.xml.ws.api.pipe.Fiber.__doRun(Fiber.java:559)
[java] at com.sun.xml.ws.api.pipe.Fiber._doRun(Fiber.java:518)
[java] at com.sun.xml.ws.api.pipe.Fiber.doRun(Fiber.java:503)
[java] at com.sun.xml.ws.api.pipe.Fiber.runSync(Fiber.java:400)
[java] at com.sun.xml.ws.client.Stub.process(Stub.java:235)
[java] at com.sun.xml.ws.client.sei.SEIStub.doProcess(SEIStub.java:120)
[java] at com.sun.xml.ws.client.sei.SyncMethodHandler.invoke(SyncMethodHandler.java:226)
[java] at com.sun.xml.ws.client.sei.SyncMethodHandler.invoke(SyncMethodHandler.java:206)
[java] at com.sun.xml.ws.client.sei.SEIStub.invoke(SEIStub.java:103)
[java] at $Proxy45.echoInteger(Unknown Source)
[java] at com.sun.wspex.TestServiceBaseDriver.run(TestServiceBaseDriver.java:236)
[java] at com.sun.japex.JapexDriverBase.warmup(JapexDriverBase.java:345)
[java] at com.sun.japex.JapexDriverBase.warmup(JapexDriverBase.java:140)
[java] at com.sun.japex.JapexDriverBase.call(JapexDriverBase.java:270)
[java] at com.sun.japex.Engine.forEachTestCase(Engine.java:395)
[java] at com.sun.japex.Engine.forEachRun(Engine.java:285)
[java] at com.sun.japex.Engine.forEachDriver(Engine.java:221)
[java] at com.sun.japex.Engine.start(Engine.java:146)
[java] at com.sun.japex.Japex.run(Japex.java:150)
[java] at com.sun.japex.Japex.main(Japex.java:123)
[java] Caused by: java.net.BindException: Address already in use: connect
[java] at java.net.PlainSocketImpl.socketConnect(Native Method)
[java] at java.net.PlainSocketImpl.doConnect(PlainSocketImpl.java:333)
[java] at java.net.PlainSocketImpl.connectToAddress(PlainSocketImpl.java:195)
[java] at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:182)
[java] at java.net.Socket.connect(Socket.java:519)
[java] at java.net.Socket.connect(Socket.java:469)
[java] at sun.net.NetworkClient.doConnect(NetworkClient.java:157)
[java] at sun.net.www.http.HttpClient.openServer(HttpClient.java:382)
[java] at sun.net.www.http.HttpClient.openServer(HttpClient.java:509)
[java] at sun.net.www.http.HttpClient.<init>(HttpClient.java:231)
[java] at sun.net.www.http.HttpClient.New(HttpClient.java:304)
[java] at sun.net.www.http.HttpClient.New(HttpClient.java:316)
[java] at sun.net.www.protocol.http.HttpURLConnection.getNewHttpClient(HttpURLConnection.java:817)
[java] at sun.net.www.protocol.http.HttpURLConnection.plainConnect(HttpURLConnection.java:796)
[java] at sun.net.www.protocol.http.HttpURLConnection.connect(HttpURLConnection.java:694)
[java] at sun.net.www.protocol.http.HttpURLConnection.getOutputStream(HttpURLConnection.java:861)
[java] at com.sun.xml.ws.transport.http.client.HttpClientTransport.getOutput(HttpClientTransport.java:110)
[java] ... 23 more
[java] NaN
[java] aritmean,NaN,geommean,NaN,harmmean,NaN
[java] Run 1: echoInteger
[java] main prepare()
[java] main warmup()
[java] com.sun.xml.ws.client.ClientTransportException: HTTP transport error: java.net.BindException: Address already in use: connect
[java] at com.sun.xml.ws.transport.http.client.HttpClientTransport.getOutput(HttpClientTransport.java:122)
[java] at com.sun.xml.ws.transport.http.client.HttpTransportPipe.process(HttpTransportPipe.java:128)
[java] at com.sun.xml.xwss.XWSSClientPipe.process(XWSSClientPipe.java:104)
[java] at com.sun.xml.ws.api.pipe.helper.PipeAdapter.processRequest(PipeAdapter.java:79)
[java] at com.sun.xml.ws.api.pipe.Fiber.__doRun(Fiber.java:559)
[java] at com.sun.xml.ws.api.pipe.Fiber._doRun(Fiber.java:518)
[java] at com.sun.xml.ws.api.pipe.Fiber.doRun(Fiber.java:503)
[java] at com.sun.xml.ws.api.pipe.Fiber.runSync(Fiber.java:400)
[java] at com.sun.xml.ws.client.Stub.process(Stub.java:235)
[java] at com.sun.xml.ws.client.sei.SEIStub.doProcess(SEIStub.java:120)
[java] at com.sun.xml.ws.client.sei.SyncMethodHandler.invoke(SyncMethodHandler.java:226)
[java] at com.sun.xml.ws.client.sei.SyncMethodHandler.invoke(SyncMethodHandler.java:206)
[java] at com.sun.xml.ws.client.sei.SEIStub.invoke(SEIStub.java:103)
[java] at $Proxy45.echoInteger(Unknown Source)
[java] at com.sun.wspex.TestServiceBaseDriver.run(TestServiceBaseDriver.java:236)
[java] at com.sun.japex.JapexDriverBase.warmup(JapexDriverBase.java:345)
[java] at com.sun.japex.JapexDriverBase.warmup(JapexDriverBase.java:140)
[java] at com.sun.japex.JapexDriverBase.call(JapexDriverBase.java:270)
[java] at com.sun.japex.Engine.forEachTestCase(Engine.java:395)
[java] at com.sun.japex.Engine.forEachRun(Engine.java:285)
[java] at com.sun.japex.Engine.forEachDriver(Engine.java:221)
[java] at com.sun.japex.Engine.start(Engine.java:146)
[java] at com.sun.japex.Japex.run(Japex.java:150)
[java] at com.sun.japex.Japex.main(Japex.java:123)
[java] Caused by: java.net.BindException: Address already in use: connect
[java] at java.net.PlainSocketImpl.socketConnect(Native Method)
[java] at java.net.PlainSocketImpl.doConnect(PlainSocketImpl.java:333)
[java] at java.net.PlainSocketImpl.connectToAddress(PlainSocketImpl.java:195)
[java] at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:182)
[java] at java.net.Socket.connect(Socket.java:519)
[java] at java.net.Socket.connect(Socket.java:469)
[java] at sun.net.NetworkClient.doConnect(NetworkClient.java:157)
[java] at sun.net.www.http.HttpClient.openServer(HttpClient.java:382)
[java] at sun.net.www.http.HttpClient.openServer(HttpClient.java:509)
[java] at sun.net.www.http.HttpClient.<init>(HttpClient.java:231)
[java] at sun.net.www.http.HttpClient.New(HttpClient.java:304)
[java] at sun.net.www.http.HttpClient.New(HttpClient.java:316)
[java] at sun.net.www.protocol.http.HttpURLConnection.getNewHttpClient(HttpURLConnection.java:817)
[java] at sun.net.www.protocol.http.HttpURLConnection.plainConnect(HttpURLConnection.java:796)
[java] at sun.net.www.protocol.http.HttpURLConnection.connect(HttpURLConnection.java:694)
[java] at sun.net.www.protocol.http.HttpURLConnection.getOutputStream(HttpURLConnection.java:861)
[java] at com.sun.xml.ws.transport.http.client.HttpClientTransport.getOutput(HttpClientTransport.java:110)
[java] ... 23 more
[java] com.sun.xml.ws.client.ClientTransportException: HTTP transport error: java.net.BindException: Address already in use: connect
[java] at com.sun.xml.ws.transport.http.client.HttpClientTransport.getOutput(HttpClientTransport.java:122)
[java] at com.sun.xml.ws.transport.http.client.HttpTransportPipe.process(HttpTransportPipe.java:128)
[java] at com.sun.xml.xwss.XWSSClientPipe.process(XWSSClientPipe.java:104)
[java] NaN
[java] aritmean,NaN,geommean,NaN,harmmean,NaN
[java] Run 2: echoInteger
[java] main prepare()
[java] main warmup()
[java] at com.sun.xml.ws.api.pipe.helper.PipeAdapter.processRequest(PipeAdapter.java:79)
[java] at com.sun.xml.ws.api.pipe.Fiber.__doRun(Fiber.java:559)
[java] at com.sun.xml.ws.api.pipe.Fiber._doRun(Fiber.java:518)
[java] at com.sun.xml.ws.api.pipe.Fiber.doRun(Fiber.java:503)
[java] at com.sun.xml.ws.api.pipe.Fiber.runSync(Fiber.java:400)
[java] at com.sun.xml.ws.client.Stub.process(Stub.java:235)
[java] at com.sun.xml.ws.client.sei.SEIStub.doProcess(SEIStub.java:120)
[java] at com.sun.xml.ws.client.sei.SyncMethodHandler.invoke(SyncMethodHandler.java:226)
[java] at com.sun.xml.ws.client.sei.SyncMethodHandler.invoke(SyncMethodHandler.java:206)
[java] at com.sun.xml.ws.client.sei.SEIStub.invoke(SEIStub.java:103)
[java] at $Proxy45.echoInteger(Unknown Source)
[java] at com.sun.wspex.TestServiceBaseDriver.run(TestServiceBaseDriver.java:236)
[java] at com.sun.japex.JapexDriverBase.warmup(JapexDriverBase.java:345)
[java] at com.sun.japex.JapexDriverBase.warmup(JapexDriverBase.java:140)
[java] at com.sun.japex.JapexDriverBase.call(JapexDriverBase.java:270)
[java] at com.sun.japex.Engine.forEachTestCase(Engine.java:395)
[java] at com.sun.japex.Engine.forEachRun(Engine.java:285)
[java] at com.sun.japex.Engine.forEachDriver(Engine.java:221)
[java] at com.sun.japex.Engine.start(Engine.java:146)
[java] at com.sun.japex.Japex.run(Japex.java:150)
[java] at com.sun.japex.Japex.main(Japex.java:123)
[java] Caused by: java.net.BindException: Address already in use: connect
[java] at java.net.PlainSocketImpl.socketConnect(Native Method)
[java] at java.net.PlainSocketImpl.doConnect(PlainSocketImpl.java:333)
[java] at java.net.PlainSocketImpl.connectToAddress(PlainSocketImpl.java:195)
[java] at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:182)
[java] at java.net.Socket.connect(Socket.java:519)
[java] at java.net.Socket.connect(Socket.java:469)
[java] at sun.net.NetworkClient.doConnect(NetworkClient.java:157)
[java] at sun.net.www.http.HttpClient.openServer(HttpClient.java:382)
[java] at sun.net.www.http.HttpClient.openServer(HttpClient.java:509)
[java] at sun.net.www.http.HttpClient.<init>(HttpClient.java:231)
[java] at sun.net.www.http.HttpClient.New(HttpClient.java:304)
[java] at sun.net.www.http.HttpClient.New(HttpClient.java:316)
[java] at sun.net.www.protocol.http.HttpURLConnection.getNewHttpClient(HttpURLConnection.java:817)
[java] at sun.net.www.protocol.http.HttpURLConnection.plainConnect(HttpURLConnection.java:796)
[java] at sun.net.www.protocol.http.HttpURLConnection.connect(HttpURLConnection.java:694)
[java] at sun.net.www.protocol.http.HttpURLConnection.getOutputStream(HttpURLConnection.java:861)
[java] at com.sun.xml.ws.transport.http.client.HttpClientTransport.getOutput(HttpClientTransport.java:110)
[java] ... 23 more
[java] NaN
[java] aritmean,NaN,geommean,NaN,harmmean,NaN
[java] Exception in thread "main" java.lang.NullPointerException
[java] at sun.misc.FloatingDecimal.readJavaFormatString(FloatingDecimal.java:991)
[java] at java.lang.Double.parseDouble(Double.java:482)
[java] at com.sun.japex.ParamsImpl.getDoubleParam(ParamsImpl.java:269)
[java] at com.sun.japex.DriverImpl.computeMeans(DriverImpl.java:144)
[java] at com.sun.japex.DriverImpl.getAggregateTestCases(DriverImpl.java:278)
[java] at com.sun.japex.Engine.forEachRun(Engine.java:304)
[java] at com.sun.japex.Engine.forEachDriver(Engine.java:221)
[java] at com.sun.japex.Engine.start(Engine.java:146)
[java] at com.sun.japex.Japex.run(Japex.java:150)
[java] at com.sun.japex.Japex.main(Japex.java:123)
[java] Avgs:
BUILD SUCCESSFUL
Total time: 11 seconds