[ https://issues.apache.org/jira/browse/SPARK-19896?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Wenchen Fan resolved SPARK-19896. --------------------------------- Resolution: Fixed Fix Version/s: 2.2.0 Issue resolved by pull request 17318 [https://github.com/apache/spark/pull/17318] > 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 > Fix For: 2.2.0 > > > 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: issues-unsubscr...@spark.apache.org For additional commands, e-mail: issues-h...@spark.apache.org