Skip to content

Commit e99889a

Browse files
committed
cache scala class check results
1 parent d8e4c08 commit e99889a

File tree

1 file changed

+12
-3
lines changed

1 file changed

+12
-3
lines changed

src/main/scala/com/fasterxml/jackson/module/scala/introspect/ScalaAnnotationIntrospectorModule.scala

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -230,9 +230,18 @@ object ScalaAnnotationIntrospector extends NopAnnotationIntrospector with ValueI
230230
private def isScalaPackage(pkg: Option[Package]): Boolean =
231231
pkg.exists(_.getName.startsWith("scala."))
232232

233-
private[introspect] def isMaybeScalaBeanType(cls: Class[_]): Boolean =
234-
(cls.extendsScalaClass(ScalaAnnotationIntrospectorModule.shouldSupportScala3Classes()) || cls.hasSignature) &&
235-
!isScalaPackage(Option(cls.getPackage))
233+
private[introspect] def isMaybeScalaBeanType(cls: Class[_]): Boolean = {
234+
val key = cls.getName
235+
val flag = Option(ScalaAnnotationIntrospectorModule._scalaTypeCache.get(key)) match {
236+
case Some(flag) => flag
237+
case _ => {
238+
val flag = cls.extendsScalaClass(ScalaAnnotationIntrospectorModule.shouldSupportScala3Classes()) || cls.hasSignature
239+
ScalaAnnotationIntrospectorModule._scalaTypeCache.put(key, flag)
240+
flag
241+
}
242+
}
243+
flag && !isScalaPackage(Option(cls.getPackage))
244+
}
236245

237246
private def isScala(a: Annotated): Boolean = {
238247
a match {

0 commit comments

Comments
 (0)