=act #19789 do not log serialization warnings for java.lang.*

This commit is contained in:
Wojciech Langiewicz 2016-03-07 20:51:26 +01:00
parent c294a22d22
commit d5eab6edef
2 changed files with 17 additions and 6 deletions

View file

@ -420,12 +420,19 @@ class DefaultSerializationWarningSpec extends AkkaSpec(
ConfigFactory.parseString("akka.actor.warn-about-java-serializer-usage = on")) {
val ser = SerializationExtension(system)
val messagePrefix = "Using the default Java serializer for class.*"
"Using the default Java serializer" must {
"log a warning" in {
EventFilter.warning(message = "Using the default Java serializer for class.*") intercept {
ser.serializerFor(classOf[java.lang.Integer])
"log a warning when serializing classes outside of java.lang package" in {
EventFilter.warning(message = messagePrefix) intercept {
ser.serializerFor(classOf[java.math.BigDecimal])
}
}
"not log warning when serializing classes from java.lang package" in {
EventFilter.warning(message = messagePrefix, occurrences = 0) intercept {
ser.serializerFor(classOf[java.lang.String])
}
}

View file

@ -246,10 +246,14 @@ class Serialization(val system: ExtendedActorSystem) extends Extension {
val serializerByIdentity: Map[Int, Serializer] =
Map(NullSerializer.identifier -> NullSerializer) ++ serializers map { case (_, v) (v.identifier, v) }
private def shouldWarnAboutJavaSerializer(serializedClass: Class[_], serializer: Serializer) =
settings.config.getBoolean("akka.actor.warn-about-java-serializer-usage") &&
private val isJavaSerializationWarningEnabled = settings.config.getBoolean("akka.actor.warn-about-java-serializer-usage")
private def shouldWarnAboutJavaSerializer(serializedClass: Class[_], serializer: Serializer) = {
isJavaSerializationWarningEnabled &&
serializer.isInstanceOf[JavaSerializer] &&
!serializedClass.getName.startsWith("akka.")
!serializedClass.getName.startsWith("akka.") &&
!serializedClass.getName.startsWith("java.lang.")
}
}