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

Getting NullPointerExcpetion in CommandLine.java method (lin#45) while compiling

    • Icon: Bug Bug
    • Resolution: Not an Issue
    • Icon: P4 P4
    • None
    • 5.0
    • tools
    • x86
    • windows_xp

      FULL PRODUCT VERSION :
      java version "1.5.0_04"
      Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0_04-b05)
      Java HotSpot(TM) Client VM (build 1.5.0_04-b05, mixed mode, sharing)

      ADDITIONAL OS VERSION INFORMATION :
      Microsoft Windows XP [Version 5.1.2600]

      A DESCRIPTION OF THE PROBLEM :
      I have a method as below -

      private void compileClasses(String directoryName)
      {
      File base = new File(directoryName);
      File[] content = base.listFiles();
      String[] sourceFiles = new String[content.length + 4];

      //Sepecify runtime arguments like classpath and output path for compiling classes
      sourceFiles[0] = "-classpath";
      sourceFiles[1] = CLASSPATH; //some classpath
      sourceFiles[2] = "-d";
      sourceFiles[3] = OUTPUT_DIR; //some output path

      //Code here to populate *.java files from given directoryName.
      //For ex :- sourceFiles[] = {"-classpah", "c:\jars", "-d", "c:\projects", "TimeCalculator.java", "CurrancyCalculator.java" ..etc }

      com.sun.tools.javac.Main javac = new com.sun.tools.javac.Main();
      int errorCode = javac.compile(sourceFiles, printWriterObject);

      if(errorCode != 0) //ERROR
      //Print ERROR
      }

      When I run this method, I get the below error ->>
      An exception has occurred in the compiler (1.5.0_04). Please file a bug at the Java Developer Connection (http://java.sun.com/webapps/bugreport) after checking the Bug Parade for duplicates. Include your program and the following diagnostic in your report. Thank you.
      java.lang.NullPointerException
      at com.sun.tools.javac.main.CommandLine.parse(CommandLine.java:45)
      at com.sun.tools.javac.main.Main.compile(Main.java:570)
      at com.sun.tools.javac.main.Main.compile(Main.java:544)
      at com.sun.tools.javac.Main.compile(Main.java:85)
      at com.iconixx.generator.ClassInstaller.compileClasses(ClassInstaller.java:140)

      The errorCode returned by the "compile" method is 4 and I believe it means ABNORMAL.


      Strange thing is, when I run the above compile method in little different way to compile one class at a time instead of all the classes (or more than one) from the given directory using below code, it works fine.

      com.sun.tools.javac.Main javac = new com.sun.tools.javac.Main();
      int status = javac.compile(new String[] {
      "-classpath", CLASSPATH,
      "-d", OUTPUT_DIR,
      "-Xlint:unchecked",
      fileObject.getAbsolutePath()} ,
      printWriterObject);


      Please look into it.

      STEPS TO FOLLOW TO REPRODUCE THE PROBLEM :
      Run the code given above. When more than one classes are given in String[] for compilation, NullPointerException is being thrown. It works fine to compile one class at a time.

      EXPECTED VERSUS ACTUAL BEHAVIOR :
      EXPECTED -
      Expected result is that all the java source files in a given directory should get compiled in one call instead of one call per source file.
      ACTUAL -
      NullPointerException stops the entire process and nothing works.

      ERROR MESSAGES/STACK TRACES THAT OCCUR :
      Given in description. Giving again.

      An exception has occurred in the compiler (1.5.0_04). Please file a bug at the Java Developer Connection (http://java.sun.com/webapps/bugreport) after checking the Bug Parade for duplicates. Include your program and the following diagnostic in your report. Thank you.
      java.lang.NullPointerException
      at com.sun.tools.javac.main.CommandLine.parse(CommandLine.java:45)
      at com.sun.tools.javac.main.Main.compile(Main.java:570)
      at com.sun.tools.javac.main.Main.compile(Main.java:544)
      at com.sun.tools.javac.Main.compile(Main.java:85)
      at com.iconixx.generator.ClassInstaller.compileClasses(ClassInstaller.java:140)

      REPRODUCIBILITY :
      This bug can be reproduced always.

      ---------- BEGIN SOURCE ----------
      Pls see the description.
      ---------- END SOURCE ----------

      CUSTOMER SUBMITTED WORKAROUND :
      Compile one class at a time instead of more number of classes in a single call "compile(String[], PrintWriter)". But for the classes which have interdependancy, this workaround wont really help. i need a way which works similar to "javac *.java". In short a way which compiles everything in a folder in just one call and resolve dependancy internarlly.

          Loading...
          Uploaded image for project: 'JDK'
          1. JDK
          2. JDK-6450729

          Getting NullPointerExcpetion in CommandLine.java method (lin#45) while compiling

            • Icon: Bug Bug
            • Resolution: Not an Issue
            • Icon: P4 P4
            • None
            • 5.0
            • tools
            • x86
            • windows_xp

              FULL PRODUCT VERSION :
              java version "1.5.0_04"
              Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0_04-b05)
              Java HotSpot(TM) Client VM (build 1.5.0_04-b05, mixed mode, sharing)

              ADDITIONAL OS VERSION INFORMATION :
              Microsoft Windows XP [Version 5.1.2600]

              A DESCRIPTION OF THE PROBLEM :
              I have a method as below -

              private void compileClasses(String directoryName)
              {
              File base = new File(directoryName);
              File[] content = base.listFiles();
              String[] sourceFiles = new String[content.length + 4];

              //Sepecify runtime arguments like classpath and output path for compiling classes
              sourceFiles[0] = "-classpath";
              sourceFiles[1] = CLASSPATH; //some classpath
              sourceFiles[2] = "-d";
              sourceFiles[3] = OUTPUT_DIR; //some output path

              //Code here to populate *.java files from given directoryName.
              //For ex :- sourceFiles[] = {"-classpah", "c:\jars", "-d", "c:\projects", "TimeCalculator.java", "CurrancyCalculator.java" ..etc }

              com.sun.tools.javac.Main javac = new com.sun.tools.javac.Main();
              int errorCode = javac.compile(sourceFiles, printWriterObject);

              if(errorCode != 0) //ERROR
              //Print ERROR
              }

              When I run this method, I get the below error ->>
              An exception has occurred in the compiler (1.5.0_04). Please file a bug at the Java Developer Connection (http://java.sun.com/webapps/bugreport) after checking the Bug Parade for duplicates. Include your program and the following diagnostic in your report. Thank you.
              java.lang.NullPointerException
              at com.sun.tools.javac.main.CommandLine.parse(CommandLine.java:45)
              at com.sun.tools.javac.main.Main.compile(Main.java:570)
              at com.sun.tools.javac.main.Main.compile(Main.java:544)
              at com.sun.tools.javac.Main.compile(Main.java:85)
              at com.iconixx.generator.ClassInstaller.compileClasses(ClassInstaller.java:140)

              The errorCode returned by the "compile" method is 4 and I believe it means ABNORMAL.


              Strange thing is, when I run the above compile method in little different way to compile one class at a time instead of all the classes (or more than one) from the given directory using below code, it works fine.

              com.sun.tools.javac.Main javac = new com.sun.tools.javac.Main();
              int status = javac.compile(new String[] {
              "-classpath", CLASSPATH,
              "-d", OUTPUT_DIR,
              "-Xlint:unchecked",
              fileObject.getAbsolutePath()} ,
              printWriterObject);


              Please look into it.

              STEPS TO FOLLOW TO REPRODUCE THE PROBLEM :
              Run the code given above. When more than one classes are given in String[] for compilation, NullPointerException is being thrown. It works fine to compile one class at a time.

              EXPECTED VERSUS ACTUAL BEHAVIOR :
              EXPECTED -
              Expected result is that all the java source files in a given directory should get compiled in one call instead of one call per source file.
              ACTUAL -
              NullPointerException stops the entire process and nothing works.

              ERROR MESSAGES/STACK TRACES THAT OCCUR :
              Given in description. Giving again.

              An exception has occurred in the compiler (1.5.0_04). Please file a bug at the Java Developer Connection (http://java.sun.com/webapps/bugreport) after checking the Bug Parade for duplicates. Include your program and the following diagnostic in your report. Thank you.
              java.lang.NullPointerException
              at com.sun.tools.javac.main.CommandLine.parse(CommandLine.java:45)
              at com.sun.tools.javac.main.Main.compile(Main.java:570)
              at com.sun.tools.javac.main.Main.compile(Main.java:544)
              at com.sun.tools.javac.Main.compile(Main.java:85)
              at com.iconixx.generator.ClassInstaller.compileClasses(ClassInstaller.java:140)

              REPRODUCIBILITY :
              This bug can be reproduced always.

              ---------- BEGIN SOURCE ----------
              Pls see the description.
              ---------- END SOURCE ----------

              CUSTOMER SUBMITTED WORKAROUND :
              Compile one class at a time instead of more number of classes in a single call "compile(String[], PrintWriter)". But for the classes which have interdependancy, this workaround wont really help. i need a way which works similar to "javac *.java". In short a way which compiles everything in a folder in just one call and resolve dependancy internarlly.

                    ahe Peter Ahe
                    rmandalasunw Ranjith Mandala (Inactive)
                    Votes:
                    0 Vote for this issue
                    Watchers:
                    0 Start watching this issue

                      Created:
                      Updated:
                      Resolved:
                      Imported:
                      Indexed:

                        ahe Peter Ahe
                        rmandalasunw Ranjith Mandala (Inactive)
                        Votes:
                        0 Vote for this issue
                        Watchers:
                        0 Start watching this issue

                          Created:
                          Updated:
                          Resolved:
                          Imported:
                          Indexed: