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

Webstart doesn't respect specified "java-vm-args" when creating matching JVM instance

XMLWordPrintable

    • b23
    • x86
    • other

      FULL PRODUCT VERSION :
      Windows 7 Professional:
      ========================
      java version "1.8.0_121"
      Java(TM) SE Runtime Environment (build 1.8.0_121-b13)
      Java HotSpot(TM) Client VM (build 25.121-b13, mixed mode, sharing)

      Windows 10 Enterprise:
      =======================
      java version "1.8.0_121"
      Java(TM) SE Runtime Environment (build 1.8.0_121-b13)
      Java HotSpot(TM) 64-Bit Server VM (build 25.121-b13, mixed mode)

      ADDITIONAL OS VERSION INFORMATION :
      - Windows 10 Enterprise (64-Bit)
      - Windows 7 Professional (64-Bit)

      A DESCRIPTION OF THE PROBLEM :
      If a jnlp file contains more than one <java>-configuration (inside of the <resources>-node) and these configurations sepcify "java-vm-args", the final JVM instance will be created with wrong arguments. The arguments are taken from the first <java>-configuration and the "java-vm-args" of the matching <java>-configuration.

      STEPS TO FOLLOW TO REPRODUCE THE PROBLEM :
      Create a jnlp file with at least two <java>-configurations. The first configuration should be a version which is not installed on your pc. It doesn't matter if this version is older or doesn't exist. Webstart will always use the first <java>-configuration to start the initial JVM.

      For example:
      <resources>
      <java version="1.100*" href="http://java.sun.com/products/autodl/j2se" initial-heap-size="256m" max-heap-size="768m" java-vm-args="-da" />
      <java version="1.8*" href="http://java.sun.com/products/autodl/j2se" initial-heap-size="256m" max-heap-size="768m" java-vm-args="-ea" />
      ...
      </resources>

      EXPECTED VERSUS ACTUAL BEHAVIOR :
      EXPECTED -
      The final JVM instance should only respect the specified "java-vm-args" of the matching <java>-configuration.
      ACTUAL -
      The final JVM instance was started with the "java-vm-args" of the first and the matching <java>-configuration.

      ERROR MESSAGES/STACK TRACES THAT OCCUR :
      Log started: Mo, 6 Mär 2017 14:10:28 +0100
      Java Web Start 11.121.2.13
      JRE-Version verwenden
       1.8.0_121-b13 Java HotSpot(TM) Client VM
      basic: Java part started

      ...

      Match: digest selected JREDesc: JREDesc[version 1.8*, versionType=0, secure=false, heap=268435456-805306368, args=-ea, href=http://java.sun.com/products/autodl/j2se, null, null], JREInfo: JREInfo for index 3:
          platform is: 1.8
          product is: 1.8.0_121
          location is: http://java.sun.com/products/autodl/j2se
          path is: C:\Program Files (x86)\Java\jre1.8.0_121\bin\javaw.exe
          args is:
          native platform is: Windows, x86 [ x86, 32bit ]
          JavaFX runtime is: JavaFX 1.8.0_121 at: C:\Program Files (x86)\Java\jre1.8.0_121\lib\ext\
          enabled is: true
          registered is: true
          system is: true

      Match: selecting maxHeap: 805306368
      Match: selecting InitHeap: 268435456
      Match: digesting vmargs: -ea
      security: --- parseCommandLine converted : -ea
      into:
      [-ea]
      Match: digested vmargs: [JVMParameters: isSecure: true, args: "-ea"]
      Match: JVM args after accumulation: [JVMParameters: isSecure: true, args: "-ea"]
      Match: endTraversal ..
      security: --- parseCommandLine converted : -Xms256m
      into:
      [-Xms256m]
      network: Created version ID: 1.8.0.121
      network: Created version ID: 1.8
      network: Created version ID: 1.8.0.121
      Match: Running JREInfo Version match: 1.8.0.121 == 1.8.0.121
      Match: Running JVM args match: have:<[JVMParameters: isSecure: true, args: "-Xms256m" "-da" "-ea" "-Xmx768m"]> satisfy want:<[JVMParameters: isSecure: true, args: "-Xmx768m" "-Xms256m" "-ea"]>


      ...

      basic: JREMatcher:
        JREDesc: JREDesc[version 1.8*, versionType=0, secure=false, heap=268435456-805306368, args=-ea, href=http://java.sun.com/products/autodl/j2se, null, null]
        JREInfo: JREInfo for index 3:
          platform is: 1.8
          product is: 1.8.0_121
          location is: http://java.sun.com/products/autodl/j2se
          path is: C:\Program Files (x86)\Java\jre1.8.0_121\bin\javaw.exe
          args is:
          native platform is: Windows, x86 [ x86, 32bit ]
          JavaFX runtime is: JavaFX 1.8.0_121 at: C:\Program Files (x86)\Java\jre1.8.0_121\lib\ext\
          enabled is: true
          registered is: true
          system is: true

        Init Heap: 268435456
        Max Heap: 805306368
        Satisfying: true, true
        SatisfyingVersion: true
        SatisfyingJVMArgs: true, true
        SatisfyingSecure: true
        Selected JVMParam: [JVMParameters: isSecure: true, args: "-Xmx768m" "-Xms256m" "-ea"]
        Running JVMParam: [JVMParameters: isSecure: true, args: "-Xms256m" "-da" "-ea" "-Xmx768m"]
      basic: continuing launch in this VM

      REPRODUCIBILITY :
      This bug can be reproduced always.

      CUSTOMER SUBMITTED WORKAROUND :
      The first <java>-configuration in the jnlp file should have no "java-vm-args" specified.

            herrick Andy Herrick (Inactive)
            webbuggrp Webbug Group
            Votes:
            0 Vote for this issue
            Watchers:
            4 Start watching this issue

              Created:
              Updated:
              Resolved: