[9] RFR of JDK-8085192: java/rmi/activation/Activatable tests fail intermittently due to "Port already in use"
Chris Hegarty
chris.hegarty at oracle.com
Thu Sep 29 15:25:10 UTC 2016
I have asked Hamlin to hold off on this for a day or so. I have an
alternative proposal that eliminates the free port anti-pattern.
-Chris.
> On 29 Sep 2016, at 14:55, Roger Riggs <Roger.Riggs at oracle.com> wrote:
>
> Hi Hamlin,
>
> One more suggested improvement. Instead of two copy/paste copies of the launch with options code,
> it would cleaner to create a separate RMID.launch(String[] options) method that would be passed the extra arguments.
> Use it in forceLogSnapshot.java and ShutdownGracefully.java.
>
> The (current) no-arg version could call the version with args with an empty array(or null).
> There would be only 1 copy of the launch algorithm.
>
> Roger
>
>
>
> On 9/27/2016 11:22 PM, Hamlin Li wrote:
>> Hi Roger,
>>
>> Thank you for reviewing.
>> Please check the new webrev: http://cr.openjdk.java.net/~mli/8085192/webrev.01/, and comments inline below.
>>
>> On 2016/9/27 23:14, Roger Riggs wrote:
>>> Hi Hamlin,
>>>
>>> Marking each test that uses RMID.launch with the bugid does not seem to be meaningful
>>> since the bug is in the support infrastructure of the test and not specific to the test itself.
>>> It would be overkill to try to confirm the bug was fixed by running all those tests.
>>> Putting the bugid on 1 of the tests would be sufficient.
>> Remove all bug ids except of the one in CheckImplClassLoader.java.
>>>
>>> JavaVM.java:
>>>
>>> - 134-138: Why define these private methods if they are not going to be used in outputContains?
>>>
>>> - 185: Its inefficient to convert the byte array to a string for when looking for each string.
>>> It would be cleaner for JavaVM to have public outputString and errorString methods
>>> and check them separately in RMID.
>>> (remove the JavaVM.outputContains method which hides which stream the string appeared in).
>> Fixed.
>>> (It would be a bigger change to change this to use the test library ProcessTools and OutputAnalyzer).
>> Thank you suggestion. Yes, you're right, it will be a little bit complicated to use ProcessTools and OutputAnalyzer in this situation, need to modify these classes, because they will block until process terminates. So I prefer to use current implementation, as it's simple and clear.
>>
>> Thank you
>> -Hamlin
>>>
>>> Roger
>>>
>>>
>>> On 9/27/2016 5:22 AM, Hamlin Li wrote:
>>>> Please review the fix for JDK-8085192. The fix checks whether it fails to launch rmid due to "Port already in use" error, it will launch rmid again and again(20 times at most) until no such issue.
>>>>
>>>> bug:
>>>> https://bugs.openjdk.java.net/browse/JDK-8085192
>>>> webrev:
>>>> http://cr.openjdk.java.net/~mli/8085192/webrev.00/
>>>>
>>>> Thank you
>>>> -Hamlin
>>>
>>
>
More information about the core-libs-dev
mailing list