Hello Neon,

First of all thanks for the compact reproducer!, well done, nice
and neat.

It is not the same issue as JDK-8029145, therefore, I have filed an issue for it:
https://bugs.openjdk.java.net/browse/JDK-8037484

I will fix this in the forthcoming weeks and back-port it to 8u-dev as well.

Once again thanks for bringing this to our attention.

Kumar


On 3/14/2014 2:30 PM, Neon Ngo wrote:
Sorry for the delay in getting this test case.
I think the culprit might be a combo of my class (in default) package that has an inner class.

Under Unix (e.g. Linux):
1. define JAVA_HOME system variable to point to JDK8
2. cd to extracted folder
3. run ./doit.sh (which just calls javadoc using full paths to current working directory)

Here are the zip file contents (just in case the attachment gets blocked):
.
|-- doit.sh
`-- test
    |-- InPackage.java
    `-- NotInPackageWithNestedClass.java

=== BEGIN contents of test/InPackage.java  ===
package test;

/** a class in a package */
public class InPackage {

  /** the main method */
  public static void main (String[] args) throws Exception {
      System.out.println("test javadoc bug (class in a package)");
  }
}
=== END contents of test/InPackage.java  ===

=== BEGIN contents of test/NotInPackageWithNestedClass.java ===
import java.io.*;

/**
    This class is in the default package (aka not in any package).
 */
public final class NotInPackageWithNestedClass {

  public static void main (String[] args) throws Throwable {
  }

//////////////////////////////////////////////////////////////////////////////
  // NESTED CLASS
//////////////////////////////////////////////////////////////////////////////
  private static final class JarFilter implements FilenameFilter {
    public boolean accept(java.io.File dir, String name) {
      return name.endsWith(".jar");
    }
  } // end class JarFilter

} // end class NotInPackage
=== END contents of test/NotInPackageWithNestedClass.java ===

=== BEGIN contents of doit.sh ===
#!/bin/sh

outputdir=${PWD}/outputdir
cp1=${PWD}/test
cp2=${PWD}
JAVADOC_TOOL=${JAVA_HOME}/bin/javadoc

# shows JDK8's javadoc tool issue with two classes in test directory: NotInPackage.java and InPackage.java) ${JAVADOC_TOOL} -classpath ${cp1}:${cp2} -d ${outputdir} ${PWD}/test/NotInPackageWithNestedClass.java test

=== END contents of doit.sh ===

Regards,

Neon



On Mon, Feb 3, 2014 at 5:50 PM, Kumar Srinivasan <[email protected] <mailto:[email protected]>> wrote:

    Hi Neon,

    I spent some time trying to reproduce the problem, but could not.
    Can you provide me with a simple reproducer ?

    Thanks
    Kumar


    On 1/24/2014 7:31 AM, Neon Ngo wrote:

        Hi,

        we are seeing this error using JDK 8 EA b124 (b123, etc.)
        using the javadoc tool.

        java.lang.IllegalStateException: endPosTable already set
        at
        
com.sun.tools.javac.util.DiagnosticSource.setEndPosTable(DiagnosticSource.java:136)
        at com.sun.tools.javac.util.Log.setEndPosTable(Log.java:350)
        at
        com.sun.tools.javac.main.JavaCompiler.parse(JavaCompiler.java:643)
        at
        
com.sun.tools.javadoc.JavadocTool.parsePackageClasses(JavadocTool.java:243)
        at
        com.sun.tools.javadoc.JavadocTool.getRootDocImpl(JavadocTool.java:180)
        at com.sun.tools.javadoc.Start.parseAndExecute(Start.java:344)
        at com.sun.tools.javadoc.Start.begin(Start.java:219)
        at com.sun.tools.javadoc.Start.begin(Start.java:205)
        at com.sun.tools.javadoc.Main.execute(Main.java:64)
        at com.sun.tools.javadoc.Main.main(Main.java:54)
        javadoc: error - fatal exception

        ===
        it is similar to BUG JDK-8029145
        javadoc fails with java.lang.IllegalStateException:
        endPosTable already set

        but we are NOT using the -subpackages option

        I think our issue is b/c we have a directory (tools) that has
        a class NOT in that package and others in it,
        e.g.

        <my_project_dir>/tools/ClassInDefaultPackage.java (not in any
        package)
        <my_project_dir>/tools/ClassInToolsPackage.java (in tools package)

        then we run javaodc with -classpath
        <my_project_dir>/tools:<my_project_dir>
        <my_project_dir>/tools/ClassInDefaultPackage.java tools

        and it gets the above error (this works fine in ALL JDK
        versions (1.0 to 1.7) prior to JDK 8 EA.

        How do I submit a Bug for this issue are add comments to
        JDK-8029145 ?

        Regards,

        Neon




Reply via email to