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

compatibality issue between ant and jigsaw hybird mode

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Not an Issue
    • Icon: P3 P3
    • None
    • 9-repo-jigsaw
    • core-libs

      The problem happens when trying to launch a fork jigsaw vm through ant.

      The tested java class is a simple Helloworld.java used to read system property and jvm arg:
      =============
      public static void main(String[] args){
      System.out.println(System.getProperty("jvmarg")) ;
      System.out.println(System.getProperty("sysprop")) ;
      }
      =============

      Then try to run it through ant. The build.xml looks as below. JAVA_HOME is pointed to one jigsaw jdk.
      It works well in legacy mode:
      =============
      <project name="tests" default="test" basedir="." >
      <target name="javac">
      <javac
              srcdir="./src"
              destdir="./classes"
              includes="**/*.java">
      </javac>
      </target>

      <target name="test" depends="javac">
      <java fork="yes" classname="Helloworld">
         <env key="CLASSPATH" value="./classes" />
         <sysproperty key="sysprop" value="sysprop11" />
         <jvmarg line="-Djvmarg=jvmarg22" />
      <!-- <jvmarg line="-L /net/sqenfs-1/export1/comp/jsn/users/patrick/xml_jigsaw/jigsaw/mlib -m test.hybrid"/> -->
      </java>
      </target>

      </project>
      ==============

      Then shift to hybird mode, here it means enable below line:
      <jvmarg line="-L /net/sqenfs-1/export1/comp/jsn/users/patrick/xml_jigsaw/jigsaw/mlib -m test.hybrid"/>
      It throws below exception:
      ==============
      test:
           [java] Warning: CLASSPATH environment variable ignored when -m specified
           [java] Got exception: java.lang.ClassNotFoundException: -Dsysprop=sysprop11
           [java] java.lang.ClassNotFoundException: -Dsysprop=sysprop11
           [java] at java.net.URLClassLoader$1.run(URLClassLoader.java:359)
           [java] at java.net.URLClassLoader$1.run(URLClassLoader.java:348)
           [java] at java.security.AccessController.doPrivileged(Native Method)
           [java] at java.net.URLClassLoader.findClass(URLClassLoader.java:347)
           [java] at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
           [java] at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
           [java] at java.lang.Class.forName0(Native Method)
           [java] at java.lang.Class.forName(Class.java:264)
           [java] at helper.ModuleTestRunWrapper.main(ModuleTestRunWrapper.java:42)
           [java] Java Result: 1
      ==============


      Notes:
      It looks the issue is caused by <sysproperty> tag. When I remove it and only keep <jvmarg>, it works well.
      ==============
      test:
           [java] Warning: CLASSPATH environment variable ignored when -m specified
           [java] jvmarg22
           [java] null

      ===============

            Unassigned Unassigned
            pzhang Patrick Zhang (Inactive)
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

              Created:
              Updated:
              Resolved:
              Imported:
              Indexed: