[ 
https://issues.apache.org/jira/browse/GROOVY-11770?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=18024421#comment-18024421
 ] 

Paul King edited comment on GROOVY-11770 at 10/3/25 8:18 AM:
-------------------------------------------------------------

Repeating some of the info in the source file and README.md file.

Code:
{code:groovy}
import groovy.transform.CompileStatic
import io.fabric8.kubernetes.api.model.Pod
import io.fabric8.kubernetes.api.model.batch.v1.Job

@CompileStatic
class JobController {
    def show(String jobNamespace, String jobName) {
        Job job = null
        Pod lastPod = null
        [name: jobName, job: job, lastPod: lastPod]
    }
}
{code}
Stack trace:
{noformat}
  ...
  at 
org.codehaus.groovy.ast.tools.WideningCategories.lowestUpperBound(WideningCategories.java:232)
  at 
org.codehaus.groovy.ast.tools.WideningCategories.parameterizeLowestUpperBound(WideningCategories.java:276)

  at 
org.codehaus.groovy.ast.tools.WideningCategories.lowestUpperBound(WideningCategories.java:232)
  at 
org.codehaus.groovy.ast.tools.WideningCategories.parameterizeLowestUpperBound(WideningCategories.java:276)
  ...
{noformat}

Variables:
{noformat}
icn[0/1] = 
io.fabric8.kubernetes.api.builder.VisitableBuilder<io.fabric8.kubernetes.api.model.batch.v1.Job,
 io.fabric8.kubernetes.api.model.batch.v1.JobBuilder>
    -> io.fabric8.kubernetes.api.builder.VisitableBuilder<T, V extends 
io.fabric8.kubernetes.api.builder.VisitableBuilder<T, V>>
a = io.fabric8.kubernetes.api.model.batch.v1.JobBuilder
b = io.fabric8.kubernetes.api.model.PodBuilder
lub = (io.fabric8.kubernetes.api.builder.BaseFluent
    or io.fabric8.kubernetes.api.builder.VisitableBuilder)

icn[0/3] = 
io.fabric8.kubernetes.api.builder.Editable<io.fabric8.kubernetes.api.model.batch.v1.JobBuilder>
    -> io.fabric8.kubernetes.api.builder.Editable<T>
a = io.fabric8.kubernetes.api.model.batch.v1.Job
b = io.fabric8.kubernetes.api.model.Pod
lub = (io.fabric8.kubernetes.api.builder.Editable
    or io.fabric8.kubernetes.api.model.HasMetadata
    or io.fabric8.kubernetes.api.model.Namespaced)

... repeats ...
{noformat}



was (Author: paulk):
Repeating some of the info in the source file and README.md file.

Code:
{code:groovy}
import groovy.transform.CompileStatic
import io.fabric8.kubernetes.api.model.Pod
import io.fabric8.kubernetes.api.model.batch.v1.Job

@CompileStatic
class JobController {
    def show(String jobNamespace, String jobName) {
        Job job = null
        Pod lastPod = null
        [name: jobName, job: job, lastPod: lastPod]
    }
}
{code}
Stack trace:
{noformat}
  at 
org.codehaus.groovy.ast.tools.WideningCategories.lowestUpperBound(WideningCategories.java:232)
  at 
org.codehaus.groovy.ast.tools.WideningCategories.parameterizeLowestUpperBound(WideningCategories.java:276)

  at 
org.codehaus.groovy.ast.tools.WideningCategories.lowestUpperBound(WideningCategories.java:232)
  at 
org.codehaus.groovy.ast.tools.WideningCategories.parameterizeLowestUpperBound(WideningCategories.java:276)
{noformat}

Variables:
{noformat}
icn[0/1] = 
io.fabric8.kubernetes.api.builder.VisitableBuilder<io.fabric8.kubernetes.api.model.batch.v1.Job,
 io.fabric8.kubernetes.api.model.batch.v1.JobBuilder>
    -> io.fabric8.kubernetes.api.builder.VisitableBuilder<T, V extends 
io.fabric8.kubernetes.api.builder.VisitableBuilder<T, V>>
a = io.fabric8.kubernetes.api.model.batch.v1.JobBuilder
b = io.fabric8.kubernetes.api.model.PodBuilder
lub = (io.fabric8.kubernetes.api.builder.BaseFluent
    or io.fabric8.kubernetes.api.builder.VisitableBuilder)

icn[0/3] = 
io.fabric8.kubernetes.api.builder.Editable<io.fabric8.kubernetes.api.model.batch.v1.JobBuilder>
    -> io.fabric8.kubernetes.api.builder.Editable<T>
a = io.fabric8.kubernetes.api.model.batch.v1.Job
b = io.fabric8.kubernetes.api.model.Pod
lub = (io.fabric8.kubernetes.api.builder.Editable
    or io.fabric8.kubernetes.api.model.HasMetadata
    or io.fabric8.kubernetes.api.model.Namespaced)

... repeats ...
{noformat}


> StackOverflowError processing generics for kubernetes-client library
> --------------------------------------------------------------------
>
>                 Key: GROOVY-11770
>                 URL: https://issues.apache.org/jira/browse/GROOVY-11770
>             Project: Groovy
>          Issue Type: Bug
>            Reporter: Paul King
>            Priority: Major
>
> When processing a file using the kubernetes-client library, the Groovy 
> compiler recurses endlessly parsing the generics.
> Repo:
> https://github.com/paulk-asert/kubernetes_client_stackoverflow
> This is just a reproducer which excludes Grails from this Grails issue/repo:
> https://github.com/apache/grails-core/issues/15082
> https://github.com/jdaugherty/grails-issue-stackoverflow-on-compile



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to