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

Due to a javac type inference issue, javadoc doesn't compile with a jdk prior to 8u40

XMLWordPrintable

    • b107
    • Not verified

      Because of this issue it is not possible to bootstrap jdk9 any more with boot jdk prior to 8u40 (see error below).

      We can either require a boot jdk which is 8u40 or higher or fix this error which is not too hard.

      Compiling 1027 files for BUILD_INTERIM_LANGTOOLS
      ( /cygdrive/c/output/OpenJDK/output-jdk9-dev-opt/configure-support/bin/fixpath.exe -c /cygdrive/c/Software/Java/jdk1.8.0_20/bin/javac -XDignore.symbol.file=true -g -Xlint:all,-deprecation -Werror -g -implicit:none -d /cygdrive/c/output/OpenJDK/output-jdk9-dev-opt/buildtools/langtools_interim_classes @/cygdrive/c/output/OpenJDK/output-jdk9-dev-opt/buildtools/langtools_interim_classes/_the.BUILD_INTERIM_LANGTOOLS_batch.tmp > >(/usr/bin/tee /cygdrive/c/output/OpenJDK/output-jdk9-dev-opt/buildtools/langtools_interim_classes/_the.BUILD_INTERIM_LANGTOOLS_batch.log) 2> >(/usr/bin/tee /cygdrive/c/output/OpenJDK/output-jdk9-dev-opt/buildtools/langtools_interim_classes/_the.BUILD_INTERIM_LANGTOOLS_batch.log >&2) || ( exitcode=$? && /usr/bin/cp /cygdrive/c/output/OpenJDK/output-jdk9-dev-opt/buildtools/langtools_interim_classes/_the.BUILD_INTERIM_LANGTOOLS_batch.log /cygdrive/c/output/OpenJDK/output-jdk9-dev-opt/make-support/failure-logs/buildtools_langtools_interim_classes__the.BUILD_INTERIM_LANGTOOLS_batch.log && exit $exitcode )
      ) && /usr/bin/mv /cygdrive/c/output/OpenJDK/output-jdk9-dev-opt/buildtools/langtools_interim_classes/_the.BUILD_INTERIM_LANGTOOLS_batch.tmp /cygdrive/c/output/OpenJDK/output-jdk9-dev-opt/buildtools/langtools_interim_classes/_the.BUILD_INTERIM_LANGTOOLS_batch
      c:\Software\OpenJDK\jdk9-dev\langtools\src\jdk.javadoc\share\classes\jdk\javadoc\internal\doclets\toolkit\util\Utils.java:179: error: no suitable method found for collect(Collector<Object,CAP#1,ArrayList<Object>>)
                      .collect(Collectors.toCollection(ArrayList::new));
                      ^
          method Stream.<R#1>collect(Supplier<R#1>,BiConsumer<R#1,? super CAP#2>,BiConsumer<R#1,R#1>) is not applicable
            (cannot infer type-variable(s) R#1
              (actual and formal argument lists differ in length))
          method Stream.<R#2,A>collect(Collector<? super CAP#2,A,R#2>) is not applicable
            (cannot infer type-variable(s) R#2,A,CAP#3,T#2,C,E
              (argument mismatch; Collector<CAP#2,CAP#4,ArrayList<CAP#2>> cannot be converted to Collector<? super CAP#2,CAP#4,ArrayList<CAP#2>>))
        where R#1,T#1,R#2,A,T#2,C,E are type-variables:
          R#1 extends Object declared in method <R#1>collect(Supplier<R#1>,BiConsumer<R#1,? super T#1>,BiConsumer<R#1,R#1>)
          T#1 extends Object declared in interface Stream
          R#2 extends Object declared in method <R#2,A>collect(Collector<? super T#1,A,R#2>)
          A extends Object declared in method <R#2,A>collect(Collector<? super T#1,A,R#2>)
          T#2 extends Object declared in method <T#2,C>toCollection(Supplier<C>)
          C extends Collection<T#2> declared in method <T#2,C>toCollection(Supplier<C>)
          E extends Object declared in class ArrayList
        where CAP#1,CAP#2,CAP#3,CAP#4 are fresh type-variables:
          CAP#1 extends Object from capture of ?
          CAP#2 extends Element from capture of ? extends Element
          CAP#3 extends Object from capture of ?
          CAP#4 extends Object from capture of ?

            simonis Volker Simonis
            simonis Volker Simonis
            Votes:
            0 Vote for this issue
            Watchers:
            4 Start watching this issue

              Created:
              Updated:
              Resolved: