Oleksiy Stashok wrote:
> 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.
StreamSOAPCodec always creates TidyXMLStreamReader. So the close()
method on Tidy, should close the stream. Where do you see that it is not
getting closed ? Infact closing of the inputstream is a requirement for
keep-alive. We also verified that keep-alive is working.
Jitu
> 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
>
>
> ------------------------------------------------------------------------
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: dev-unsubscribe_at_jax-ws.dev.java.net
> For additional commands, e-mail: dev-help_at_jax-ws.dev.java.net
>