@@ -140,11 +140,11 @@ class ScalaAnnotationIntrospectorInstance(scalaAnnotationIntrospectorModule: Sca
140140 private def _descriptorFor (clz : Class [_]): Option [BeanDescriptor ] = {
141141 val key = clz.getName
142142 val isScala = {
143- Option (ScalaAnnotationIntrospectorModule ._scalaTypeCache.get(key)) match {
143+ Option (scalaAnnotationIntrospectorModule ._scalaTypeCache.get(key)) match {
144144 case Some (result) => result
145145 case _ => {
146146 val result = clz.extendsScalaClass(config.shouldSupportScala3Classes()) || clz.hasSignature
147- ScalaAnnotationIntrospectorModule ._scalaTypeCache.put(key, result)
147+ scalaAnnotationIntrospectorModule ._scalaTypeCache.put(key, result)
148148 result
149149 }
150150 }
@@ -399,9 +399,18 @@ trait ScalaAnnotationIntrospectorModule extends JacksonModule {
399399 private def isScalaPackage (pkg : Option [Package ]): Boolean =
400400 pkg.exists(_.getName.startsWith(" scala." ))
401401
402- private [introspect] def isMaybeScalaBeanType (cls : Class [_]): Boolean =
403- (cls.extendsScalaClass(config.shouldSupportScala3Classes()) || cls.hasSignature) &&
404- ! isScalaPackage(Option (cls.getPackage))
402+ private [introspect] def isMaybeScalaBeanType (cls : Class [_]): Boolean = {
403+ val key = cls.getName
404+ val flag = Option (_scalaTypeCache.get(key)) match {
405+ case Some (result) => result
406+ case _ => {
407+ val result = cls.extendsScalaClass(config.shouldSupportScala3Classes()) || cls.hasSignature
408+ _scalaTypeCache.put(key, result)
409+ result
410+ }
411+ }
412+ flag && ! isScalaPackage(Option (cls.getPackage))
413+ }
405414
406415 private def recreateDescriptorCache (): Unit = {
407416 _descriptorCache.clear()
0 commit comments