jmx-dev RFR 8034177: sun/management/jmxremote/startstop/JMXStartStopTest.java should report port in use

shanliang shanliang.jiang at oracle.com
Fri Feb 14 07:02:51 PST 2014


Jaroslav Bachorik wrote:
> On 14.2.2014 15:54, Daniel Fuchs wrote:
>>
>> BTW - it occurs to me that it doesn't really matters which
>> process opens the ServerSocket - does it? So you might as
>> well create the server socket before calling jcmd() -  can't
>> you?
>
> Yes, actually, the socket server could be created at the beginning of 
> the test. That would resolve all the port number passing.
and no need to create a thread to listen on the server socket, like 
JMXStartStopDoSomething.serverThread.

Shanliang
>
> -JB-
>
>>
>> -- daniel
>>
>> On 2/14/14 3:43 PM, Daniel Fuchs wrote:
>>> Hi Jaroslav,
>>>
>>> I agree with the idea, but the following logic looks suspect:
>>>
>>>   378         for(String arg : args) {
>>>   379             if (arg.startsWith("-")) {
>>>   380                 pbArgs.add(0, arg); // VM arg
>>>   381             } else {
>>>   382                 pbArgs.add(arg); // application arg
>>>   383             }
>>>   384         }
>>>
>>> it will inverse the orders of VM args in the sub process, and
>>> will have unpredictable results if any of those args accept
>>> parameters - such as '-cp <classpath>' which would result in
>>> <classpath> being taken as an application arg.
>>>
>>> It's difficult to say whether such a situation can or can't happen,
>>> but I suspect it would be safer to simply look for the "allocate_port"
>>> string or pass the "allocate_port" as a system property
>>> (e.g -Dallocate.port=true) - which would remove the need for that
>>> loop...
>>>
>>> best regards,
>>>
>>> -- daniel
>>>
>>> On 2/14/14 2:39 PM, Jaroslav Bachorik wrote:
>>>> Please, review this test change.
>>>>
>>>> Issue : https://bugs.openjdk.java.net/browse/JDK-8034177
>>>> Webrev: http://cr.openjdk.java.net/~jbachorik/8034177/webrev.00
>>>>
>>>> The test is currently using a well-known SSH port 22 to make sure 
>>>> it is
>>>> not possible to start the management agent on this port. However, this
>>>> may fail when SSH server is not running on a test machine.
>>>>
>>>> The fix adds the possibility to to start up a dummy socket server 
>>>> in the
>>>> tested application and use the port from that socket server to make 
>>>> sure
>>>> that the management agent refuses to start on that port.
>>>>
>>>> Thanks,
>>>>
>>>> -JB-
>>>
>>
>



More information about the jmx-dev mailing list