jlleitschuh
08/31/2017, 4:07 PM:junit-jupiter-api:javadocPicked up _JAVA_OPTIONS: -Xmx500m
javadoc: error - An exception occurred while building a component: TagInfo
(com.sun.tools.javac.code.ClassFinder$BadClassFile: bad class file: /home/travis/build/junit-team/junit5/junit-jupiter-api/build/classes/kotlin/main/org/junit/jupiter/api/AssertionsKt$sam$Supplier$i$44378ebd.class
undeclared type variable: T
Please remove or make sure it appears in the correct subdirectory of the classpath.)
Please file a bug against the javadoc tool via the Java bug reporting page
(<http://bugreport.java.com>) after checking the Bug Database (<http://bugs.java.com>)
for duplicates. Include error messages and the following diagnostic in your report. Thank you.
com.sun.tools.javac.code.ClassFinder$BadClassFile: bad class file: /home/travis/build/junit-team/junit5/junit-jupiter-api/build/classes/kotlin/main/org/junit/jupiter/api/AssertionsKt$sam$Supplier$i$44378ebd.class
undeclared type variable: T
Please remove or make sure it appears in the correct subdirectory of the classpath.
at jdk.compiler/com.sun.tools.javac.jvm.ClassReader.badClassFile(ClassReader.java:278)
at jdk.compiler/com.sun.tools.javac.jvm.ClassReader.findTypeVar(ClassReader.java:963)
at jdk.compiler/com.sun.tools.javac.jvm.ClassReader.sigToType(ClassReader.java:670)
at jdk.compiler/com.sun.tools.javac.jvm.ClassReader.sigToType(ClassReader.java:732)
at jdk.compiler/com.sun.tools.javac.jvm.ClassReader.sigToType(ClassReader.java:656)
at jdk.compiler/com.sun.tools.javac.jvm.ClassReader.readType(ClassReader.java:499)
at jdk.compiler/com.sun.tools.javac.jvm.ClassReader$11.read(ClassReader.java:1193)
at jdk.compiler/com.sun.tools.javac.jvm.ClassReader.readAttrs(ClassReader.java:1537)
at jdk.compiler/com.sun.tools.javac.jvm.ClassReader.readMemberAttrs(ClassReader.java:1527)
at jdk.compiler/com.sun.tools.javac.jvm.ClassReader.readMethod(ClassReader.java:2391)
at jdk.compiler/com.sun.tools.javac.jvm.ClassReader.readClass(ClassReader.java:2641)
at jdk.compiler/com.sun.tools.javac.jvm.ClassReader.readClassBuffer(ClassReader.java:2706)
at jdk.compiler/com.sun.tools.javac.jvm.ClassReader.readClassFile(ClassReader.java:2719)
at jdk.compiler/com.sun.tools.javac.code.ClassFinder.fillIn(ClassFinder.java:348)
at jdk.compiler/com.sun.tools.javac.code.ClassFinder.complete(ClassFinder.java:285)
at jdk.compiler/com.sun.tools.javac.code.Symbol.complete(Symbol.java:633)
at jdk.compiler/com.sun.tools.javac.code.Symbol$ClassSymbol.complete(Symbol.java:1314)
at jdk.compiler/com.sun.tools.javac.code.Symbol$ClassSymbol.flags(Symbol.java:1248)
https://travis-ci.org/junit-team/junit5/jobs/270479723#L1179T
in this code block. Is this correct bytecode?
// access flags 0x1A
// signature <T:Ljava/lang/Throwable;>(Ljava/lang/String;Lkotlin/jvm/functions/Function0<Lkotlin/Unit;>;)TT;
// declaration: T assertThrows<T extends java.lang.Throwable>(java.lang.String, kotlin.jvm.functions.Function0<kotlin.Unit>)
private final static assertThrows(Ljava/lang/String;Lkotlin/jvm/functions/Function0;)Ljava/lang/Throwable;
@Lorg/junit/platform/commons/meta/API;(value=Lorg/junit/platform/commons/meta/API$Usage;.Experimental)
L0
LINENUMBER 84 L0
NEW org/junit/jupiter/api/AssertionsKt$assertThrows$1
DUP
ALOAD 0
INVOKESPECIAL org/junit/jupiter/api/AssertionsKt$assertThrows$1.<init> (Ljava/lang/String;)V
CHECKCAST kotlin/jvm/functions/Function0
ASTORE 3
L1
LINENUMBER 101 L1
ICONST_4
LDC "T"
INVOKESTATIC kotlin/jvm/internal/Intrinsics.reifiedOperationMarker (ILjava/lang/String;)V
LDC Ljava/lang/Throwable;.class
ALOAD 1
DUP
IFNULL L2
ASTORE 4
NEW org/junit/jupiter/api/AssertionsKt$sam$Executable$i$a4d99158
DUP
ALOAD 4
INVOKESPECIAL org/junit/jupiter/api/AssertionsKt$sam$Executable$i$a4d99158.<init> (Lkotlin/jvm/functions/Function0;)V
L2
FRAME FULL [java/lang/String kotlin/jvm/functions/Function0 T kotlin/jvm/functions/Function0] [java/lang/Class java/lang/Object]
CHECKCAST org/junit/jupiter/api/function/Executable
ALOAD 3
ASTORE 4
NEW org/junit/jupiter/api/AssertionsKt$sam$Supplier$i$a7e17ae9
DUP
ALOAD 4
INVOKESPECIAL org/junit/jupiter/api/AssertionsKt$sam$Supplier$i$a7e17ae9.<init> (Lkotlin/jvm/functions/Function0;)V
CHECKCAST java/util/function/Supplier
INVOKESTATIC org/junit/jupiter/api/Assertions.assertThrows (Ljava/lang/Class;Lorg/junit/jupiter/api/function/Executable;Ljava/util/function/Supplier;)Ljava/lang/Throwable;
DUP
LDC "Assertions.assertThrows(\u2026able), Supplier(message))"
INVOKESTATIC kotlin/jvm/internal/Intrinsics.checkExpressionValueIsNotNull (Ljava/lang/Object;Ljava/lang/String;)V
L3
LINENUMBER 84 L3
ARETURN
L4
LOCALVARIABLE message$iv Lkotlin/jvm/functions/Function0; L1 L3 3
LOCALVARIABLE $i$f$assertThrows I L1 L3 5
LOCALVARIABLE message Ljava/lang/String; L0 L4 0
LOCALVARIABLE executable Lkotlin/jvm/functions/Function0; L0 L4 1
LOCALVARIABLE $i$f$assertThrows I L0 L4 2
MAXSTACK = 5
MAXLOCALS = 6
In particular this line here:
FRAME FULL [java/lang/String kotlin/jvm/functions/Function0 T kotlin/jvm/functions/Function0] [java/lang/Class java/lang/Object]
import java.util.function.Supplier
inline fun testSupplier(noinline message: () -> String) {
Supplier(message)
}