kelloggm / checkerframework-gradle-plugin

Gradle plugin to use the Checker Framework for Java
Apache License 2.0
66 stars 15 forks source link

Plugin crashes with Gradle 8.7 and `-PcfLocal` #269

Closed mernst closed 5 months ago

mernst commented 5 months ago

Consider an arbitrary plume-lib project. For example:

git clone https://github.com/plume-lib/bibtex-clean.git
cd bibtex-clean

This command succeeds:

./gradlew wrapper --gradle-version 8.7 && ./gradlew build

But this command fails:

./gradlew wrapper --gradle-version 8.7 && ./gradlew build -PcfLocal

Here is the relevant part of the build failure:

FAILURE: Build failed with an exception.
* What went wrong:
Could not determine the dependencies of task ':shadowJar'.
> Failed to notify dependency resolution listener.
   > org/gradle/api/internal/artifacts/dependencies/DefaultSelfResolvingDependency

And here is the relevant part of the stack trace produced by --stacktrace:

Caused by: java.lang.NoClassDefFoundError: org/gradle/api/internal/artifacts/dependencies/DefaultSelfResolvingDependency
    at org.checkerframework.gradle.plugin.CheckerFrameworkPlugin$2$_beforeResolve_closure1$_closure2.doCall$original(CheckerFrameworkPlugin.groovy:217)
    at org.checkerframework.gradle.plugin.CheckerFrameworkPlugin$2$_beforeResolve_closure1$_closure2.doCall(CheckerFrameworkPlugin.groovy)
    at jdk.internal.reflect.GeneratedMethodAccessor187.invoke(Unknown Source)
    at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at org.gradle.api.specs.internal.ClosureSpec.isSatisfiedBy(ClosureSpec.java:33)
    at org.gradle.api.internal.collections.CollectionFilter.filter(CollectionFilter.java:49)
    at org.gradle.api.internal.collections.FilteredElementSource$FilteringIterator.findNext(FilteredElementSource.java:119)
    at org.gradle.api.internal.collections.FilteredElementSource$FilteringIterator.<init>(FilteredElementSource.java:112)
    at org.gradle.api.internal.collections.FilteredElementSource.iterator(FilteredElementSource.java:158)
    at org.gradle.api.internal.collections.FilteredElementSource.isEmpty(FilteredElementSource.java:82)
    at org.gradle.api.internal.DefaultDomainObjectCollection.isEmpty(DefaultDomainObjectCollection.java:335)
    at java_util_Set$isEmpty$0.call(Unknown Source)
    at org.checkerframework.gradle.plugin.CheckerFrameworkPlugin$2$_beforeResolve_closure1.doCall$original(CheckerFrameworkPlugin.groovy:214)
    at org.checkerframework.gradle.plugin.CheckerFrameworkPlugin$2$_beforeResolve_closure1.doCall(CheckerFrameworkPlugin.groovy)
    at jdk.internal.reflect.GeneratedMethodAccessor121.invoke(Unknown Source)
    at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at org.checkerframework.gradle.plugin.CheckerFrameworkPlugin$2.beforeResolve(CheckerFrameworkPlugin.groovy:210)
    at jdk.internal.reflect.GeneratedMethodAccessor188.invoke(Unknown Source)
    at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:36)
    at org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:24)
    at org.gradle.internal.event.DefaultListenerManager$ListenerDetails.dispatch(DefaultListenerManager.java:472)
    at org.gradle.internal.event.DefaultListenerManager$ListenerDetails.dispatch(DefaultListenerManager.java:454)
    at org.gradle.internal.event.AbstractBroadcastDispatch.dispatch(AbstractBroadcastDispatch.java:83)
    ... 206 more