[ 
https://issues.apache.org/jira/browse/GROOVY-9822?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Christopher Smith updated GROOVY-9822:
--------------------------------------
    Description: 
This appears similar to GROOVY-9565, but it's happening in a context that is 
generics-free as far as I can tell. I have the following pair of files, where 
the graph-related types are from TinkerPop:

{code:groovy}
@CompileStatic
interface GremlinAccess {
    GraphTraversalSource readOnly()

    GremlinSession session()

    interface GremlinSession extends AutoCloseable {
        GraphTraversalSource traversal()
    }
}
{code}

{code:groovy}
@TupleConstructor(defaults = false)
@CompileStatic
class GraphObjectGremlinAccess implements GremlinAccess {
    final Graph graph

    @Override
    GraphTraversalSource readOnly() {
        graph.traversal().withStrategies(ReadOnlyStrategy.instance())
    }

    @Override
    GremlinSession session() {
        new PlaceboGremlinSession()
    }


    private class PlaceboGremlinSession implements GremlinSession {
        @Override
        void close() {}

        @Override
        GraphTraversalSource traversal() {
            graph.traversal()
        }
    }
}
{code}

The first file compiles without problem. The second file triggers a stack 
overflow, looping the four lines from 1870 to 1882:

{code}
Caused by: java.lang.StackOverflowError    at 
org.codehaus.groovy.ast.decompiled.DecompiledClassNode.isUsingGenerics 
(DecompiledClassNode.java:86)    at 
org.codehaus.groovy.transform.stc.StaticTypeCheckingSupport.applyGenericsContext
 (StaticTypeCheckingSupport.java:1880)    at 
org.codehaus.groovy.transform.stc.StaticTypeCheckingSupport.applyGenericsContext
 (StaticTypeCheckingSupport.java:1870)    at 
org.codehaus.groovy.transform.stc.StaticTypeCheckingSupport.applyGenericsContext
 (StaticTypeCheckingSupport.java:1827)    at 
org.codehaus.groovy.transform.stc.StaticTypeCheckingSupport.applyGenericsContext
 (StaticTypeCheckingSupport.java:1816)    at 
org.codehaus.groovy.transform.stc.StaticTypeCheckingSupport.applyGenericsContext
 (StaticTypeCheckingSupport.java:1882)
{code}

I'm attempting to trim down the example.

  was:
This appears similar to GROOVY-9565, but it's happening in a context that is 
generics-free as far as I can tell. I have the following pair of files, where 
the graph-related types are from TinkerPop:

{code:groovy}
@CompileStaticinterface GremlinAccess {
    GraphTraversalSource readOnly()

    GremlinSession session()

    interface GremlinSession extends AutoCloseable {
        GraphTraversalSource traversal()
    }
}
{code}

{code:groovy}
@TupleConstructor(defaults = false)
@CompileStatic
class GraphObjectGremlinAccess implements GremlinAccess {
    final Graph graph

    @Override
    GraphTraversalSource readOnly() {
        graph.traversal().withStrategies(ReadOnlyStrategy.instance())
    }

    @Override
    GremlinSession session() {
        new PlaceboGremlinSession()
    }


    private class PlaceboGremlinSession implements GremlinSession {
        @Override
        void close() {}

        @Override
        GraphTraversalSource traversal() {
            graph.traversal()
        }
    }
}
{code}

The first file compiles without problem. The second file triggers a stack 
overflow, looping the four lines from 1870 to 1882:

{code}
Caused by: java.lang.StackOverflowError    at 
org.codehaus.groovy.ast.decompiled.DecompiledClassNode.isUsingGenerics 
(DecompiledClassNode.java:86)    at 
org.codehaus.groovy.transform.stc.StaticTypeCheckingSupport.applyGenericsContext
 (StaticTypeCheckingSupport.java:1880)    at 
org.codehaus.groovy.transform.stc.StaticTypeCheckingSupport.applyGenericsContext
 (StaticTypeCheckingSupport.java:1870)    at 
org.codehaus.groovy.transform.stc.StaticTypeCheckingSupport.applyGenericsContext
 (StaticTypeCheckingSupport.java:1827)    at 
org.codehaus.groovy.transform.stc.StaticTypeCheckingSupport.applyGenericsContext
 (StaticTypeCheckingSupport.java:1816)    at 
org.codehaus.groovy.transform.stc.StaticTypeCheckingSupport.applyGenericsContext
 (StaticTypeCheckingSupport.java:1882)
{code}

I'm attempting to trim down the example.


> StackOverflowError in STC
> -------------------------
>
>                 Key: GROOVY-9822
>                 URL: https://issues.apache.org/jira/browse/GROOVY-9822
>             Project: Groovy
>          Issue Type: Bug
>          Components: Static compilation
>    Affects Versions: 3.0.6
>            Reporter: Christopher Smith
>            Priority: Major
>
> This appears similar to GROOVY-9565, but it's happening in a context that is 
> generics-free as far as I can tell. I have the following pair of files, where 
> the graph-related types are from TinkerPop:
> {code:groovy}
> @CompileStatic
> interface GremlinAccess {
>     GraphTraversalSource readOnly()
>     GremlinSession session()
>     interface GremlinSession extends AutoCloseable {
>         GraphTraversalSource traversal()
>     }
> }
> {code}
> {code:groovy}
> @TupleConstructor(defaults = false)
> @CompileStatic
> class GraphObjectGremlinAccess implements GremlinAccess {
>     final Graph graph
>     @Override
>     GraphTraversalSource readOnly() {
>         graph.traversal().withStrategies(ReadOnlyStrategy.instance())
>     }
>     @Override
>     GremlinSession session() {
>         new PlaceboGremlinSession()
>     }
>     private class PlaceboGremlinSession implements GremlinSession {
>         @Override
>         void close() {}
>         @Override
>         GraphTraversalSource traversal() {
>             graph.traversal()
>         }
>     }
> }
> {code}
> The first file compiles without problem. The second file triggers a stack 
> overflow, looping the four lines from 1870 to 1882:
> {code}
> Caused by: java.lang.StackOverflowError    at 
> org.codehaus.groovy.ast.decompiled.DecompiledClassNode.isUsingGenerics 
> (DecompiledClassNode.java:86)    at 
> org.codehaus.groovy.transform.stc.StaticTypeCheckingSupport.applyGenericsContext
>  (StaticTypeCheckingSupport.java:1880)    at 
> org.codehaus.groovy.transform.stc.StaticTypeCheckingSupport.applyGenericsContext
>  (StaticTypeCheckingSupport.java:1870)    at 
> org.codehaus.groovy.transform.stc.StaticTypeCheckingSupport.applyGenericsContext
>  (StaticTypeCheckingSupport.java:1827)    at 
> org.codehaus.groovy.transform.stc.StaticTypeCheckingSupport.applyGenericsContext
>  (StaticTypeCheckingSupport.java:1816)    at 
> org.codehaus.groovy.transform.stc.StaticTypeCheckingSupport.applyGenericsContext
>  (StaticTypeCheckingSupport.java:1882)
> {code}
> I'm attempting to trim down the example.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to