RFR 8196324: Update FilterMatch & FilterNoMatch to use TestScaffold instead of JDIScaffold

Paru Somashekar parvathi.somashekar at oracle.com
Thu Feb 15 03:01:12 UTC 2018


Sound great, thanks Serguei.

thanks,
Paru.

On 2/14/18, 4:50 PM, serguei.spitsyn at oracle.com wrote:
> Paru,
>
> Thank you for the update.
>
> Just noticed one more thing in both files - extra space before the 
> parameter:
> +            addListener (this);
>
> Otherwise, it looks good.
> No need in another webrev.
>
> Thanks,
> Serguei
>
>
>
> On 2/14/18 16:39, Paru Somashekar wrote:
>> Thanks Serguei,  made the changes you have suggested,
>>
>> and the latest review is at:
>> http://cr.openjdk.java.net/~psomashe/8196324/webrev.02/ 
>> <http://cr.openjdk.java.net/%7Epsomashe/8196324/webrev.02/>
>>
>> thanks,
>> Paru.
>>
>>
>> On 2/14/18, 2:30 PM, serguei.spitsyn at oracle.com 
>> <mailto:serguei.spitsyn at oracle.com> wrote:
>>> Hi Paru,
>>>
>>> Thank you for the update!
>>>
>>> Could you, please, rearrange a couple of more places in both files?
>>>
>>>    66         BreakpointEvent bpe = startToMain("HelloWorld");
>>>    67         ReferenceType referenceType = (ClassType)bpe.location().declaringType();
>>>    68
>>>    69         mainThread = bpe.thread();
>>>    70         // VM has started, but hasn't started running the test program yet.
>>>    71         EventRequestManager requestManager = vm().eventRequestManager();
>>>    72
>>>    73         Location loc = findLocation(referenceType, 3);
>>>    74
>>>    75         BreakpointRequest bpRequest = requestManager.createBreakpointRequest(loc);
>>>
>>>   I'd suggest to move the lines 68,69 after the line 75.
>>>   Also, the empty lines 72, 74 are not needed.
>>>   I'm not sure, the line 70 with the comment is placed correctly or 
>>> needed at all.
>>>
>>>   This line needs an update of "request1":
>>>   107         //request1.addClassFilter("x");
>>>
>>>   Extra space before '!' and missed space before '{' :
>>>   115         if ( !stepCompleted){
>>>
>>>
>>>   Let's simplify/unify the tracing lines below further:
>>>
>>>   130         System.out.println("Agent: StepEvent: line#=" + event.location().lineNumber()
>>>   131                 + " event=" + event);
>>>   . . .
>>>   141         System.out.println("Agent: BreakpointEvent " +
>>>   142                 " at " + locStr + " in thread: " + thread);
>>>
>>>   Something like this would be better:
>>>   130         System.out.println("StepEvent at " + event.location());
>>>   . . .
>>>   141         System.out.println("BreakpointEvent at " +  event.location());
>>>
>>>
>>>   The lines 139 and 140 can be removed:
>>>   139         ThreadReference thread = event.thread();
>>>   140         String locStr = "" + event.location();
>>>
>>> Thanks,
>>> Serguei
>>>
>>>
>>>
>>> On 2/13/18 23:01, Paru Somashekar wrote:
>>>> Hi Serguei,
>>>>
>>>> Thanks very much for the review and I have made all the changes 
>>>> incorporating your feedback.
>>>>
>>>> New Webrev at 
>>>> :http://cr.openjdk.java.net/~psomashe/8196324/webrev.01/ 
>>>> <http://cr.openjdk.java.net/%7Epsomashe/8196324/webrev.01/>
>>>>
>>>> thanks,
>>>> Paru.
>>>>
>>>> On 2/13/18, 2:02 PM, serguei.spitsyn at oracle.com 
>>>> <mailto:serguei.spitsyn at oracle.com> wrote:
>>>>> Hi Paru,
>>>>>
>>>>> It looks good in general but I'd like to ask for some cleanup.
>>>>>
>>>>> I tell just about the first test (FilterMatch) but the other one 
>>>>> needs the same.
>>>>>
>>>>>   132     // This gets called if all filters match.
>>>>>   133     public void stepCompleted(StepEvent event) {
>>>>>   134         listenCalled = true;
>>>>>   135         System.out.println("listen: line#=" + event.location().lineNumber()
>>>>>   136                 + " event=" + event);
>>>>>   137         // disable the step and then run to completion
>>>>>   138         StepRequest str= (StepRequest)event.request();
>>>>>   139         str.disable();
>>>>>   140         eventSet.resume();
>>>>>   141     }
>>>>>   I'd suggest to replace "listen:" above with "Agent: StepEvent:" 
>>>>> to make
>>>>>  it more consistent with similar tracing in the 
>>>>> breakpointReached() below.
>>>>>
>>>>>   143     public void breakpointReached(BreakpointEvent event) {
>>>>>   144         ThreadReference thread = ((BreakpointEvent) event).thread();
>>>>>   145         String locStr = "" + ((BreakpointEvent) event).location();
>>>>>   146         System.out.println("Agent: BreakpointEvent #" +
>>>>>   147                 " at " + locStr + " in thread: " + thread);
>>>>>   148         // The bkpt was hit; disable it.
>>>>>   149         request.disable();
>>>>>   150     }
>>>>>   The casts to BreakpointEvent at lines 144, 145 are not needed
>>>>>   as the "event" is already of this type.
>>>>>   Unneeded sign '#' at the line 146.
>>>>>   Also, I'm suggesting to disable the "request" the same way
>>>>>   as it is done in the stepCompleted():
>>>>>            BreakpointRequest bpr= (BreakpointRequest)event.request();
>>>>>            bpr.disable();
>>>>>
>>>>>    It will help to make the "request" local in the runTests().
>>>>> Unneeded empty lines: 52, 54:
>>>>>    51     EventSet eventSet = null;
>>>>>    52
>>>>>    53     static boolean listenCalled;
>>>>>    54
>>>>>    55     BreakpointRequest request;
>>>>>
>>>>> The listenCalled needs to be renamed to stepCompleted.
>>>>> There is no big need for it to be static as it is similar to the 
>>>>> eventSet.
>>>>> It is better to initialize it with false.
>>>>> Then this line can be removed:
>>>>>   114         listenCalled = false;
>>>>>
>>>>> I'd suggest to rename the variables "request" and "request1"
>>>>> to "bpRequest" and "stepRequest" and make the 'bpRequest' to be local
>>>>> in the runTests() as it is the only place where it has to be used.
>>>>>
>>>>>
>>>>> Thanks,
>>>>> Serguei
>>>>>
>>>>>
>>>>> On 2/12/18 11:25, Paru Somashekar wrote:
>>>>>> Hi,
>>>>>>
>>>>>> Please review fix for JDK-8196324
>>>>>>
>>>>>> The includes the following changes:
>>>>>>
>>>>>> * Use startToMain method of TestScaffold that automatically calls 
>>>>>> connect() and waitForVMStart()
>>>>>> * Since TestScaffold extends TargetAdapter, it now overrides 
>>>>>> event callbacks directly in the test class rather than implement 
>>>>>> an anonymous inner class.
>>>>>> * Breakpoint handling is done in breakpointReached callback 
>>>>>> instead of waitForRequestedEvent and subsequently removing it.
>>>>>>
>>>>>> Bug : https://bugs.openjdk.java.net/browse/JDK-8196324
>>>>>> Review : http://cr.openjdk.java.net/~psomashe/8196324/webrev/ 
>>>>>> <http://cr.openjdk.java.net/%7Epsomashe/8196324/webrev/> 
>>>>>> <http://cr.openjdk.java.net/%7Epsomashe/8196324/webrev/>
>>>>>>
>>>>>> thanks,
>>>>>> Paru.
>>>>>
>>>>
>>>
>>
>

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.openjdk.java.net/pipermail/serviceability-dev/attachments/20180214/0c929c27/attachment-0001.html>


More information about the serviceability-dev mailing list