=act #19789 do not log serialization warnings for java.lang.*
This commit is contained in:
parent
c294a22d22
commit
d5eab6edef
2 changed files with 17 additions and 6 deletions
|
|
@ -420,12 +420,19 @@ class DefaultSerializationWarningSpec extends AkkaSpec(
|
||||||
ConfigFactory.parseString("akka.actor.warn-about-java-serializer-usage = on")) {
|
ConfigFactory.parseString("akka.actor.warn-about-java-serializer-usage = on")) {
|
||||||
|
|
||||||
val ser = SerializationExtension(system)
|
val ser = SerializationExtension(system)
|
||||||
|
val messagePrefix = "Using the default Java serializer for class.*"
|
||||||
|
|
||||||
"Using the default Java serializer" must {
|
"Using the default Java serializer" must {
|
||||||
|
|
||||||
"log a warning" in {
|
"log a warning when serializing classes outside of java.lang package" in {
|
||||||
EventFilter.warning(message = "Using the default Java serializer for class.*") intercept {
|
EventFilter.warning(message = messagePrefix) intercept {
|
||||||
ser.serializerFor(classOf[java.lang.Integer])
|
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])
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -246,10 +246,14 @@ class Serialization(val system: ExtendedActorSystem) extends Extension {
|
||||||
val serializerByIdentity: Map[Int, Serializer] =
|
val serializerByIdentity: Map[Int, Serializer] =
|
||||||
Map(NullSerializer.identifier -> NullSerializer) ++ serializers map { case (_, v) ⇒ (v.identifier, v) }
|
Map(NullSerializer.identifier -> NullSerializer) ++ serializers map { case (_, v) ⇒ (v.identifier, v) }
|
||||||
|
|
||||||
private def shouldWarnAboutJavaSerializer(serializedClass: Class[_], serializer: Serializer) =
|
private val isJavaSerializationWarningEnabled = settings.config.getBoolean("akka.actor.warn-about-java-serializer-usage")
|
||||||
settings.config.getBoolean("akka.actor.warn-about-java-serializer-usage") &&
|
|
||||||
|
private def shouldWarnAboutJavaSerializer(serializedClass: Class[_], serializer: Serializer) = {
|
||||||
|
isJavaSerializationWarningEnabled &&
|
||||||
serializer.isInstanceOf[JavaSerializer] &&
|
serializer.isInstanceOf[JavaSerializer] &&
|
||||||
!serializedClass.getName.startsWith("akka.")
|
!serializedClass.getName.startsWith("akka.") &&
|
||||||
|
!serializedClass.getName.startsWith("java.lang.")
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue