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

Web Start looks in currently directory for all classes prior to jars - slow

    Details

    • Subcomponent:
    • Resolved In Build:
      b76
    • CPU:
      x86_64
    • OS:
      windows_7
    • Verification:
      Verified

      Backports

        Description

        FULL PRODUCT VERSION :
        Using JRE version 1.7.0_67-b01 Java HotSpot(TM) Client VM
        Java Web Start 10.67.2.01


        ADDITIONAL OS VERSION INFORMATION :
        Window 7 Service Pack 1

        EXTRA RELEVANT SYSTEM CONFIGURATION :
        Internet Explorer 11

        A DESCRIPTION OF THE PROBLEM :
        "java.class.path" starting with 1.7.0_67 is "." (in 1.7.0_60 it was deploy.jar).

        Therefore the "root" class loader (sun.misc.Launcher$AppClassLoader) is first given the chance to load the class from the file system in the current directory ("user.dir") . This results in very slow startup time when there are thousand of classes to load and the "user.dir" is a network drive ( 3 minutes vs 10 seconds before ).

        Can verify what is the java.class.path and user.dir by having java console started and pressing letter "s"

        REGRESSION. Last worked in version 7u60

        ADDITIONAL REGRESSION INFORMATION:
        JRE version 1.7.0_67-b01 Java HotSpot(TM) Client VM

        STEPS TO FOLLOW TO REPRODUCE THE PROBLEM :
        1) install process monitor to see file activity
        a) download zip from http://technet.microsoft.com/en-us/sysinternals/bb896645.aspx
        b) unzip
        c) start Procmon.exe
        d) press Filter Icon
        e) Select "Process Name" "is" "jp2launcher.exe" "Include"
        f) press Add
        g) Select "Path" "ends with" ".class" "Include"
        h) press Add

        2) Start Internet Explorer 11
        3) Navigate to http://docs.oracle.com/javase/tutorial/uiswing/examples/misc/index.html
        4) click on Launch for AccessibleScrollDemo ( or any other)


        EXPECTED VERSUS ACTUAL BEHAVIOR :
        EXPECTED -
        Process Monitor shows no class files accessed since they are all in JAR files.
        ACTUAL -
        Process Monitor shows classes being accessed in "user.dir", all show PATH NOT FOUND

        ERROR MESSAGES/STACK TRACES THAT OCCUR :
        Process Monitor shows PATH NOT FOUND

        REPRODUCIBILITY :
        This bug can be reproduced always.

        ---------- BEGIN SOURCE ----------
        See java examples on web for a JNLPs. Any JNLP file will show the problem with trying to access class files in current directory.
        ---------- END SOURCE ----------

        CUSTOMER SUBMITTED WORKAROUND :
        No workaround found. Cannot override classpath or set user.dir using java-vm-args or property name/values in JNLP file.

          Attachments

            Issue Links

              Activity

                People

                • Assignee:
                  herrick Andy Herrick
                  Reporter:
                  webbuggrp Webbug Group
                • Votes:
                  0 Vote for this issue
                  Watchers:
                  10 Start watching this issue

                  Dates

                  • Due:
                    Created:
                    Updated:
                    Resolved: