Skip to content

Error on forkedSpringBootRun task: BootRun_Decorated cannot be cast to BootRun #169

@juanituxx

Description

@juanituxx

Hello there,

First of all, thanks for the plugin and for reading my problem/issue.

I have done everything to try to mnake the plugin run with my actual SpringBoot App, but I don't manage to make it work.

Spring Boot Version: 2.7.12

I do have my openapi.gradle and common.gradle (which is loaded after on the build.gradle)

common.gradle:

buildscript {
    repositories {
        gradlePluginPortal()
        mavenCentral()
    }
    dependencies {
        classpath 'org.sonarsource.scanner.gradle:sonarqube-gradle-plugin:2.7.1'
        classpath 'gradle.plugin.com.palantir.gradle.docker:gradle-docker:0.22.1'
        classpath 'io.spring.gradle:dependency-management-plugin:1.0.2.RELEASE'
        classpath 'net.saliman:gradle-properties-plugin:1.4.6'
    }
}

apply plugin: org.gradle.api.plugins.JavaPlugin
apply plugin: io.spring.gradle.dependencymanagement.DependencyManagementPlugin
apply plugin: org.gradle.testing.jacoco.plugins.JacocoPlugin
apply plugin: org.gradle.api.plugins.quality.CheckstylePlugin
apply plugin: org.sonarqube.gradle.SonarQubePlugin
apply plugin: com.palantir.gradle.docker.PalantirDockerPlugin
apply plugin: net.saliman.gradle.plugin.properties.PropertiesPlugin

openapi.gradle:

buildscript {
    repositories {
        gradlePluginPortal()
        mavenCentral()
    }
    dependencies {
        classpath "org.springdoc.openapi-gradle-plugin:org.springdoc.openapi-gradle-plugin.gradle.plugin:1.9.0"
    }
}

apply plugin: org.springdoc.openapi.gradle.plugin.OpenApiGradlePlugin

openApi {
	apiDocsUrl.set("https://localhost:9000/api/docs")
	outputDir.set(file("docs/swagger"))
	outputFileName.set("swagger.json")
	waitTimeInSeconds.set(10)
}

build.gradle:

plugins {
    id "com.github.psxpaul.execfork" version "0.2.0"
    id "org.springframework.boot" version "${sprinbootVersion}"
}

apply from: "$rootDir/scommon/config/gradle/common.gradle"`
apply from: "$rootDir/common/config/gradle/openapi.gradle"

Project compiles perfectly, all task work, SpringBoot is able to boot application with bootRun.
BUT when I run the generateOpenApiDocs task as: gradle generateOpenApiDocs I get an error and I don't know if I'm having problems with the versions I am using or what icompatibility is going on:

Exception is:
org.gradle.api.GradleException: Could not evaluate onlyIf predicate for task ':forkedSpringBootRun'.
        at org.gradle.api.internal.tasks.execution.SkipOnlyIfTaskExecuter.execute(SkipOnlyIfTaskExecuter.java:46)
        at org.gradle.api.internal.tasks.execution.CatchExceptionTaskExecuter.execute(CatchExceptionTaskExecuter.java:36)
        at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.executeTask(EventFiringTaskExecuter.java:77)
        at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.call(EventFiringTaskExecuter.java:55)
        at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.call(EventFiringTaskExecuter.java:52)
        at org.gradle.internal.operations.DefaultBuildOperationRunner$CallableBuildOperationWorker.execute(DefaultBuildOperationRunner.java:204)
        at org.gradle.internal.operations.DefaultBuildOperationRunner$CallableBuildOperationWorker.execute(DefaultBuildOperationRunner.java:199)
        at org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute(DefaultBuildOperationRunner.java:66)
        at org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute(DefaultBuildOperationRunner.java:59)
        at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:157)
        at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:59)
        at org.gradle.internal.operations.DefaultBuildOperationRunner.call(DefaultBuildOperationRunner.java:53)
        at org.gradle.internal.operations.DefaultBuildOperationExecutor.call(DefaultBuildOperationExecutor.java:73)
        at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter.execute(EventFiringTaskExecuter.java:52)
        at org.gradle.execution.plan.LocalTaskNodeExecutor.execute(LocalTaskNodeExecutor.java:69)
        at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$InvokeNodeExecutorsAction.execute(DefaultTaskExecutionGraph.java:322)
        at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$InvokeNodeExecutorsAction.execute(DefaultTaskExecutionGraph.java:309)
        at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$BuildOperationAwareExecutionAction.execute(DefaultTaskExecutionGraph.java:302)
        at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$BuildOperationAwareExecutionAction.execute(DefaultTaskExecutionGraph.java:288)
        at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.execute(DefaultPlanExecutor.java:462)
        at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.run(DefaultPlanExecutor.java:379)
        at org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:64)
        at org.gradle.internal.concurrent.ManagedExecutorImpl$1.run(ManagedExecutorImpl.java:49)
Caused by: org.gradle.api.GradleException: Could not evaluate spec for 'Task satisfies onlyIf spec'.
        at org.gradle.api.internal.tasks.execution.SelfDescribingSpec.isSatisfiedBy(SelfDescribingSpec.java:42)
        at org.gradle.api.specs.AndSpec.findUnsatisfiedSpec(AndSpec.java:67)
        at org.gradle.api.internal.tasks.execution.DescribingAndSpec.findUnsatisfiedSpec(DescribingAndSpec.java:58)
        at org.gradle.api.internal.tasks.execution.SkipOnlyIfTaskExecuter.execute(SkipOnlyIfTaskExecuter.java:44)
        ... 22 more
Caused by: java.lang.ClassCastException: class org.springframework.boot.gradle.tasks.run.BootRun_Decorated cannot be cast to class org.springframework.boot.gradle.tasks.run.BootRun (org.springframework.boot.gradle.tasks.run.BootRun_Decorated is in unnamed module of loader org.gradle.internal.classloader.VisitableURLClassLoader @71f743d0; org.springframework.boot.gradle.tasks.run.BootRun is in unnamed module of loader org.gradle.internal.classloader.VisitableURLClassLoader @65820efd)
        at org.springdoc.openapi.gradle.plugin.OpenApiGradlePlugin.needToFork(OpenApiGradlePlugin.kt:89)
        at org.springdoc.openapi.gradle.plugin.OpenApiGradlePlugin.access$needToFork(OpenApiGradlePlugin.kt:12)
        at org.springdoc.openapi.gradle.plugin.OpenApiGradlePlugin$generate$1$forkedSpringBoot$1$1.invoke(OpenApiGradlePlugin.kt:59)
        at org.springdoc.openapi.gradle.plugin.OpenApiGradlePlugin$generate$1$forkedSpringBoot$1$1.invoke(OpenApiGradlePlugin.kt:59)
        at org.springdoc.openapi.gradle.plugin.OpenApiGradlePlugin$generate$1$forkedSpringBoot$1.invoke$lambda$0(OpenApiGradlePlugin.kt:59)
        at org.gradle.api.internal.tasks.execution.SelfDescribingSpec.isSatisfiedBy(SelfDescribingSpec.java:40)
        ... 25 more

I am not super keen in Gradle, but it seems that there might be a problem not on my side? Or what's going on any clue?

Thanks in advance for your help.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions