Taras, *The only* correct way to take really free port is:
1. Chose random number between 49152 and 65535 2. Open socket if socket fails - repeat step 1 if socket OK - return *socket* If you can't keep the socket open (e.g. you have to pass port number as property value) you shouldn't do any pre-check as it has no value - as as soon as you close socket someone can take the port. So just choose a random number within the range above and let networking code opening socket to handle port conflict. -Dmitry On 2013-11-20 15:54, taras ledkov wrote: > Hi Everyone, > > I am working on bug https://bugs.openjdk.java.net/browse/JDK-7195249. > > There are two webrevs: > Webrev for jdk part: > http://cr.openjdk.java.net/~anazarov/7195249/jdk/webrev.00/ > > Webrev for hs part: > http://cr.openjdk.java.net/~anazarov/7195249/hs/webrev.00/ > > Please take a look at some notes: > - After discussing with Yekaterina Kantserova & Jaroslav Bachorik some > shell tests have been converted to java based tests > > - PasswordFilePermissionTest & SSLConfigFilePermissionTest tests looked > very similar, so a common parent class was created for them: > AbstractFilePermissionTest > > - What was called RmiRegistrySslTest.java I've renamed to > RmiRegistrySslTestApp.java. The java code to replace old shell script > RmiRegistrySslTest.sh is called RmiRegistrySslTest.java, hence the huge > diff. > > - The new RmiRegistrySslTest.java has some lines similar to the > AbstractFilePermissionTest.java, I nevertheless decided to not > complicate the code further and leave it as is. Please let me know if > this is somehow not acceptable > > - com/oracle/java/testlibrary/Utils.java that is added to hotspot > repository is taken from this patch: > http://cr.openjdk.java.net/~ykantser/8023138/webrev.00/test/lib/testlibrary/jdk/testlibrary/Utils.java.sdiff.html > > > - These tests will need additional changes when test library process > tools will support command line options inheritance > (http://mail.openjdk.java.net/pipermail/serviceability-dev/2013-November/013235.html) > > -- Dmitry Samersoff Oracle Java development team, Saint Petersburg, Russia * I would love to change the world, but they won't give me the sources.