Hello, AWT Team.

This is a reminder. Could I please get a second review on this fix.

With best regards. Petr.

On Aug 21, 2013, at 6:37 PM, Petr Pchelko wrote:

> Hello, Anthony.
> 
> I've updated the fix according to your comments:
> http://cr.openjdk.java.net/~pchelko/8015455/webrev.02/
> 
>> Also, I suggest to run some DnD regression tests to ensure the fix is safe.
> I've run all dnd regression tests on Windows and Mac. No new failures after 
> the fix.
> 
> With best regards. Petr.
> 
> On Aug 21, 2013, at 4:44 PM, Anthony Petrov wrote:
> 
>> Hi Petr,
>> 
>> The new fix looks much better. Thanks!
>> 
>> I'm only concerned with the synchronization scheme. Since the DnD handlers 
>> are synchronized methods, the new boolean flag should only be accessed under 
>> a synchronized(this){} block in removeNotify() for consistency and thread 
>> safety.
>> 
>> Are you sure the cleanup() method needs to be made package-private? I 
>> believe it should be accessible from dragExit() even if it stays private 
>> because the methods belong to the same outer class.
>> 
>> Also, I suggest to run some DnD regression tests to ensure the fix is safe.
>> 
>> --
>> best regards,
>> Anthony
>> 
>> On 08/21/2013 04:11 PM, Petr Pchelko wrote:
>>> Hello Anthony, Alexandr.
>>> 
>>> Thank you for the reviews.
>>> 
>>> Please hava a look on the new version of this fix:
>>> http://cr.openjdk.java.net/~pchelko/8015455/webrev.01/
>>> 
>>> I have changed the approach according to your comments. DropTarget is 
>>> tracking if it is under the mouse and sends a synthetic dragExit on 
>>> removeNotify if necessary.
>>> Also I've added a check in TransferHandler.SwingDropTarget.dragExit to make 
>>> sure that the cleanup would be called even if the DropTarget is inactive 
>>> and dragExit events are not dispatched to the dtListener.
>>> 
>>> With best regards. Petr.
>>> 
>>> On Aug 21, 2013, at 1:40 PM, Anthony Petrov wrote:
>>> 
>>>> Hi Petr,
>>>> 
>>>> The java.awt.dnd.DropTarget is a public class, and as such adding any 
>>>> non-private member to it is an API change. I'm not sure we want to expose 
>>>> the dtListener field as a public (well, protected) API because it's too 
>>>> low-level IMO.
>>>> 
>>>> Besides, it seems that in the case if the frame is disposed, an 
>>>> application won't ever receive an event indicating that the DnD operation 
>>>> has ended (IIUC, if it did, the normal processing of the dragExit would 
>>>> reset the timer).
>>>> 
>>>> So, how about overriding the removeNotify() in DropTarget() and sending an 
>>>> appropriate DnD gesture termination event from there?
>>>> 
>>>> 
>>>> --
>>>> best regards,
>>>> Anthony
>>>> 
>>>> On 08/21/2013 01:21 PM, Petr Pchelko wrote:
>>>>> Hello, AWT Team.
>>>>> 
>>>>> Please review the fix for the issue:
>>>>> http://bugs.sun.com/view_bug.do?bug_id=8015455
>>>>> The fix is available at:
>>>>> http://cr.openjdk.java.net/~pchelko/8015455/webrev.00/
>>>>> 
>>>>> The SwingDropTarget initializes a SwingTimer to handle autoscroll. This 
>>>>> timer was stopped on dragExit and drop. However, if the frame was 
>>>>> disposed in some dropTarget listener the timer was never stopped and 
>>>>> prevented the AWT application from exiting.
>>>>> 
>>>>> With best regards. Petr,
>>>>> 
>>> 
> 

Reply via email to