Description
Reported by Keith Simmons and gorenuru here. This is probably due to the fact that Scala Reflection API is not thread-safe for 2.10.* versions; see SI-6240 for more details.
The purposed fix is to add a lock object that is synchronized on when various data type objects make use of the reflection API (during their initializations or other places in program execution). (Longer-term, we could consider evolving this to a SparkSQL-global lock, and all calls to the reflection APi from Spark SQL should probably synchronize on it.)