Suppress Java Serializer warnings when extending NoSerializationVerificationNeeded (#19963) (#20785)

This commit is contained in:
Richard Imaoka 2016-07-06 18:48:15 +09:00 committed by Konrad Malawski
parent 625413e413
commit 08aa41c818
4 changed files with 82 additions and 5 deletions

View file

@ -247,13 +247,20 @@ class Serialization(val system: ExtendedActorSystem) extends Extension {
Map(NullSerializer.identifier NullSerializer) ++ serializers map { case (_, v) (v.identifier, v) }
private val isJavaSerializationWarningEnabled = settings.config.getBoolean("akka.actor.warn-about-java-serializer-usage")
private val isWarningOnNoVerificationEnabled = settings.config.getBoolean("akka.actor.warn-on-no-serialization-verification")
private def shouldWarnAboutJavaSerializer(serializedClass: Class[_], serializer: Serializer) = {
def suppressWarningOnNonSerializationVerification(serializedClass: Class[_]) = {
//suppressed, only when warn-on-no-serialization-verification = off, and extending NoSerializationVerificationNeeded
!isWarningOnNoVerificationEnabled && classOf[NoSerializationVerificationNeeded].isAssignableFrom(serializedClass)
}
isJavaSerializationWarningEnabled &&
serializer.isInstanceOf[JavaSerializer] &&
!serializedClass.getName.startsWith("akka.") &&
!serializedClass.getName.startsWith("java.lang.")
!serializedClass.getName.startsWith("java.lang.") &&
!suppressWarningOnNonSerializationVerification(serializedClass)
}
}