Uploaded image for project: 'JDK'
  1. JDK
  2. JDK-8040626

Cannot resolve method: JSObject.getWindow(this)

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: External
    • Icon: P3 P3
    • None
    • 7u10, 8
    • client-libs
    • windows_xp

      FULL PRODUCT VERSION :
      SDK: jdk1.7.0_10

      JRE:
      Java(TM) SE Runtime Environment (build 1.7.0_10-b18)
      Java HotSpot(TM) Client VM (build 23.6-b04, mixed mode, sharing)

      ADDITIONAL OS VERSION INFORMATION :
      Windows XP

      A DESCRIPTION OF THE PROBLEM :
      Java 7 SDK and JRE version (1.7.0_10) packages includes within jfxrt.jar a deployment of " netscape.javascript.JSObject " that in missing the method:
      JSObject.getWindow([applet instance]).

      At the same time with this sme Java7 deployment then jar " plugin.jar " does include the " netscape.javascript.JSObject " API with the required method (getWindow)

      When loading by IDE or in runtime it may occur jfxrt.jar is loaded before plugin.jar and therefore you get compilation error, or in runtime one will get Undefined class exception.

      This looks liek sever bug that prevent from Applets that interact with JavaScript from being used.







      REGRESSION. Last worked in version 7

      STEPS TO FOLLOW TO REPRODUCE THE PROBLEM :
      Used the Java7 SDK and try to compile a code with this line, without any special manipulation to classpath:

      //'this' is an instance of Applet
      .....
      JSObject jsWin = JSObject.getWindow(this);
      .....


      EXPECTED VERSUS ACTUAL BEHAVIOR :
      EXPECTED -
      prevent duplication of " netscape.javascript " within Java 7 deployments and keep the oner currently in plugin.jar

      ERROR MESSAGES/STACK TRACES THAT OCCUR :
      error: cannot find symbol method getWindow(WebBrowserApplet)

      REPRODUCIBILITY :
      This bug can be reproduced always.

      ---------- BEGIN SOURCE ----------
      /**
       * Class: MyApplet
       * User: Gilad Tiram
       * Date: 12/29/12
       * Time: 1:08 PM
       * <p/>
       */
      public class MyApplet extends JApplet{

          @Override
          public void init() {
              
              //this line will not be compiled without manual manipulation of classpath
              JSObject jsWin = JSObject.getWindow(this);
              
          }
      }
      ---------- END SOURCE ----------

            anthony Anthony Petrov (Inactive)
            webbuggrp Webbug Group
            Votes:
            1 Vote for this issue
            Watchers:
            3 Start watching this issue

              Created:
              Updated:
              Resolved: