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

Takeshi Yamamuro commented on SPARK-19896:
------------------------------------------

We probably need to fix this issue as the same way with 
https://github.com/apache/spark/pull/17188 like
https://github.com/apache/spark/compare/master...maropu:SPARK-19896

> toDS throws StackOverflowError if case classes have circular references
> -----------------------------------------------------------------------
>
>                 Key: SPARK-19896
>                 URL: https://issues.apache.org/jira/browse/SPARK-19896
>             Project: Spark
>          Issue Type: Bug
>          Components: SQL
>    Affects Versions: 2.1.0
>            Reporter: Takeshi Yamamuro
>
> If case classes have circular references below, it throws StackOverflowError;
> {code}
> scala> :pasge
> case class classA(i: Int, cls: classB)
> case class classB(cls: classA)
> scala> Seq(classA(0, null)).toDS()
> java.lang.StackOverflowError
>   at scala.reflect.internal.Symbols$Symbol.info(Symbols.scala:1494)
>   at 
> scala.reflect.runtime.JavaMirrors$JavaMirror$$anon$1.scala$reflect$runtime$SynchronizedSymbols$SynchronizedSymbol$$super$info(JavaMirrors.scala:66)
>   at 
> scala.reflect.runtime.SynchronizedSymbols$SynchronizedSymbol$$anonfun$info$1.apply(SynchronizedSymbols.scala:127)
>   at 
> scala.reflect.runtime.SynchronizedSymbols$SynchronizedSymbol$$anonfun$info$1.apply(SynchronizedSymbols.scala:127)
>   at scala.reflect.runtime.Gil$class.gilSynchronized(Gil.scala:19)
>   at scala.reflect.runtime.JavaUniverse.gilSynchronized(JavaUniverse.scala:16)
>   at 
> scala.reflect.runtime.SynchronizedSymbols$SynchronizedSymbol$class.gilSynchronizedIfNotThreadsafe(SynchronizedSymbols.scala:123)
>   at 
> scala.reflect.runtime.JavaMirrors$JavaMirror$$anon$1.gilSynchronizedIfNotThreadsafe(JavaMirrors.scala:66)
>   at 
> scala.reflect.runtime.SynchronizedSymbols$SynchronizedSymbol$class.info(SynchronizedSymbols.scala:127)
>   at 
> scala.reflect.runtime.JavaMirrors$JavaMirror$$anon$1.info(JavaMirrors.scala:66)
>   at 
> scala.reflect.internal.Mirrors$RootsBase.getModuleOrClass(Mirrors.scala:48)
>   at 
> scala.reflect.internal.Mirrors$RootsBase.getModuleOrClass(Mirrors.scala:45)
>   at 
> scala.reflect.internal.Mirrors$RootsBase.getModuleOrClass(Mirrors.scala:45)
>   at 
> scala.reflect.internal.Mirrors$RootsBase.getModuleOrClass(Mirrors.scala:45)
>   at 
> scala.reflect.internal.Mirrors$RootsBase.getModuleOrClass(Mirrors.scala:45)
> {code}



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to