diff --git a/akka-actor/src/main/scala/akka/actor/AbstractProps.scala b/akka-actor/src/main/scala/akka/actor/AbstractProps.scala index e7506cb13a..e1284d3bb6 100644 --- a/akka-actor/src/main/scala/akka/actor/AbstractProps.scala +++ b/akka-actor/src/main/scala/akka/actor/AbstractProps.scala @@ -20,9 +20,15 @@ private[akka] trait AbstractProps { /** * INTERNAL API */ - private[akka] def validate(clazz: Class[_]) = - if (Modifier.isAbstract(clazz.getModifiers)) + private[akka] def validate(clazz: Class[_]): Unit = { + if (Modifier.isAbstract(clazz.getModifiers)) { throw new IllegalArgumentException(s"Actor class [${clazz.getName}] must not be abstract") + } else if (!classOf[Actor].isAssignableFrom(clazz) && + !classOf[IndirectActorProducer].isAssignableFrom(clazz)) { + throw new IllegalArgumentException( + s"Actor class [${clazz.getName}] must be subClass of akka.actor.Actor or akka.actor.IndirectActorProducer.") + } + } /** * Java API: create a Props given a class and its constructor arguments.