The Pogo games run multiple applets per page which expect to be able
to refer to each other by name via static variables. The class loader
cache, introduced in the new plug-in under 6618920, addresses the
problem of these applets being able to see each others' static
variables. However, there was another problem: the names of these
applets were occasionally turning up empty. The reason for this turned
out to be slight differences in how the old and new plug-ins' ActiveX
controls queried the "ambient display name" of the control, which is
apparently how the id of the object tag is passed up as the applet's
"name" parameter. It seems that when the applet tag is in use and the
"name" parameter is specified, under some circumstances the ambient
display name will be null or empty. The problem is fixed by checking
for this case and avoiding destroying a valid name for the applet
In conjunction with the fix for 6618920, this fix makes the games from
www.pogo.com work in the new Java Plug-In.
It turns out that the absence of the class loader cache was one of the reasons that the Pogo games were not working, but not the only one. Some of the code the new plug-in inherited in its Internet Explorer port queried the "ambient display name" of the ActiveX control and passed this up to Java as the "name" parameter for the applet. Apparently this is how one provides an identifier to the OBJECT tag. It seems that in certain situations the applet was specifying a valid "name" parameter, but for some reason the ambient display name of the ActiveX control was null or empty. This meant that two out of the three applets on the game's web page had their (valid) names blown away, preventing them from looking up each other by name later. Adding a check for this case fixed the problem and along with the introduction of the class loader cache the Pogo games are now working.
This bug will therefore be fixed separately from 6618920.