Hello.
We got a response from the previous maintainer of this code, that it was implemented long time ago, and works probably because of a different class hierarchy. Currently the code works in this way:

[super respondsToSelector:@selector(draggingEntered:)]
"It goes to the superclass, gets the implementation of respondsToSelector: there, and then runs it on the current object, which will return YES. But when we call [super draggingEntered] it will crash because there are no such methods in NSView".

Since the code does not work I suggest to drop it.

Bug: https://bugs.openjdk.java.net/browse/JDK-8139050
Webrev can be found at: http://cr.openjdk.java.net/~serb/8139050/webrev.01

The new test was added(it is modified version of test submitted by the users of Swing).

Note that both tests still fails because of another bug:
https://bugs.openjdk.java.net/browse/JDK-8153871
I just reopened it and will start to work on it after this one.

On 10.11.2015 4:53, Alexander Scherbatiy wrote:
The following changes have been contributed during JDK Mac OS X port developing:
http://hg.openjdk.java.net/macosx-port/macosx-port/jdk/rev/9023fa7e47c9

src/macosx/native/sun/awt/AWTView.m
---------------------
+    if (dropTarget != nil)
+        dragOp = [dropTarget draggingEntered:sender];
+    else if ([super respondsToSelector:@selector(draggingEntered:)])
+        dragOp = [super draggingEntered:sender];
---------------------

May be you could know why it was necessary to check dragging* selectors in super class when the super class is NSView which does not define them.

--
Best regards, Sergey.

Reply via email to