Anton, It looks like you need to also update getInitialAttributeStates. -Pete
On 9/16/16 12:49 PM, Anton Tarasov wrote: > On 9/16/2016 1:32 PM, Sergey Bylokhov wrote: >> On 15.09.16 14:48, Anton Tarasov wrote: >>>> Yes, and my suggestion was to use the new method and default values >>>> everywhere instead of invokeAndWait(Callable,Component). >>> >>> But the default value for a reference would be null, there's no need to >>> request something else, unlike for primitive wrappers. >>> >>> Or your idea is to force passing a def value anyway? >> >> If the references like Point from getLocationOnScreen() can be null, >> then ok. looks fine. > > Yes, it can. > > Anton. > >> >>> >>> Anton. >>> >>>>>> On 15.09.16 12:45, Anton Tarasov wrote: >>>>>>> Hello, >>>>>>> >>>>>>> Please review the fix: >>>>>>> >>>>>>> bug: https://bugs.openjdk.java.net/browse/JDK-8165829 >>>>>>> webrev: http://cr.openjdk.java.net/~ant/JDK-8165829/jdk9/webrev.0 >>>>>>> >>>>>>> (The bug is currently closed as “not an issue”, which is not quite >>>>>>> true. >>>>>>> So once and if the fix is approved I can take the ownership of the >>>>>>> bug). >>>>>>> >>>>>>> The problem is this. Sometimes when a frame is closed there may >>>>>>> appear a >>>>>>> race condition: >>>>>>> >>>>>>> - removeNotify() is called on the frame on EDT and it removes >>>>>>> all the >>>>>>> events associated with the frame from the event queue. >>>>>>> >>>>>>> - The frame is requested by accessibility via the CAccessibility >>>>>>> static >>>>>>> methods (like CAccessibility.getAccessibleIndexInParent). Those >>>>>>> methods >>>>>>> are called from native on AppKit thread and they perform via >>>>>>> invokeAndWait. The latter is wrapped with an InvocationEvent whose >>>>>>> source is set to the frame. But, once the event is put on the event >>>>>>> queue, it's purged by the removeNotify() call. As the result, >>>>>>> invokeAndWait returns null. Then, in some of the mentioned methods >>>>>>> 'null' is unboxed to a primitive 'int' or 'boolean' which results >>>>>>> in NPE >>>>>>> propagated to native. On the native side, the NPE is not properly >>>>>>> handled and is just re-thrown. >>>>>>> >>>>>>> I don't have a simple and safe solution for the race. So, I >>>>>>> suggest to >>>>>>> fix the NPE/crash at least. >>>>>>> >>>>>>> Thanks, >>>>>>> Anton. >>>>>>> >>>>>>> >>>>>> >>>>>> >>>>> >>>> >>>> >>> >> >> >