Hi, Sergey,

Please find my answer inline.

Thanks,
Dmitry
On 01/04/2014 15:17, Sergey Bylokhov wrote:
Hi, Dmitry.
This means that the wrong EDT will be used for some components.
The situation is strange. We have appcontext and probably some components, which belongs to it, but there is no appropriate EDT. Why? Should we recreate it?
This situation is typical for the applets which have some AWT or Swing components as a static fields (see simple example in https://bugs.openjdk.java.net/browse/JDK-8036112 ). The static field is created only once when the applet's code is loaded. All works well for the first execution. However, if the web page is refreshed, (i.e. F5 is pressed), the Java Plugin destroys the applet and starts it again. The static fields stay untouched since they should be the same for all instances of the applet's class. So the static AWT/Swing component has AppContext which points to not existed EventQueue object, since it has gone during applet's relaunch. Of course we can try to re-create AppContext during applet's relaunch, but I do not think that's a good idea. In this case we have to go through all static fields and find out the components whose AppContext should be changed. But it may take a lot of time and significantly increase the applet's relaunch time, since the structure of static field may be quite complex.
And i think appContext.getAppContext() can be null too.


On 4/1/14 3:02 PM, dmitry markov wrote:
Hello,

Could you review the fix for jdk9, please?

bug: https://bugs.openjdk.java.net/browse/JDK-8036112
webrev: http://cr.openjdk.java.net/~dmarkov/8036112/jdk9/webrev.00/

Problem description: the EventQueue object stored in AppContext for static fields of an applet becomes null after the refresh of the web page. This may cause a NPE in swing/awt code.

Fix: The method SunToolkit.getSystEmeventQueueImplPP(AppContext appContext) should be modified. If the EventQueue from the passed AppContext is null, the method will retrieve the EventQueue from the default AppContext.

Thanks,
Dmitry



--
Best regards, Sergey.

Reply via email to