Hi Alan, I believe to have found and fixed what was causing the failures on Windows. Here's the webrev https://googledrive.com/host/0B2CI6Ih--1t5bVVwbVlBRmpVMDg/5/index.html.
I modified java.net.SocksSocketImpl#readSocksReply(..) so that it doesn't give up on reading after the 3rd attempt, but instead keeps on trying until a timeout occurs or end of stream is reached (much like DataInputStream#readFully(..)). -Dimitar On Sat, Jan 11, 2014 at 2:58 PM, Dimitar Mavrodiev <dmavrod...@gmail.com>wrote: > Hi Alan, > > I finally had the chance to put together a windows build environment(Win7) > and I'm now seeing the same error crop up every once in a while. > > To isolate the problem I replaced the socks server > (jdk/test/java/net/Socks/SocksServer.java) I've been using in my test with > JSocks and the test now runs successfully (I ran it at least a dozen of > times). The culprit for these intermittent failures on Windows seems to be > jdk/test/java/net/Socks/SocksServer.java, I haven't exactly located the > problem yet. > > -Dimitar > > > On Wed, Jan 8, 2014 at 12:08 PM, Dimitar Mavrodiev > <dmavrod...@gmail.com>wrote: > >> Unfortunately I don't have a Windows environment. I'll try to setup one >> and look into this. >> >> -Dimitar >> >> >> On Tue, Jan 7, 2014 at 11:36 PM, Alan Bateman <alan.bate...@oracle.com>wrote: >> >>> On 07/01/2014 12:29, Dimitar Mavrodiev wrote: >>> >>>> Hi Alan, >>>> >>>> I've fixed that. Here's the webrev https://googledrive.com/host/ >>>> 0B2CI6Ih--1t5bVVwbVlBRmpVMDg/4/index.html. >>>> >>>> Thanks for the update, it seems to be okay now for IPv6 disabled case. >>> >>> One thing I do see though is that the test fails intermittently on >>> Windows (in my case Windows Server 2012) when IPv6 is enabled. The typical >>> output is attached. I haven't dug into yet. >>> >>> -Alan >>> >>> [TestNG] Running: >>> java/net/Socks/SocksIPv6Test.java >>> >>> config SocksIPv6Test.setUp(): success >>> test SocksIPv6Test.testSocksOverIPv6(): failure >>> java.net.SocketException: Reply from SOCKS server has bad length >>> at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:505) >>> at java.net.Socket.connect(Socket.java:585) >>> at java.net.Socket.connect(Socket.java:534) >>> at sun.net.NetworkClient.doConnect(NetworkClient.java:180) >>> at sun.net.www.http.HttpClient.openServer(HttpClient.java:432) >>> at sun.net.www.http.HttpClient.openServer(HttpClient.java:527) >>> at sun.net.www.http.HttpClient.<init>(HttpClient.java:211) >>> at sun.net.www.http.HttpClient.New(HttpClient.java:308) >>> at sun.net.www.http.HttpClient.New(HttpClient.java:326) >>> at sun.net.www.protocol.http.HttpURLConnection.getNewHttpClient( >>> HttpURLConnection.java:1122) >>> at sun.net.www.protocol.http.HttpURLConnection.plainConnect0( >>> HttpURLConnection.java:1101) >>> at sun.net.www.protocol.http.HttpURLConnection$6.run( >>> HttpURLConnection.java:942) >>> at sun.net.www.protocol.http.HttpURLConnection$6.run( >>> HttpURLConnection.java:940) >>> at java.security.AccessController.doPrivileged(Native Method) >>> at java.security.AccessController.doPrivileged( >>> AccessController.java:713) >>> at sun.net.www.protocol.http.HttpURLConnection.plainConnect( >>> HttpURLConnection.java:939) >>> at sun.net.www.protocol.http.HttpURLConnection.connect( >>> HttpURLConnection.java:886) >>> at sun.net.www.protocol.http.HttpURLConnection.getInputStream0( >>> HttpURLConnection.java:1466) >>> at sun.net.www.protocol.http.HttpURLConnection.access$200( >>> HttpURLConnection.java:90) >>> at sun.net.www.protocol.http.HttpURLConnection$9.run( >>> HttpURLConnection.java:1386) >>> at sun.net.www.protocol.http.HttpURLConnection$9.run( >>> HttpURLConnection.java:1384) >>> at java.security.AccessController.doPrivileged(Native Method) >>> at java.security.AccessController.doPrivileged( >>> AccessController.java:713) >>> at sun.net.www.protocol.http.HttpURLConnection.getInputStream( >>> HttpURLConnection.java:1383) >>> at SocksIPv6Test.testSocksOverIPv6(SocksIPv6Test.java:133) >>> >>> >> >