RFR (S): 7185591: jcmd-big-script.sh ERROR: could not find app's Java pid.
Yekaterina Kantserova
yekaterina.kantserova at oracle.com
Wed Jan 15 06:30:03 PST 2014
Staffan,
The webrev with changes can be found here:
http://cr.openjdk.java.net/~ykantser/7185591/webrev.02/
If it looks good, could you please be my sponsor and push the changes?
The patch is attached to this mail.
Thanks,
Katja
On 01/15/2014 11:37 AM, Staffan Larsen wrote:
> Katja,
>
> test/lib/testlibrary/jdk/testlibrary/JcmdBase.java
> The toolArgs parameter should be renamed jcmdArgs.
>
> test/lib/testlibrary/jdk/testlibrary/OutputAnalyzer.java
> 423 public int indexOf(String pattern) {
> You don’t have to convert the List to an array before iterating
> through it. Use lLines.get(i).matches(…) instead.
>
> 470 public int shouldMatchByLine(String from, String to, String
> pattern) {
> This method still reads the lines into an ArrayList (at most) three
> times. It calls asLines() once and indexOf() twice. There could be a
> version of indexOf() that takes a List<String>. Actually indexOf could
> be private and always take a List<String>.
>
>
> Otherwise ok!
>
> /Staffan
>
>
>
> On 15 jan 2014, at 10:13, Yekaterina Kantserova
> <yekaterina.kantserova at oracle.com
> <mailto:yekaterina.kantserova at oracle.com>> wrote:
>
>> Staffan, thank you for pointing out performance and test.src issues!
>>
>> The webrev with fixes can be found here:
>> http://cr.openjdk.java.net/~ykantser/7185591/webrev.01/
>> <http://cr.openjdk.java.net/%7Eykantser/7185591/webrev.01/>
>>
>> Please, see my comments in-lined.
>>
>> Thanks,
>> Katja
>>
>>
>>
>> On 01/13/2014 01:19 PM, Staffan Larsen wrote:
>>> Katja,
>>>
>>> test/lib/testlibrary/jdk/testlibrary/JcmdBase.java
>>> 68 * Run jcmd standalone
>>>
>>> I think you should expand a bit on what “standalone” means here. It
>>> took me a while to understand the difference.
>> Fixed.
>>>
>>> test/lib/testlibrary/jdk/testlibrary/OutputAnalyzer.java
>>> 423 public int indexOf(String pattern) {
>>>
>>> This seems very inefficient. Add all lines to an ArrayList and then
>>> walk through them one at a time to if it matches and then walk
>>> through them once again to find the index of that line.
>>>
>>> 469 public int shouldMatchByLine(String from, String to, String
>>> pattern) {
>>>
>>> Same inefficiency here, but worse because both asLines() and
>>> indexOf() does the same work.
>>>
>>> test/lib/testlibrary/jdk/testlibrary/Utils.java
>>> 65 public static final String TEST_SRC =
>>> System.getProperty("test.src").trim();
>> Fixed.
>>>
>>> I wonder if this really works. Isn’t “test.src” different for
>>> different tests? A property that jtreg changes
>> Yes, it is different.
>>> before invoking each test? Or does this work because each test is
>>> run in a different class loader and Utils.java will exist once in
>>> each class loader?
>> I've learned now it works because jtreg compiles all classes a test
>> needs to a separate location. For example when I run TestJcmdDefaults
>> there will be both TestJcmdDefaults.class and
>> jdk/testlibrary/Utils.class under
>> /tmp/jtreg/jtreg-workdir/classes/sun/tools/jcmd/. The class loader
>> will load Utils for TestJcmdDefaults from
>> /tmp/jtreg/jtreg-workdir/classes/sun/tools/jcmd/.
>>
>> ...
>> [Loaded jdk.testlibrary.Utils from
>> file:/tmp/jtreg/jtreg-workdir/classes/sun/tools/jcmd/]
>> ...
>>
>> But I think it's better to declare TEST_SRC per test precisely
>> because it's different for different tests.
>>
>>>
>>>
>>> /Staffan
>>>
>>>
>>> On 10 jan 2014, at 13:50, Yekaterina Kantserova
>>> <yekaterina.kantserova at oracle.com
>>> <mailto:yekaterina.kantserova at oracle.com>> wrote:
>>>
>>>> Hi,
>>>>
>>>> Could I please have a review of this fix.
>>>>
>>>> In this fix I've rewritten sun/tools/jcmd/* tests in pure java to
>>>> get rid of all intermittent failures depending on for example MKS
>>>> or race conditions (test application has not yet started when the
>>>> test start to run).
>>>>
>>>>
>>>> Webrev:
>>>> http://cr.openjdk.java.net/~ykantser/7185591/webrev.00/
>>>> <http://cr.openjdk.java.net/%7Eykantser/7185591/webrev.00/>
>>>>
>>>> Primal bug:
>>>> https://bugs.openjdk.java.net/browse/JDK-7185591
>>>>
>>>> Similar bugs:
>>>> https://bugs.openjdk.java.net/browse/JDK-6977426
>>>> https://bugs.openjdk.java.net/browse/JDK-8020798
>>>> https://bugs.openjdk.java.net/browse/JDK-7130656 (this one is
>>>> blocked by https://bugs.openjdk.java.net/browse/JDK-8031482 so far)
>>>>
>>>> Thanks,
>>>> Katja
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mail.openjdk.java.net/pipermail/serviceability-dev/attachments/20140115/fe93a007/attachment-0001.html
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 7185591.2.patch
Type: text/x-patch
Size: 37773 bytes
Desc: not available
Url : http://mail.openjdk.java.net/pipermail/serviceability-dev/attachments/20140115/fe93a007/7185591.2-0001.patch
More information about the serviceability-dev
mailing list