Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Performance regression in 3.43.0 with nested streams #6623

Open
danthe1st opened this issue May 23, 2024 · 4 comments
Open

Performance regression in 3.43.0 with nested streams #6623

danthe1st opened this issue May 23, 2024 · 4 comments
Assignees

Comments

@danthe1st
Copy link

danthe1st commented May 23, 2024

When compiling a class with nested streams using the nullness checker of 3.43.0, it is significantly slower than in 3.42.0.

Consider the following source code:

import java.util.List;

public class TestClass {

  public List<TargetOuter> getUserData(List<SrcOuter> input) {
    return input
        .stream()
        .map(
            c -> new TargetOuter(
                c
                    .data()
                    .stream()
                    .map(
                        inner -> new TargetInner(
                            inner.data(),
                            inner.data(),
                            inner.data(),
                            inner.data()
                        )
                    ).toList()
            )
        ).toList();
  }

  record SrcOuter(List<SrcInner> data) {
  }

  record SrcInner(int data) {
  }

  record TargetOuter(List<TargetInner> inner) {
  }

  record TargetInner(int a, int b, int c, int d) {
  }
}

Compiling that with checker-framework-3.43.0/checker/bin/javac -processor nullness TestClass.java takes more than one minute "on my machine" while it takes less than two seconds with 3.42.0.

This could be related to #979.

Expected output

With 3.42.0, I get the following

$ time ./checker-framework-3.42.0/checker/bin/javac -processor nullness src/main/java/io/github/danthe1st/checkertest/TestClass.java

real    0m1,822s
user    0m4,671s
sys     0m0,257s

Actual output

With 3.43.0, I get the following

$ time ./checker-framework-3.43.0/checker/bin/javac -processor nullness src/main/java/io/github/danthe1st/checkertest/TestClass.java

real    1m24,495s
user    1m44,309s
sys     0m0,820s

When I add a fourth parameter to TargetInner, this takes more than 3 minutes:

$ time ./checker-framework-3.43.0/checker/bin/javac -processor nullness src/main/java/io/github/danthe1st/checkertest/TestClass.java

real    3m15,223s
user    3m43,306s
sys     0m1,546s

The issue also occures in 3.44.0.

Reproducer information

I created a full reproducer using GitHub Actions here. You can view the build logs here or here for 4.44.0 (both with Maven and running from the CLI with the Checker Framework wrapper).

With GitHub Actions, compiling this class took 01:53 min with Maven and 1m51.052s without Maven.

System information

I am using Ubuntu 24.04 LTS x86_64 with a 6.8.0-31-generic kernel.

$ java -version
java version "21.0.2" 2024-01-16 LTS
Java(TM) SE Runtime Environment Oracle GraalVM 21.0.2+13.1 (build 21.0.2+13-LTS-jvmci-23.1-b30)
Java HotSpot(TM) 64-Bit Server VM Oracle GraalVM 21.0.2+13.1 (build 21.0.2+13-LTS-jvmci-23.1-b30, mixed mode, sharing)

Output with diagnostic information

When running with -version -Aversion -AprintGitProperties -verbose -AprintVerboseGenerics, I get the following output:

$ ./checker-framework-3.43.0/checker/bin/javac -version -Aversion -AprintGitProperties -verbose -AprintVerboseGenerics -processor nullness src/main/java/io/github/danthe1st/checkertest/TestClass.java
[parsing started SimpleFileObject[/home/dan1st/dev/Java/checker-test/src/main/java/io/github/danthe1st/checkertest/TestClass.java]]
[parsing completed 13ms]
[loading /modules/java.base/module-info.class]
[loading /modules/jdk.dynalink/module-info.class]
[loading /modules/com.oracle.svm.extraimage_enterprise/module-info.class]
[loading /modules/java.prefs/module-info.class]
[loading /modules/jdk.javadoc/module-info.class]
[loading /modules/org.graalvm.nativeimage/module-info.class]
[loading /modules/java.sql.rowset/module-info.class]
[loading /modules/com.oracle.graal.graal_enterprise/module-info.class]
[loading /modules/java.instrument/module-info.class]
[loading /modules/jdk.crypto.cryptoki/module-info.class]
[loading /modules/java.se/module-info.class]
[loading /modules/java.smartcardio/module-info.class]
[loading /modules/jdk.jconsole/module-info.class]
[loading /modules/java.datatransfer/module-info.class]
[loading /modules/jdk.internal.le/module-info.class]
[loading /modules/jdk.internal.vm.compiler.management/module-info.class]
[loading /modules/jdk.jshell/module-info.class]
[loading /modules/jdk.management.jfr/module-info.class]
[loading /modules/jdk.httpserver/module-info.class]
[loading /modules/jdk.jstatd/module-info.class]
[loading /modules/java.rmi/module-info.class]
[loading /modules/java.net.http/module-info.class]
[loading /modules/jdk.jdi/module-info.class]
[loading /modules/java.management/module-info.class]
[loading /modules/jdk.internal.ed/module-info.class]
[loading /modules/com.oracle.svm.enterprise.truffle/module-info.class]
[loading /modules/org.graalvm.word/module-info.class]
[loading /modules/jdk.jfr/module-info.class]
[loading /modules/jdk.nio.mapmode/module-info.class]
[loading /modules/java.compiler/module-info.class]
[loading /modules/jdk.jdwp.agent/module-info.class]
[loading /modules/jdk.accessibility/module-info.class]
[loading /modules/jdk.naming.dns/module-info.class]
[loading /modules/jdk.jartool/module-info.class]
[loading /modules/java.xml/module-info.class]
[loading /modules/jdk.unsupported/module-info.class]
[loading /modules/jdk.localedata/module-info.class]
[loading /modules/java.management.rmi/module-info.class]
[loading /modules/jdk.compiler/module-info.class]
[loading /modules/jdk.security.auth/module-info.class]
[loading /modules/jdk.jcmd/module-info.class]
[loading /modules/java.transaction.xa/module-info.class]
[loading /modules/jdk.editpad/module-info.class]
[loading /modules/java.sql/module-info.class]
[loading /modules/jdk.incubator.vector/module-info.class]
[loading /modules/jdk.management/module-info.class]
[loading /modules/jdk.unsupported.desktop/module-info.class]
[loading /modules/jdk.sctp/module-info.class]
[loading /modules/java.xml.crypto/module-info.class]
[loading /modules/jdk.random/module-info.class]
[loading /modules/jdk.management.agent/module-info.class]
[loading /modules/org.graalvm.extraimage.builder/module-info.class]
[loading /modules/java.desktop/module-info.class]
[loading /modules/jdk.security.jgss/module-info.class]
[loading /modules/jdk.attach/module-info.class]
[loading /modules/jdk.charsets/module-info.class]
[loading /modules/jdk.zipfs/module-info.class]
[loading /modules/jdk.crypto.ec/module-info.class]
[loading /modules/java.security.sasl/module-info.class]
[loading /modules/jdk.jlink/module-info.class]
[loading /modules/jdk.internal.vm.ci/module-info.class]
[loading /modules/jdk.internal.jvmstat/module-info.class]
[loading /modules/jdk.hotspot.agent/module-info.class]
[loading /modules/jdk.internal.opt/module-info.class]
[loading /modules/jdk.jpackage/module-info.class]
[loading /modules/org.graalvm.truffle.compiler/module-info.class]
[loading /modules/jdk.jdeps/module-info.class]
[loading /modules/java.naming/module-info.class]
[loading /modules/jdk.net/module-info.class]
[loading /modules/jdk.xml.dom/module-info.class]
[loading /modules/jdk.jsobject/module-info.class]
[loading /modules/jdk.internal.vm.compiler/module-info.class]
[loading /modules/java.security.jgss/module-info.class]
[loading /modules/java.scripting/module-info.class]
[loading /modules/jdk.naming.rmi/module-info.class]
[loading /modules/java.logging/module-info.class]
[loading /modules/org.graalvm.collections/module-info.class]
[search path for source files: /home/dan1st/dev/Java/checker-test/checker-framework-3.43.0/checker/dist/checker-util.jar,/home/dan1st/dev/Java/checker-test/checker-framework-3.43.0/checker/dist/checker-qual.jar,.]
[search path for class files: /usr/lib/jvm/graal21/lib/modules,/home/dan1st/dev/Java/checker-test/checker-framework-3.43.0/checker/dist/checker-util.jar,/home/dan1st/dev/Java/checker-test/checker-framework-3.43.0/checker/dist/checker-qual.jar,.]
[loading /modules/java.base/java/util/List.class]
[loading /modules/java.base/java/lang/Object.class]
[loading /modules/java.base/java/lang/Record.class]
[loading /modules/java.base/java/lang/String.class]
[loading /modules/java.base/java/lang/Deprecated.class]
[loading /modules/java.base/java/lang/annotation/Retention.class]
[loading /modules/java.base/java/lang/annotation/RetentionPolicy.class]
[loading /modules/java.base/java/lang/annotation/Target.class]
[loading /modules/java.base/jjavac 21.0.2
ava/lang/annotation/ElementType.class]
Round 1:
	input files: {io.github.danthe1st.checkertest.TestClass}
	annotations: []
	last round: false
Processor org.checkerframework.checker.nullness.NullnessChecker matches [] and returns false.
Round 2:
	input files: {}
	annotations: []
	last round: true
[checking io.github.danthe1st.checkertest.TestClass]
[loading /modules/java.base/java/io/Serializable.class]
[loading /modules/java.base/java/lang/AutoCloseable.class]
[loading /modules/java.base/java/util/SequencedCollection.class]
[loading /modules/java.base/java/util/Collection.class]
[loading /modules/java.base/java/lang/Iterable.class]
[loading /modules/java.base/java/util/stream/Stream.class]
[loading /modules/java.base/java/util/stream/BaseStream.class]
[loading /modules/java.base/java/util/function/Function.class]
[loading /home/dan1st/dev/Java/checker-test/checker-framework-3.43.0/checker/dist/checker-qual.jar(/org/checkerframework/dataflow/qual/Deterministic.class)]
[loading /home/dan1st/dev/Java/checker-test/checker-framework-3.43.0/checker/dist/checker-qual.jar(/org/checkerframework/dataflow/qual/SideEffectFree.class)]
[loading /home/dan1st/dev/Java/checker-test/checker-framework-3.43.0/checker/dist/checker-qual.jar(/org/checkerframework/dataflow/qual/Pure.class)]
[loading /home/dan1st/dev/Java/checker-test/checker-framework-3.43.0/checker/dist/checker-qual.jar(/org/checkerframework/dataflow/qual/Pure$Kind.class)]
[loading /home/dan1st/dev/Java/checker-test/checker-framework-3.43.0/checker/dist/checker-qual.jar(/org/checkerframework/dataflow/qual/Impure.class)]
[loading /home/dan1st/dev/Java/checker-test/checker-framework-3.43.0/checker/dist/checker-qual.jar(/org/checkerframework/framework/qual/AnnotatedFor.class)]
[loading /home/dan1st/dev/Java/checker-test/checker-framework-3.43.0/checker/dist/checker-qual.jar(/org/checkerframework/framework/qual/EnsuresQualifier.class)]
[loading /modules/java.base/java/lang/annotation/Repeatable.class]
[loading /home/dan1st/dev/Java/checker-test/checker-framework-3.43.0/checker/dist/checker-qual.jar(/org/checkerframework/framework/qual/EnsuresQualifier$List.class)]
[loading /home/dan1st/dev/Java/checker-test/checker-framework-3.43.0/checker/dist/checker-qual.jar(/org/checkerframework/framework/qual/EnsuresQualifierIf.class)]
[loading /home/dan1st/dev/Java/checker-test/checker-framework-3.43.0/checker/dist/checker-qual.jar(/org/checkerframework/framework/qual/EnsuresQualifierIf$List.class)]
[loading /home/dan1st/dev/Java/checker-test/checker-framework-3.43.0/checker/dist/checker-qual.jar(/org/checkerframework/framework/qual/FieldInvariant.class)]
[loading /home/dan1st/dev/Java/checker-test/checker-framework-3.43.0/checker/dist/checker-qual.jar(/org/checkerframework/framework/qual/HasQualifierParameter.class)]
[loading /home/dan1st/dev/Java/checker-test/checker-framework-3.43.0/checker/dist/checker-qual.jar(/org/checkerframework/common/reflection/qual/MethodVal.class)]
[loading /home/dan1st/dev/Java/checker-test/checker-framework-3.43.0/checker/dist/checker-qual.jar(/org/checkerframework/framework/qual/SubtypeOf.class)]
[loading /home/dan1st/dev/Java/checker-test/checker-framework-3.43.0/checker/dist/checker-qual.jar(/org/checkerframework/framework/qual/NoQualifierParameter.class)]
[loading /home/dan1st/dev/Java/checker-test/checker-framework-3.43.0/checker/dist/checker-qual.jar(/org/checkerframework/framework/qual/RequiresQualifier.class)]
[loading /home/dan1st/dev/Java/checker-test/checker-framework-3.43.0/checker/dist/checker-qual.jar(/org/checkerframework/framework/qual/RequiresQualifier$List.class)]
[loading /home/dan1st/dev/Java/checker-test/checker-framework-3.43.0/checker/dist/checker-qual.jar(/org/checkerframework/framework/qual/QualifierArgument.class)]
[loading /home/dan1st/dev/Java/checker-test/checker-framework-3.43.0/checker/dist/checker-qual.jar(/org/checkerframework/checker/nullness/qual/UnknownKeyFor.class)]
[loading /home/dan1st/dev/Java/checker-test/checker-framework-3.43.0/checker/dist/checker-qual.jar(/org/checkerframework/framework/qual/DefaultFor.class)]
[loading /home/dan1st/dev/Java/checker-test/checker-framework-3.43.0/checker/dist/checker-qual.jar(/org/checkerframework/framework/qual/TypeUseLocation.class)]
[loading /home/dan1st/dev/Java/checker-test/checker-framework-3.43.0/checker/dist/checker-qual.jar(/org/checkerframework/framework/qual/QualifierForLiterals.class)]
[loading /home/dan1st/dev/Java/checker-test/checker-framework-3.43.0/checker/dist/checker-qual.jar(/org/checkerframework/framework/qual/LiteralKind.class)]
[loading /home/dan1st/dev/Java/checker-test/checker-framework-3.43.0/checker/dist/checker-qual.jar(/org/checkerframework/checker/nullness/qual/KeyForBottom.class)]
[loading /home/dan1st/dev/Java/checker-test/checker-framework-3.43.0/checker/dist/checker-qual.jar(/org/checkerframework/framework/qual/TargetLocations.class)]
[loading /modules/java.base/java/util/Map.class]
[loading /modules/java.base/java/util/Map$Entry.class]
[loading /home/dan1st/dev/Java/checker-test/checker-framework-3.43.0/checker/dist/checker-qual.jar(/org/checkerframework/checker/nullness/qual/KeyFor.class)]
[loading /home/dan1st/dev/Java/checker-test/checker-framework-3.43.0/checker/dist/checker-qual.jar(/org/checkerframework/checker/nullness/qual/PolyKeyFor.class)]
[loading /home/dan1st/dev/Java/checker-test/checker-framework-3.43.0/checker/dist/checker-qual.jar(/org/checkerframework/framework/qual/PolymorphicQualifier.class)]
[loading /home/dan1st/dev/Java/checker-test/checker-framework-3.43.0/checker/dist/checker-qual.jar(/org/checkerframework/framework/qual/Covariant.class)]
[loading /home/dan1st/dev/Java/checker-test/checker-framework-3.43.0/checker/dist/checker-qual.jar(/org/checkerframework/dataflow/qual/TerminatesExecution.class)]
[loading /home/dan1st/dev/Java/checker-test/checker-framework-3.43.0/checker/dist/checker-qual.jar(/org/checkerframework/framework/qual/DefaultQualifier.class)]
[loading /home/dan1st/dev/Java/checker-test/checker-framework-3.43.0/checker/dist/checker-qual.jar(/org/checkerframework/framework/qual/DefaultQualifier$List.class)]
[loading /home/dan1st/dev/Java/checker-test/checker-framework-3.43.0/checker/dist/checker-qual.jar(/org/checkerframework/framework/qual/DefaultQualifierForUse.class)]
[loading /home/dan1st/dev/Java/checker-test/checker-framework-3.43.0/checker/dist/checker-qual.jar(/org/checkerframework/framework/qual/NoDefaultQualifierForUse.class)]
[loading /home/dan1st/dev/Java/checker-test/checker-framework-3.43.0/checker/dist/checker-qual.jar(/org/checkerframework/framework/qual/FromStubFile.class)]
[loading /modules/java.base/java/lang/WrongThreadException.class]
[loading /modules/java.base/java/lang/WeakPairMap.class]
[loading /modules/java.base/java/lang/WeakPairMap$Pair.class]
[loading /modules/java.base/java/lang/WeakPairMap$Pair$Weak.class]
[loading /modules/java.base/java/lang/WeakPairMap$Pair$Weak$1.class]
[loading /modules/java.base/java/lang/WeakPairMap$WeakRefPeer.class]
[loading /modules/java.base/java/lang/Void.class]
[loading /modules/java.base/java/lang/VirtualThread.class]
[loading /modules/java.base/java/lang/VirtualThread$VThreadContinuation.class]
[loading /modules/java.base/java/lang/VirtualThread$VThreadContinuation$1.class]
[loading /modules/java.base/java/lang/VirtualMachineError.class]
[loading /modules/java.base/java/lang/VersionProps.class]
[loading /modules/java.base/java/lang/VerifyError.class]
[loading /modules/java.base/java/lang/UnsupportedOperationException.class]
[loading /modules/java.base/java/lang/UnsupportedClassVersionError.class]
[loading /modules/java.base/java/lang/UnsatisfiedLinkError.class]
[loading /modules/java.base/java/lang/UnknownError.class]
[loading /modules/java.base/java/lang/TypeNotPresentException.class]
[loading /modules/java.base/java/lang/Throwable.class]
[loading /modules/java.base/java/lang/Throwable$SentinelHolder.class]
[loading /modules/java.base/java/lang/ThreadLocal.class]
[loading /modules/java.base/java/lang/ThreadLocal$ThreadLocalMap.class]
[loading /modules/java.base/java/lang/ThreadLocal$ThreadLocalMap$Entry.class]
[loading /modules/java.base/java/lang/ThreadLocal$StackWalkerHolder.class]
[loading /modules/java.base/java/lang/ThreadGroup.class]
[loading /modules/java.base/java/lang/ThreadDeath.class]
[loading /modules/java.base/java/lang/ThreadBuilders.class]
[loading /modules/java.base/java/lang/ThreadBuilders$VirtualThreadBuilder.class]
[loading /modules/java.base/java/lang/ThreadBuilders$BaseThreadBuilder.class]
[loading /modules/java.base/java/lang/Thread.class]
[loading /modules/java.base/java/lang/Thread$Constants.class]
[loading /modules/java.base/java/lang/Thread$Constants$1.class]
[loading /modules/java.base/java/lang/Thread$Caches.class]
[loading /modules/java.base/java/lang/Thread$Caches$1.class]
[loading /modules/java.base/java/lang/Thread$1.class]
[loading /modules/java.base/java/lang/Terminator.class]
[loading /modules/java.base/java/lang/Terminator$1.class]
[loading /modules/java.base/java/lang/System.class]
[loading /modules/java.base/java/lang/System$Logger.class]
[loading /modules/java.base/java/lang/System$Logger$Level.class]
[loading /modules/java.base/java/lang/System$2.class]
[loading /modules/java.base/jdk/internal/javac/PreviewFeature.class]
[loading /modules/java.base/jdk/internal/javac/PreviewFeature$Feature.class]
[loading /modules/java.base/jdk/internal/javac/PreviewFeature$JEP.class]
[loading /modules/java.base/java/lang/System$1.class]
[loading /modules/java.base/java/lang/SuppressWarnings.class]
[loading /modules/java.base/java/lang/StringUTF16.class]
[loading /modules/java.base/java/lang/StringTemplate.class]
[loading /modules/java.base/java/lang/StringTemplate$Processor.class]
[loading /modules/java.base/java/lang/StringTemplate$Processor$Linkage.class]
[loading /modules/java.base/java/lang/StringLatin1.class]
[loading /modules/java.base/java/lang/StringIndexOutOfBoundsException.class]
[loading /modules/java.base/java/lang/StringConcatHelper.class]
[loading /modules/java.base/java/lang/StringCoding.class]
[loading /modules/java.base/java/lang/StringBuilder.class]
[loading /modules/java.base/java/lang/StringBuffer.class]
[loading /modules/java.base/java/lang/StrictMath.class]
[loading /modules/java.base/java/lang/StackWalker.class]
[loading /modules/java.base/java/lang/StackTraceElement.class]
[loading /modules/java.base/java/lang/StackStreamFactory.class]
[loading /modules/java.base/java/lang/StackStreamFactory$StackFrameTraverser.class]
[loading /modules/java.base/java/lang/StackStreamFactory$StackFrameTraverser$StackFrameBuffer.class]
[loading /modules/java.base/java/lang/StackOverflowError.class]
[loading /modules/java.base/java/lang/StackFrameInfo.class]
[loading /modules/java.base/java/lang/Shutdown.class]
[loading /modules/java.base/java/lang/Short.class]
[loading /modules/java.base/java/lang/SecurityManager.class]
[loading /modules/java.base/java/lang/SecurityManager$2.class]
[loading /modules/java.base/java/lang/SecurityManager$1.class]
[loading /modules/java.base/java/lang/SecurityException.class]
[loading /modules/java.base/java/lang/ScopedValue.class]
[loading /modules/java.base/java/lang/ScopedValue$Carrier.class]
[loading /modules/java.base/java/lang/ScopedValue$Carrier$CallableAdapter.class]
[loading /modules/java.base/java/lang/SafeVarargs.class]
[loading /modules/java.base/java/lang/RuntimePermission.class]
[loading /modules/java.base/java/lang/RuntimeException.class]
[loading /modules/java.base/java/lang/Runtime.class]
[loading /modules/java.base/java/lang/Runnable.class]
[loading /modules/java.base/java/lang/ReflectiveOperationException.class]
[loading /modules/java.base/java/lang/Readable.class]
[loading /modules/java.base/java/lang/PublicMethods.class]
[loading /modules/java.base/java/lang/ProcessImpl.class]
[loading /modules/java.base/java/lang/ProcessImpl$ProcessPipeInputStream.class]
[loading /modules/java.base/java/lang/ProcessImpl$1.class]
[loading /modules/java.base/java/lang/ProcessHandleImpl.class]
[loading /modules/java.base/java/lang/ProcessHandleImpl$1.class]
[loading /modules/java.base/java/lang/ProcessHandle.class]
[loading /modules/java.base/java/lang/ProcessEnvironment.class]
[loading /modules/java.base/java/lang/ProcessEnvironment$Value.class]
[loading /modules/java.base/java/lang/ProcessEnvironment$StringValues.class]
[loading /modules/java.base/java/lang/ProcessEnvironment$StringValues$1.class]
[loading /modules/java.base/java/lang/ProcessEnvironment$StringKeySet.class]
[loading /modules/java.base/java/lang/ProcessEnvironment$StringKeySet$1.class]
[loading /modules/java.base/java/lang/ProcessEnvironment$StringEntrySet.class]
[loading /modules/java.base/java/lang/ProcessEnvironment$StringEntrySet$2.class]
[loading /modules/java.base/java/lang/ProcessEnvironment$StringEntrySet$1.class]
[loading /modules/java.base/java/lang/ProcessBuilder.class]
[loading /modules/java.base/java/lang/ProcessBuilder$Redirect.class]
[loading /modules/java.base/java/lang/ProcessBuilder$Redirect$6.class]
[loading /modules/java.base/java/lang/ProcessBuilder$Redirect$5.class]
[loading /modules/java.base/java/lang/ProcessBuilder$Redirect$4.class]
[loading /modules/java.base/java/lang/ProcessBuilder$Redirect$3.class]
[loading /modules/java.base/java/lang/ProcessBuilder$Redirect$2.class]
[loading /modules/java.base/java/lang/ProcessBuilder$Redirect$1.class]
[loading /modules/java.base/java/lang/Process.class]
[loading /modules/java.base/java/lang/Process$1.class]
[loading /modules/java.base/java/lang/PinnedThreadPrinter.class]
[loading /modules/java.base/java/lang/PinnedThreadPrinter$1.class]
[loading /modules/java.base/java/lang/Package.class]
[loading /modules/java.base/java/lang/Package$1PackageInfoProxy.class]
[loading /modules/java.base/java/lang/Override.class]
[loading /modules/java.base/java/lang/OutOfMemoryError.class]
[loading /modules/java.base/java/lang/NumberFormatException.class]
[loading /modules/java.base/java/lang/Number.class]
[loading /modules/java.base/java/lang/NullPointerException.class]
[loading /modules/java.base/java/lang/NoSuchMethodException.class]
[loading /modules/java.base/java/lang/NoSuchMethodError.class]
[loading /modules/java.base/java/lang/NoSuchFieldException.class]
[loading /modules/java.base/java/lang/NoSuchFieldError.class]
[loading /modules/java.base/java/lang/NoClassDefFoundError.class]
[loading /modules/java.base/java/lang/NegativeArraySizeException.class]
[loading /modules/java.base/java/lang/NamedPackage.class]
[loading /modules/java.base/java/lang/ModuleLayer.class]
[loading /modules/java.base/java/lang/Module.class]
[loading /modules/java.base/java/lang/Module$ArchivedData.class]
[loading /modules/java.base/java/lang/Module$1DummyModuleInfo.class]
[loading /modules/java.base/java/lang/Module$1.class]
[loading /modules/java.base/java/lang/Math.class]
[loading /modules/java.base/java/lang/MatchException.class]
[loading /modules/java.base/java/lang/Long.class]
[loading /modules/java.base/java/lang/LiveStackFrameInfo.class]
[loading /modules/java.base/java/lang/LiveStackFrame.class]
[loading /modules/java.base/java/lang/LinkageError.class]
[loading /modules/java.base/java/lang/LayerInstantiationException.class]
[loading /modules/java.base/java/lang/InterruptedException.class]
[loading /modules/java.base/java/lang/InternalError.class]
[loading /modules/java.base/java/lang/Integer.class]
[loading /modules/java.base/java/lang/InstantiationException.class]
[loading /modules/java.base/java/lang/InstantiationError.class]
[loading /modules/java.base/java/lang/InheritableThreadLocal.class]
[loading /modules/java.base/java/lang/IndexOutOfBoundsException.class]
[loading /modules/java.base/java/lang/IncompatibleClassChangeError.class]
[loading /modules/java.base/java/lang/IllegalThreadStateException.class]
[loading /modules/java.base/java/lang/IllegalStateException.class]
[loading /modules/java.base/java/lang/IllegalMonitorStateException.class]
[loading /modules/java.base/java/lang/IllegalCallerException.class]
[loading /modules/java.base/java/lang/IllegalArgumentException.class]
[loading /modules/java.base/java/lang/IllegalAccessException.class]
[loading /modules/java.base/java/lang/IllegalAccessError.class]
[loading /modules/java.base/java/lang/FunctionalInterface.class]
[loading /modules/java.base/java/lang/Float.class]
[loading /modules/java.base/java/lang/FdLibm.class]
[loading /modules/java.base/java/lang/ExceptionInInitializerError.class]
[loading /modules/java.base/java/lang/Exception.class]
[loading /modules/java.base/java/lang/Error.class]
[loading /modules/java.base/java/lang/EnumConstantNotPresentException.class]
[loading /modules/java.base/java/lang/Enum.class]
[loading /modules/java.base/java/lang/Double.class]
[loading /modules/java.base/java/lang/ConditionalSpecialCasing.class]
[loading /modules/java.base/java/lang/CompoundEnumeration.class]
[loading /modules/java.base/java/lang/Comparable.class]
[loading /modules/java.base/java/lang/Cloneable.class]
[loading /modules/java.base/java/lang/CloneNotSupportedException.class]
[loading /modules/java.base/java/lang/ClassValue.class]
[loading /modules/java.base/java/lang/ClassValue$Entry.class]
[loading /modules/java.base/java/lang/ClassValue$ClassValueMap.class]
[loading /modules/java.base/java/lang/ClassNotFoundException.class]
[loading /modules/java.base/java/lang/ClassLoader.class]
[loading /modules/java.base/java/lang/ClassLoader$1.class]
[loading /modules/java.base/java/lang/ClassFormatError.class]
[loading /modules/java.base/java/lang/ClassCircularityError.class]
[loading /modules/java.base/java/lang/ClassCastException.class]
[loading /modules/java.base/java/lang/Class.class]
[loading /modules/java.base/java/lang/Class$EnclosingMethodInfo.class]
[loading /modules/java.base/java/lang/Class$Atomic.class]
[loading /modules/java.base/java/lang/Class$AnnotationData.class]
[loading /modules/java.base/java/lang/Class$3.class]
[loading /modules/java.base/java/lang/Class$2.class]
[loading /modules/java.base/java/lang/Class$1.class]
[loading /modules/java.base/java/lang/CharacterName.class]
[loading /modules/java.base/java/lang/CharacterName$1.class]
[loading /modules/java.base/java/lang/CharacterDataUndefined.class]
[loading /modules/java.base/java/lang/CharacterDataPrivateUse.class]
[loading /modules/java.base/java/lang/CharacterDataLatin1.class]
[loading /modules/java.base/java/lang/CharacterData0E.class]
[loading /modules/java.base/java/lang/CharacterData03.class]
[loading /modules/java.base/java/lang/CharacterData02.class]
[loading /modules/java.base/java/lang/CharacterData01.class]
[loading /modules/java.base/java/lang/CharacterData00.class]
[loading /modules/java.base/java/lang/CharacterData.class]
[loading /modules/java.base/java/lang/Character.class]
[loading /modules/java.base/java/lang/Character$Subset.class]
[loading /modules/java.base/java/lang/CharSequence.class]
[loading /modules/java.base/java/lang/CharSequence$1CodePointIterator.class]
[loading /modules/java.base/java/lang/CharSequence$1CharIterator.class]
[loading /modules/java.base/java/lang/Byte.class]
[loading /modules/java.base/java/lang/BootstrapMethodError.class]
[loading /modules/java.base/java/lang/Boolean.class]
[loading /modules/java.base/java/lang/BaseVirtualThread.class]
[loading /modules/java.base/java/lang/AssertionStatusDirectives.class]
[loading /modules/java.base/java/lang/AssertionError.class]
[loading /modules/java.base/java/lang/ArrayStoreException.class]
[loading /modules/java.base/java/lang/ArrayIndexOutOfBoundsException.class]
[loading /modules/java.base/java/lang/ArithmeticException.class]
[loading /modules/java.base/java/lang/ApplicationShutdownHooks.class]
[loading /modules/java.base/java/lang/ApplicationShutdownHooks$1.class]
[loading /modules/java.base/java/lang/Appendable.class]
[loading /modules/java.base/java/lang/AbstractStringBuilder.class]
[loading /modules/java.base/java/lang/AbstractMethodError.class]
[loading /modules/java.base/java/lang/constant/Constable.class]
[loading /modules/java.base/java/lang/Enum$EnumDesc.class]
[loading /home/dan1st/dev/Java/checker-test/checker-framework-3.43.0/checker/dist/checker-qual.jar(/org/checkerframework/checker/guieffect/qual/UIPackage.class)]
[loading /modules/java.base/java/util/Vector.class]
[loading /modules/java.base/java/util/Vector$VectorSpliterator.class]
[loading /modules/java.base/java/util/Vector$Itr.class]
[loading /modules/java.base/java/util/Vector$ListItr.class]
[loading /home/dan1st/dev/Java/checker-test/checker-framework-3.43.0/checker/dist/checker-qual.jar(/org/checkerframework/checker/index/qual/GTENegativeOne.class)]
[loading /home/dan1st/dev/Java/checker-test/checker-framework-3.43.0/checker/dist/checker-qual.jar(/org/checkerframework/checker/index/qual/NonNegative.class)]
[loading /home/dan1st/dev/Java/checker-test/checker-framework-3.43.0/checker/dist/checker-qual.jar(/org/checkerframework/checker/lock/qual/GuardSatisfied.class)]
[loading /home/dan1st/dev/Java/checker-test/checker-framework-3.43.0/checker/dist/checker-qual.jar(/org/checkerframework/checker/nullness/qual/Nullable.class)]
[loading /home/dan1st/dev/Java/checker-test/checker-framework-3.43.0/checker/dist/checker-qual.jar(/org/checkerframework/checker/nullness/qual/PolyNull.class)]
[loading /home/dan1st/dev/Java/checker-test/checker-framework-3.43.0/checker/dist/checker-qual.jar(/org/checkerframework/checker/signedness/qual/PolySigned.class)]
[loading /home/dan1st/dev/Java/checker-test/checker-framework-3.43.0/checker/dist/checker-qual.jar(/org/checkerframework/checker/signedness/qual/UnknownSignedness.class)]
[loading /home/dan1st/dev/Java/checker-test/checker-framework-3.43.0/checker/dist/checker-qual.jar(/org/checkerframework/framework/qual/CFComment.class)]
[loading /modules/java.base/java/io/IOException.class]
[loading /modules/java.base/java/io/ObjectInputStream.class]
[loading /modules/java.base/java/io/StreamCorruptedException.class]
[loading /modules/java.base/java/util/function/Consumer.class]
[loading /modules/java.base/java/util/function/Predicate.class]
[loading /modules/java.base/java/util/function/UnaryOperator.class]
[loading /modules/java.base/jdk/internal/util/ArraysSupport.class]
[loading /modules/java.base/java/util/AbstractList.class]
[loading /modules/java.base/java/util/RandomAccess.class]
[loading /modules/java.base/java/util/AbstractCollection.class]
[loading /modules/java.base/java/util/AbstractList$RandomAccessSpliterator.class]
[loading /modules/java.base/java/util/AbstractList$SubList.class]
[loading /modules/java.base/java/util/AbstractList$RandomAccessSubList.class]
[loading /modules/java.base/java/util/AbstractList$ListItr.class]
[loading /modules/java.base/java/util/AbstractList$Itr.class]
[loading /modules/java.base/java/util/Comparator.class]
[loading /modules/java.base/java/util/Enumeration.class]
[loading /modules/java.base/java/util/ListIterator.class]
[loading /modules/java.base/java/util/Iterator.class]
[loading /modules/java.base/java/util/Spliterator.class]
[loading /home/dan1st/dev/Java/checker-test/checker-framework-3.43.0/checker/dist/checker-qual.jar(/org/checkerframework/framework/qual/Unused.class)]
[loading /home/dan1st/dev/Java/checker-test/checker-framework-3.43.0/checker/dist/checker-qual.jar(/org/checkerframework/checker/initialization/qual/UnknownInitialization.class)]
[loading /home/dan1st/dev/Java/checker-test/checker-framework-3.43.0/checker/dist/checker-qual.jar(/org/checkerframework/checker/initialization/qual/Initialized.class)]
[loading /home/dan1st/dev/Java/checker-test/checker-framework-3.43.0/checker/dist/checker-qual.jar(/org/checkerframework/checker/initialization/qual/UnderInitialization.class)]
[loading /home/dan1st/dev/Java/checker-test/checker-framework-3.43.0/checker/dist/checker-qual.jar(/org/checkerframework/checker/initialization/qual/NotOnlyInitialized.class)]
[loading /home/dan1st/dev/Java/checker-test/checker-framework-3.43.0/checker/dist/checker-qual.jar(/org/checkerframework/checker/initialization/qual/FBCBottom.class)]
[loading /home/dan1st/dev/Java/checker-test/checker-framework-3.43.0/checker/dist/checker-qual.jar(/org/checkerframework/checker/nullness/qual/NonNull.class)]
[loading /home/dan1st/dev/Java/checker-test/checker-framework-3.43.0/checker/dist/checker-qual.jar(/org/checkerframework/framework/qual/UpperBoundFor.class)]
[loading /home/dan1st/dev/Java/checker-test/checker-framework-3.43.0/checker/dist/checker-qual.jar(/org/checkerframework/framework/qual/TypeKind.class)]
[loading /home/dan1st/dev/Java/checker-test/checker-framework-3.43.0/checker/dist/checker-qual.jar(/org/checkerframework/checker/nullness/qual/MonotonicNonNull.class)]
[loading /home/dan1st/dev/Java/checker-test/checker-framework-3.43.0/checker/dist/checker-qual.jar(/org/checkerframework/framework/qual/MonotonicQualifier.class)]
[loading /modules/java.base/java/lang/System$LoggerFinder.class]
[loading /modules/java.base/java/lang/System$CallersHolder.class]
[loading /modules/java.base/java/lang/Class$ReflectionData.class]
[loading /modules/java.base/java/util/Arrays.class]
[loading /modules/java.base/java/util/Arrays$ArrayItr.class]
[loading /modules/java.base/java/util/Arrays$ArrayList.class]
[loading /modules/java.base/java/util/Arrays$LegacyMergeSort.class]
[loading /modules/java.base/java/util/Arrays$NaturalOrder.class]
[loading /modules/java.base/java/time/Duration.class]
[loading /modules/java.base/java/util/Objects.class]
[loading /modules/java.base/java/util/function/BooleanSupplier.class]
[loading /modules/java.base/java/util/function/Supplier.class]
[loading /modules/java.desktop/java/beans/PropertyChangeEvent.class]
[loading /modules/java.desktop/java/beans/PropertyChangeListener.class]
[loading /modules/java.base/java/io/File.class]
[loading /modules/java.base/java/io/ObjectStreamException.class]
[loading /modules/java.base/java/net/URI.class]
[loading /modules/java.base/java/nio/charset/Charset.class]
[loading /modules/java.base/java/util/ArrayList.class]
[loading /modules/java.base/java/util/Collections.class]
[loading /modules/java.base/java/util/concurrent/ConcurrentHashMap.class]
[loading /modules/java.base/java/util/concurrent/ConcurrentMap.class]
[loading /modules/java.base/java/util/concurrent/CopyOnWriteArrayList.class]
[loading /modules/java.base/java/util/concurrent/Future.class]
[loading /modules/java.base/java/util/concurrent/locks/Lock.class]
[loading /modules/java.base/java/util/concurrent/locks/ReentrantLock.class]
[loading /modules/java.base/java/util/concurrent/TimeUnit.class]
[loading /modules/java.base/java/util/EventListener.class]
[loading /modules/java.base/java/util/function/IntFunction.class]
[loading /modules/java.base/java/util/stream/StreamSupport.class]
[loading /home/dan1st/dev/Java/checker-test/checker-framework-3.43.0/checker/dist/checker-qual.jar(/org/checkerframework/common/value/qual/ArrayLen.class)]
Note: Checker Framework 3.43.0
[loading /modules/java.base/jdk/internal/vm/annotation/IntrinsicCandidate.class]
[loading /home/dan1st/dev/Java/checker-test/checker-framework-3.43.0/checker/dist/checker-qual.jar(/org/checkerframework/checker/guieffect/qual/PolyUI.class)]
[loading /home/dan1st/dev/Java/checker-test/checker-framework-3.43.0/checker/dist/checker-qual.jar(/org/checkerframework/checker/guieffect/qual/PolyUIType.class)]
[loading /home/dan1st/dev/Java/checker-test/checker-framework-3.43.0/checker/dist/checker-qual.jar(/org/checkerframework/checker/guieffect/qual/SafeEffect.class)]
[loading /home/dan1st/dev/Java/checker-test/checker-framework-3.43.0/checker/dist/checker-qual.jar(/org/checkerframework/checker/mustcall/qual/MustCall.class)]
[loading /home/dan1st/dev/Java/checker-test/checker-framework-3.43.0/checker/dist/checker-qual.jar(/org/checkerframework/checker/nullness/qual/EnsuresNonNullIf.class)]
[loading /home/dan1st/dev/Java/checker-test/checker-framework-3.43.0/checker/dist/checker-qual.jar(/org/checkerframework/framework/qual/ConditionalPostconditionAnnotation.class)]
[loading /home/dan1st/dev/Java/checker-test/checker-framework-3.43.0/checker/dist/checker-qual.jar(/org/checkerframework/checker/tainting/qual/Untainted.class)]
[loading /home/dan1st/dev/Java/checker-test/checker-framework-3.43.0/checker/dist/checker-qual.jar(/org/checkerframework/common/aliasing/qual/Unique.class)]
[loading /home/dan1st/dev/Java/checker-test/checker-framework-3.43.0/checker/dist/checker-qual.jar(/org/checkerframework/common/reflection/qual/GetClass.class)]
[loading /home/dan1st/dev/Java/checker-test/checker-framework-3.43.0/checker/dist/checker-qual.jar(/org/checkerframework/checker/nullness/qual/EnsuresNonNullIf$List.class)]
[loading /modules/java.base/java/util/Spliterators.class]
[loading /modules/java.base/java/nio/file/Files.class]
[loading /modules/java.base/java/nio/file/Path.class]
[loading /modules/java.base/java/util/WeakHashMap.class]
[loading /modules/java.base/java/util/WeakHashMap$ValueIterator.class]
[loading /modules/java.base/java/util/WeakHashMap$HashIterator.class]
[loading /modules/java.base/java/util/Vector$1.class]
[loading /modules/java.base/java/util/UnknownFormatFlagsException.class]
[loading /modules/java.base/java/util/UnknownFormatConversionException.class]
[loading /modules/java.base/java/util/UUID.class]
[loading /modules/java.base/java/util/Tripwire.class]
[loading /modules/java.base/java/util/TreeSet.class]
[loading /modules/java.base/java/util/TreeMap.class]
[loading /modules/java.base/java/util/TreeMap$ValueSpliterator.class]
[loading /modules/java.base/java/util/TreeMap$ValueIterator.class]
[loading /modules/java.base/java/util/TreeMap$PrivateEntryIterator.class]
[loading /modules/java.base/java/util/TreeMap$NavigableSubMap.class]
[loading /modules/java.base/java/util/TreeMap$NavigableSubMap$SubMapKeyIterator.class]
[loading /modules/java.base/java/util/TreeMap$NavigableSubMap$SubMapIterator.class]
[loading /modules/java.base/java/util/TreeMap$NavigableSubMap$EntrySetView.class]
[loading /modules/java.base/java/util/TooManyListenersException.class]
[loading /modules/java.base/java/util/TimerThread.class]
[loading /modules/java.base/java/util/TimerTask.class]
[loading /modules/java.base/java/util/Timer.class]
[loading /modules/java.base/java/util/TimeZone.class]
[loading /modules/java.base/java/util/TimSort.class]
[loading /modules/java.base/java/util/TaskQueue.class]
[loading /modules/java.base/java/util/StringTokenizer.class]
[loading /modules/java.base/java/util/StringJoiner.class]
[loading /modules/java.base/java/util/Stack.class]
[loading /modules/java.base/java/util/SplittableRandom.class]
[loading /modules/java.base/jdk/internal/util/random/RandomSupport.class]
[loading /modules/java.base/jdk/internal/util/random/RandomSupport$RandomGeneratorProperties.class]
[loading /modules/java.base/java/util/Spliterators$4Adapter.class]
[loading /modules/java.base/java/util/Spliterators$3Adapter.class]
[loading /modules/java.base/java/util/Spliterators$2Adapter.class]
[loading /modules/java.base/java/util/Spliterators$1Adapter.class]
[loading /modules/java.base/java/util/SortedSet.class]
[loading /modules/java.base/java/util/SortedSet$1.class]
[loading /modules/java.base/java/util/Spliterators$IteratorSpliterator.class]
[loading /modules/java.base/java/util/SortedMap.class]
[loading /modules/java.base/java/util/SimpleTimeZone.class]
[loading /modules/java.base/java/util/Set.class]
[loading /modules/java.base/java/util/ServiceLoader.class]
[loading /modules/java.base/java/util/ServiceLoader$ProviderImpl.class]
[loading /modules/java.base/java/util/ServiceLoader$ProviderImpl$2.class]
[loading /modules/java.base/java/security/PrivilegedExceptionAction.class]
[loading /modules/java.base/java/util/ServiceLoader$ProviderImpl$1.class]
[loading /modules/java.base/java/util/ServiceLoader$LazyClassPathLookupIterator.class]
[loading /modules/java.base/java/util/ServiceLoader$LazyClassPathLookupIterator$2.class]
[loading /modules/java.base/java/security/PrivilegedAction.class]
[loading /modules/java.base/java/util/ServiceLoader$Provider.class]
[loading /modules/java.base/java/util/ServiceLoader$LazyClassPathLookupIterator$1.class]
[loading /modules/java.base/java/util/ServiceLoader$3.class]
[loading /modules/java.base/java/util/ServiceLoader$2.class]
[loading /modules/java.base/java/util/ServiceLoader$1.class]
[loading /modules/java.base/java/util/ServiceConfigurationError.class]
[loading /modules/java.base/java/util/SequencedSet.class]
[loading /modules/java.base/java/util/SequencedMap.class]
[loading /modules/java.base/java/util/SequencedMap$1SeqValues.class]
[loading /modules/java.base/java/util/AbstractMap.class]
[loading /modules/java.base/java/util/AbstractMap$ViewCollection.class]
[loading /modules/java.base/java/util/SequencedMap$1SeqKeySet.class]
[loading /modules/java.base/java/util/SequencedMap$1SeqEntrySet.class]
[loading /modules/java.base/java/util/Scanner.class]
[loading /modules/java.base/java/util/Scanner$FindSpliterator.class]
[loading /modules/java.base/java/util/ReverseOrderSortedSetView.class]
[loading /modules/java.base/java/util/ReverseOrderSortedSetView$Subset.class]
[loading /modules/java.base/java/util/ReverseOrderSortedSetView$Subset$1.class]
[loading /modules/java.base/java/util/ReverseOrderSortedSetView$1.class]
[loading /modules/java.base/java/util/ReverseOrderSortedMapView.class]
[loading /modules/java.base/java/util/ReverseOrderSortedMapView$Submap.class]
[loading /modules/java.base/java/util/ReverseOrderSortedMapView$Submap$2.class]
[loading /modules/java.base/java/util/AbstractSet.class]
[loading /modules/java.base/java/util/ReverseOrderSortedMapView$Submap$1.class]
[loading /modules/java.base/java/util/ReverseOrderSortedMapView$6.class]
[loading /modules/java.base/java/util/ReverseOrderSortedMapView$5.class]
[loading /modules/java.base/java/util/ReverseOrderSortedMapView$4.class]
[loading /modules/java.base/java/util/ReverseOrderSortedMapView$3.class]
[loading /modules/java.base/java/util/ReverseOrderSortedMapView$2.class]
[loading /modules/java.base/java/util/ReverseOrderSortedMapView$1.class]
[loading /modules/java.base/java/util/ReverseOrderListView.class]
[loading /modules/java.base/java/util/ReverseOrderListView$DescendingListIterator.class]
[loading /modules/java.base/java/util/ReverseOrderDequeView.class]
[loading /modules/java.base/java/util/ResourceBundle.class]
[loading /modules/java.base/java/util/ResourceBundle$ResourceBundleProviderHelper.class]
[loading /modules/java.base/java/util/ResourceBundle$NoFallbackControl.class]
[loading /modules/java.base/java/util/ResourceBundle$KeyElementReference.class]
[loading /modules/java.base/java/util/ResourceBundle$Control.class]
[loading /modules/java.base/java/util/ResourceBundle$Control$CandidateListCache.class]
[loading /modules/java.base/java/util/ResourceBundle$Control$2.class]
[loading /modules/java.base/java/util/ResourceBundle$Control$1.class]
[loading /modules/java.base/java/util/ResourceBundle$4.class]
[loading /modules/java.base/java/util/ResourceBundle$3.class]
[loading /modules/java.base/java/util/ResourceBundle$2.class]
[loading /modules/java.base/java/util/ResourceBundle$1.class]
[loading /modules/java.base/java/util/RegularEnumSet.class]
[loading /modules/java.base/java/util/Random.class]
[loading /modules/java.base/java/util/Queue.class]
[loading /modules/java.base/java/util/PropertyResourceBundle.class]
[loading /modules/java.base/java/util/PropertyPermissionCollection.class]
[loading /modules/java.base/java/util/PropertyPermission.class]
[loading /modules/java.base/java/util/Properties.class]
[loading /modules/java.base/java/util/Properties$EntrySet.class]
[loading /modules/java.base/java/util/PriorityQueue.class]
[loading /modules/java.base/java/util/PrimitiveIterator.class]
[loading /modules/java.base/java/util/OptionalLong.class]
[loading /modules/java.base/java/util/OptionalInt.class]
[loading /modules/java.base/java/util/OptionalDouble.class]
[loading /modules/java.base/java/util/Optional.class]
[loading /modules/java.base/java/util/OctalDigits.class]
[loading /modules/java.base/java/util/Observer.class]
[loading /modules/java.base/java/util/Observable.class]
[loading /modules/java.base/java/util/NoSuchElementException.class]
[loading /modules/java.base/java/util/NavigableSet.class]
[loading /modules/java.base/java/util/NavigableMap.class]
[loading /modules/java.base/java/util/MissingResourceException.class]
[loading /modules/java.base/java/util/MissingFormatWidthException.class]
[loading /modules/java.base/java/util/MissingFormatArgumentException.class]
[loading /modules/java.base/java/util/LongSummaryStatistics.class]
[loading /modules/java.base/java/util/LocaleISOData.class]
[loading /modules/java.base/java/util/Locale.class]
[loading /modules/java.base/java/util/Locale$LanguageRange.class]
[loading /modules/java.base/java/util/Locale$IsoCountryCode.class]
[loading /modules/java.base/java/util/Locale$IsoCountryCode$3.class]
[loading /modules/java.base/java/util/Locale$IsoCountryCode$2.class]
[loading /modules/java.base/java/util/Locale$IsoCountryCode$1.class]
[loading /modules/java.base/java/util/ListResourceBundle.class]
[loading /modules/java.base/java/util/LinkedList.class]
[loading /modules/java.base/java/util/LinkedHashSet.class]
[loading /modules/java.base/java/util/LinkedHashSet$1ReverseLinkedHashSetView.class]
[loading /modules/java.base/java/util/LinkedHashMap.class]
[loading /modules/java.base/java/util/LinkedHashMap$LinkedValueIterator.class]
[loading /modules/java.base/java/util/LinkedHashMap$LinkedKeyIterator.class]
[loading /modules/java.base/java/util/LinkedHashMap$LinkedHashIterator.class]
[loading /modules/java.base/java/util/KeyValueHolder.class]
[loading /modules/java.base/java/util/JumboEnumSet.class]
[loading /modules/java.base/java/util/JapaneseImperialCalendar.class]
[loading /modules/java.base/java/util/InvalidPropertiesFormatException.class]
[loading /modules/java.base/java/util/IntSummaryStatistics.class]
[loading /modules/java.base/java/util/InputMismatchException.class]
[loading /modules/java.base/java/util/ImmutableCollections.class]
[loading /modules/java.base/java/util/ImmutableCollections$SetN.class]
[loading /modules/java.base/java/util/ImmutableCollections$SetN$SetNIterator.class]
[loading /modules/java.base/java/util/ImmutableCollections$Set12.class]
[loading /modules/java.base/java/util/ImmutableCollections$Set12$1.class]
[loading /modules/java.base/java/util/ImmutableCollections$MapN.class]
[loading /modules/java.base/java/util/ImmutableCollections$MapN$1.class]
[loading /modules/java.base/java/util/ImmutableCollections$Access.class]
[loading /modules/java.base/java/util/ImmutableCollections$Access$1.class]
[loading /modules/java.base/java/util/IllformedLocaleException.class]
[loading /modules/java.base/java/util/IllegalFormatWidthException.class]
[loading /modules/java.base/java/util/IllegalFormatPrecisionException.class]
[loading /modules/java.base/java/util/IllegalFormatFlagsException.class]
[loading /modules/java.base/java/util/IllegalFormatException.class]
[loading /modules/java.base/java/util/IllegalFormatConversionException.class]
[loading /modules/java.base/java/util/IllegalFormatCodePointException.class]
[loading /modules/java.base/java/util/IllegalFormatArgumentIndexException.class]
[loading /modules/java.base/java/util/IdentityHashMap.class]
[loading /modules/java.base/java/util/IdentityHashMap$ValueSpliterator.class]
[loading /modules/java.base/java/util/IdentityHashMap$ValueIterator.class]
[loading /modules/java.base/java/util/IdentityHashMap$KeyIterator.class]
[loading /modules/java.base/java/util/IdentityHashMap$IdentityHashMapIterator.class]
[loading /modules/java.base/java/util/IdentityHashMap$EntryIterator.class]
[loading /modules/java.base/java/util/IdentityHashMap$EntryIterator$Entry.class]
[loading /modules/java.base/java/util/HexFormat.class]
[loading /modules/java.base/java/util/HexDigits.class]
[loading /modules/java.base/java/util/Hashtable.class]
[loading /modules/java.base/java/util/Hashtable$UnsafeHolder.class]
[loading /modules/java.base/java/util/HashSet.class]
[loading /modules/java.base/java/util/HashMap.class]
[loading /modules/java.base/java/util/HashMap$ValueSpliterator.class]
[loading /modules/java.base/java/util/HashMap$ValueIterator.class]
[loading /modules/java.base/java/util/HashMap$KeyIterator.class]
[loading /modules/java.base/java/util/HashMap$HashIterator.class]
[loading /modules/java.base/java/util/GregorianCalendar.class]
[loading /modules/java.base/java/util/FormatterClosedException.class]
[loading /modules/java.base/java/util/FormatterBuilder.class]
[loading /modules/java.base/java/util/Formatter.class]
[loading /modules/java.base/java/util/FormattableFlags.class]
[loading /modules/java.base/java/util/Formattable.class]
[loading /modules/java.base/java/util/FormatProcessor.class]
[loading /modules/java.base/java/util/FormatItem.class]
[loading /modules/java.base/java/util/FormatFlagsConversionMismatchException.class]
[loading /modules/java.base/java/util/EventObject.class]
[loading /modules/java.base/java/util/EventListenerProxy.class]
[loading /modules/java.base/java/util/Enumeration$1.class]
[loading /modules/java.base/java/util/EnumSet.class]
[loading /modules/java.base/java/util/EnumMap.class]
[loading /modules/java.base/java/util/EnumMap$ValueIterator.class]
[loading /modules/java.base/java/util/EnumMap$KeyIterator.class]
[loading /modules/java.base/java/util/EnumMap$EnumMapIterator.class]
[loading /modules/java.base/java/util/EnumMap$EntryIterator.class]
[loading /modules/java.base/java/util/EnumMap$EntryIterator$Entry.class]
[loading /modules/java.base/java/util/EnumMap$1.class]
[loading /modules/java.base/java/util/EmptyStackException.class]
[loading /modules/java.base/java/util/DuplicateFormatFlagsException.class]
[loading /modules/java.base/java/util/DualPivotQuicksort.class]
[loading /modules/java.base/java/util/DualPivotQuicksort$RunMerger.class]
[loading /modules/java.base/java/util/DualPivotQuicksort$Merger.class]
[loading /modules/java.base/java/util/DoubleSummaryStatistics.class]
[loading /modules/java.base/java/util/Digits.class]
[loading /modules/java.base/java/util/Dictionary.class]
[loading /modules/java.base/java/util/Deque.class]
[loading /modules/java.base/java/util/DecimalDigits.class]
[loading /modules/java.base/java/util/Date.class]
[loading /modules/java.base/java/util/Currency.class]
[loading /modules/java.base/java/util/Currency$OtherCurrencyEntry.class]
[loading /modules/java.base/java/util/Currency$CurrencyProperty.class]
[loading /modules/java.base/java/util/Currency$1.class]
[loading /modules/java.base/java/util/ConcurrentModificationException.class]
[loading /modules/java.base/java/util/Comparators.class]
[loading /modules/java.base/java/util/ComparableTimSort.class]
[loading /modules/java.base/java/util/Collections$UnmodifiableMap.class]
[loading /modules/java.base/java/util/Collections$UnmodifiableMap$UnmodifiableEntrySet.class]
[loading /modules/java.base/java/util/Collections$UnmodifiableMap$UnmodifiableEntrySet$1.class]
[loading /modules/java.base/java/util/Collections$UnmodifiableList.class]
[loading /modules/java.base/java/util/Collections$UnmodifiableList$1.class]
[loading /modules/java.base/java/util/Collections$UnmodifiableCollection.class]
[loading /modules/java.base/java/util/Collections$UnmodifiableCollection$1.class]
[loading /modules/java.base/java/util/Collections$CheckedMap.class]
[loading /modules/java.base/java/util/Collections$CheckedMap$CheckedEntrySet.class]
[loading /modules/java.base/java/util/Collections$CheckedMap$CheckedEntrySet$1.class]
[loading /modules/java.base/java/util/Collections$CheckedList.class]
[loading /modules/java.base/java/util/Collections$CheckedList$1.class]
[loading /modules/java.base/java/util/Collections$CheckedCollection.class]
[loading /modules/java.base/java/util/Collections$CheckedCollection$1.class]
[loading /modules/java.base/java/util/Collections$3.class]
[loading /modules/java.base/java/util/Collections$2.class]
[loading /modules/java.base/java/util/Collections$1.class]
[loading /modules/java.base/java/util/CollSer.class]
[loading /modules/java.base/java/util/Calendar.class]
[loading /modules/java.base/java/util/Calendar$Builder.class]
[loading /modules/java.base/java/util/Calendar$1.class]
[loading /modules/java.base/java/util/BitSet.class]
[loading /modules/java.base/java/util/BitSet$1BitSetSpliterator.class]
[loading /modules/java.base/java/util/Base64.class]
[loading /modules/java.base/java/util/Base64$EncOutputStream.class]
[loading /modules/java.base/java/util/ArraysParallelSortHelpers.class]
[loading /modules/java.base/java/util/ArraysParallelSortHelpers$FJObject.class]
[loading /modules/java.base/java/util/ArraysParallelSortHelpers$FJObject$Merger.class]
[loading /modules/java.base/java/util/ArrayPrefixHelpers.class]
[loading /modules/java.base/java/util/ArrayList$SubList.class]
[loading /modules/java.base/java/util/ArrayList$SubList$2.class]
[loading /modules/java.base/java/util/ArrayList$SubList$1.class]
[loading /modules/java.base/java/util/ArrayDeque.class]
[loading /modules/java.base/java/util/ArrayDeque$DeqSpliterator.class]
[loading /modules/java.base/java/util/AbstractSequentialList.class]
[loading /modules/java.base/java/util/AbstractQueue.class]
[loading /modules/java.base/java/util/AbstractMap$2.class]
[loading /modules/java.base/java/util/AbstractMap$2$1.class]
[loading /modules/java.base/java/util/AbstractMap$1.class]
[loading /modules/java.base/java/util/AbstractMap$1$1.class]
[loading /modules/java.base/java/util/AbstractList$SubList$1.class]
[loading /modules/java.base/java/util/function/BiConsumer.class]
[loading /modules/java.base/java/util/function/BiFunction.class]
[loading /modules/java.base/java/util/function/BinaryOperator.class]
[loading /modules/java.base/java/util/function/DoubleConsumer.class]
[loading /modules/java.base/java/util/function/IntConsumer.class]
[loading /modules/java.base/java/util/function/LongConsumer.class]
[loading /modules/java.base/java/util/function/ToDoubleFunction.class]
[loading /modules/java.base/java/util/function/ToIntFunction.class]
[loading /modules/java.base/java/util/function/ToLongFunction.class]
[loading /modules/java.base/java/util/stream/Stream$Builder.class]
[loading /modules/java.base/java/util/stream/Collector.class]
[loading /modules/java.base/java/util/stream/IntStream.class]
[loading /modules/java.base/java/util/stream/LongStream.class]
[loading /modules/java.base/java/util/stream/DoubleStream.class]
[loading /home/dan1st/dev/Java/checker-test/checker-framework-3.43.0/checker/dist/checker-qual.jar(/org/checkerframework/checker/index/qual/IndexFor.class)]
[loading /home/dan1st/dev/Java/checker-test/checker-framework-3.43.0/checker/dist/checker-qual.jar(/org/checkerframework/checker/index/qual/IndexOrHigh.class)]
[loading /home/dan1st/dev/Java/checker-test/checker-framework-3.43.0/checker/dist/checker-qual.jar(/org/checkerframework/checker/lock/qual/ReleasesNoLocks.class)]
[loading /modules/java.base/java/lang/invoke/LambdaMetafactory.class]
[loading /modules/java.base/java/lang/invoke/MethodHandles.class]
[loading /modules/java.base/java/lang/invoke/MethodHandles$Lookup.class]
[loading /modules/java.base/java/lang/invoke/MethodType.class]
[loading /modules/java.base/java/lang/invoke/MethodHandle.class]
[loading /modules/java.base/java/lang/runtime/ObjectMethods.class]
[loading /modules/java.base/java/lang/invoke/TypeDescriptor.class]
[wrote src/main/java/io/github/danthe1st/checkertest/TestClass$SrcOuter.class]
[wrote src/main/java/io/github/danthe1st/checkertest/TestClass$SrcInner.class]
[wrote src/main/java/io/github/danthe1st/checkertest/TestClass$TargetOuter.class]
[wrote src/main/java/io/github/danthe1st/checkertest/TestClass$TargetInner.class]
[loading /modules/java.base/java/lang/invoke/CallSite.class]
[wrote src/main/java/io/github/danthe1st/checkertest/TestClass.class]
[total 107410ms]
git.branch=master
git.build.host=tern.cs.washington.edu
[email protected]
git.build.user.name=Suzanne Millstein
git.build.version=3.43.0
git.closest.tag.commit.count=7422
git.closest.tag.name=after-reformatting
git.commit.id=b687d3600a03c8e42eb9eb618479bfab864283f3
git.commit.id.abbrev=b687d36
git.commit.id.describe=after-reformatting-7422-gb687d36-dirty
git.commit.message.full=Use property instead.\n
git.commit.message.short=Use property instead.
git.commit.time=2024-05-01T11\:51\:18-0700
[email protected]
git.commit.user.name=Suzanne Millstein
git.dirty=true
git.remote.origin.url=/scratch/smillst/cf-release/interm/checker-framework
git.tags=
git.total.commit.count=18836
@smillst smillst self-assigned this May 24, 2024
@smillst
Copy link
Member

smillst commented May 24, 2024

Thanks for the detailed report. I agree this is likely related to improvements to type argument inference (#979). We'll try to see if we can speed this up.

@MichalStehlikCz
Copy link
Contributor

I encountered similar problem with reactive streams; it would be great if you are able to somehow tackle this problem even though I understand performance optimisation is always difficult.

Problems with faulty inference are reported as warning, thus easy to locate, but finding constructs that cause build to hang takes lots of time - one of our modules that contained code with nested flatMap that normally builds in 2min 30 was killed after 1 hour after upgrade from 3.42.0 to 3.46.0

@danthe1st
Copy link
Author

danthe1st commented Aug 13, 2024

@MichalStehlikCz As a workaround, try reducing nested lambda expression by extracting some code into methods. It seems like checkerframework has some sort of combinatorical explosion/time complexity issue with nested lambdas and maybe also multiple parameters.

When I experienced this issue originally, I think it was also something like 30min.

@MichalStehlikCz
Copy link
Contributor

When I found the spots, I was able to fix them by specifying explicit type parameter on last inner map / flatMap call.. finding them is what takes time

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants