Hi Sergey,

Thanks for the review. Changes in CRobot.m are removed and added a jtreg test 
case.
Please review the webrev.

http://cr.openjdk.java.net/~mhalder/8165555/webrev.03/ 
<http://cr.openjdk.java.net/~mhalder/8165555/webrev.03/>

Thanks,
Manajit

> On 27-Sep-2016, at 4:15 pm, Sergey Bylokhov <sergey.bylok...@oracle.com> 
> wrote:
> 
> On 27.09.16 11:51, Manajit Halder wrote:
>> Hi Sergey,
>> 
>> Thanks for the comment. “self.javaToMacKeyMap is retaining the reference.
>> Please review the modified code:
>> 
>> http://cr.openjdk.java.net/~mhalder/8165555/webrev.02/ 
>> <http://cr.openjdk.java.net/~mhalder/8165555/webrev.02/>
> 
> The changes in CRobot.m is unnecessary? I also suggest to write the test. 
> Recently I have run all jck tests on my osx system and no of them were 
> crashed, so it seems that the sequence of tests in the bug report are not 
> stable and the new reg test will be welcome to catch such bugs always.
> 
>>> On 23-Sep-2016, at 10:24 pm, Sergey Bylokhov
>>> <sergey.bylok...@oracle.com <mailto:sergey.bylok...@oracle.com> 
>>> <mailto:sergey.bylok...@oracle.com <mailto:sergey.bylok...@oracle.com>>> 
>>> wrote:
>>> 
>>> On 21.09.16 16:01, Manajit Halder wrote:
>>>> Hi Sergey,
>>>> 
>>>> Thanks for the comment.
>>>> 
>>>> Access to "instance" is not broken. The problem is with the dictionary
>>>> variable "javaToMacKeyMap" within the "instance" reference.
>>>> The dictionary is not getting initialised for the second time when
>>>> singleton method is called for the second time. The dictionary is
>>>> getting initialised during the first time singleton method is called and
>>>> hence crash was observed. Tried adding self.javaToMacKeyMap
>>>> but doesn’t solve the problem.
>>> 
>>> I still suggest you to check "self.javaToMacKeyMap" at line 48 this
>>> should call generated setter which will retain the reference.
>>> 
>>>> 
>>>> I propose two solutions to this problem:
>>>> 
>>>> Solution 1:
>>>> Reinitialise the dictionary every-time the singleton method is called.
>>>> Webrev:
>>>> http://cr.openjdk.java.net/~mhalder/8165555/webrev.01/ 
>>>> <http://cr.openjdk.java.net/~mhalder/8165555/webrev.01/>
>>>> 
>>>> Drawback:
>>>> dictionary is initialised multiple times (every time singleton method is
>>>> called).
>>>> 
>>>> Solution 2:
>>>> Make the dictionary static.
>>>> Drawback:
>>>> Still dictionary need to be initialised multiple times.
>>>> No singleton method, just two static methods, one method to initialise
>>>> the dictionary and other to get the key form the dictionary.
>>>> Webrev:
>>>> Not prepared. Will be prepared if second solution accepted.
>>>> 
>>>> Test case:
>>>> There are no test cases. Problem can be reproduced by
>>>> executing following JCK test:
>>>> java -jar JCK-runtime-9/lib/jtjck.jar -mode:single -k:interactive
>>>> "api/java_awt/interactive/event/EventTests.html#EventTest0019
>>>> api/java_awt/interactive/event/EventTests.html#EventTest0013”
>>>> 
>>>> Thanks,
>>>> Manajit
>>>> 
>>>>> On 20-Sep-2016, at 4:42 am, Sergey Bylokhov
>>>>> <sergey.bylok...@oracle.com <mailto:sergey.bylok...@oracle.com>
>>>>> <mailto:sergey.bylok...@oracle.com <mailto:sergey.bylok...@oracle.com>> 
>>>>> <mailto:sergey.bylok...@oracle.com <mailto:sergey.bylok...@oracle.com>>>
>>>>> wrote:
>>>>> 
>>>>> Hi, Manajit.
>>>>> It seems that after the fix "(CRobotKeyCodeMapping *) sharedInstance"
>>>>> returns the new object per invocation, so it is not really
>>>>> sharedInstance. I am not sure I understand what is wrong in the
>>>>> current code, from the my point of view this is a correct singleton.
>>>>> It it true that the problem is in access to broken "instance" and not
>>>>> to "javaToMacKeyMap" inside the "instance"? If not then
>>>>> "javaToMacKeyMap" should be changed to "self.javaToMacKeyMap".
>>>>> Do you have a test case to reproduce the bug?
>>>>> 
>>>>> On 19.09.16 15:26, Manajit Halder wrote:
>>>>>> Hi All,
>>>>>> 
>>>>>> Kindly review the fix for JDK9.
>>>>>> 
>>>>>> Bug:
>>>>>> https://bugs.openjdk.java.net/browse/JDK-8165555
>>>>>> 
>>>>>> Webrev:
>>>>>> http://cr.openjdk.java.net/~mhalder/8165555/webrev.00/
>>>>>> 
>>>>>> Issue:
>>>>>> [macosx] VM crashes on second attempt to execute JCK interactive tests
>>>>>> that use Robot (single JVM, agent)
>>>>>> 
>>>>>> Cause:
>>>>>> While executing the JCK test for the second time the robot was getting
>>>>>> initialised once again and old instance of CRobotKeyCodeMapping was not
>>>>>> available.
>>>>>> Crash was observed while trying to access invalid instance of
>>>>>> CRobotKeyCodeMapping.
>>>>>> 
>>>>>> Fix:
>>>>>> A new instance of CRobotKeyCodeMapping is created when robot is
>>>>>> initialised.
>>>>>> 
>>>>>> Regards,
>>>>>> Manajit
>>>>> 
>>>>> 
>>>>> --
>>>>> Best regards, Sergey.
>>>> 
>>> 
>>> 
>>> --
>>> Best regards, Sergey.
>> 
> 
> 
> -- 
> Best regards, Sergey.

Reply via email to