diff --git a/akka-actor-tests/src/test/java/akka/actor/ActorCreationTest.java b/akka-actor-tests/src/test/java/akka/actor/ActorCreationTest.java index a319544bcc..5ee5a78d3c 100644 --- a/akka-actor-tests/src/test/java/akka/actor/ActorCreationTest.java +++ b/akka-actor-tests/src/test/java/akka/actor/ActorCreationTest.java @@ -176,21 +176,21 @@ public class ActorCreationTest extends JUnitSuite { @Test public void testWrongAnonymousInPlaceCreator() { - try { - Props.create( - Actor.class, - new Creator() { - @Override - public Actor create() throws Exception { - return null; - } - }); - assert false; - } catch (IllegalArgumentException e) { - assertEquals( - "cannot use non-static local Creator to create actors; make it static (e.g. local to a static method) or top-level", - e.getMessage()); - } + IllegalArgumentException exception = + Assert.assertThrows( + IllegalArgumentException.class, + () -> + Props.create( + Actor.class, + new Creator() { + @Override + public Actor create() throws Exception { + return null; + } + })); + assertEquals( + "cannot use non-static local Creator to create actors; make it static (e.g. local to a static method) or top-level", + exception.getMessage()); } @Test diff --git a/akka-actor-tests/src/test/scala/akka/actor/PropsCreationSpec.scala b/akka-actor-tests/src/test/scala/akka/actor/PropsCreationSpec.scala index de4ae6636c..ea4a497f3b 100644 --- a/akka-actor-tests/src/test/scala/akka/actor/PropsCreationSpec.scala +++ b/akka-actor-tests/src/test/scala/akka/actor/PropsCreationSpec.scala @@ -64,8 +64,8 @@ class PropsCreationSpec extends AkkaSpec(""" val p = Props.create(OneParamActorCreator) system.actorOf(p) } - "work with create(class, param)" in { - val p = Props.create(classOf[OneParamActor], null) + "work with create(class, creator)" in { + val p = Props.create(classOf[Actor], OneParamActorCreator) system.actorOf(p) } } diff --git a/akka-actor/src/main/scala/akka/actor/AbstractProps.scala b/akka-actor/src/main/scala/akka/actor/AbstractProps.scala index 00b5e6eddc..cfde896e00 100644 --- a/akka-actor/src/main/scala/akka/actor/AbstractProps.scala +++ b/akka-actor/src/main/scala/akka/actor/AbstractProps.scala @@ -75,6 +75,7 @@ private[akka] trait AbstractProps { * Create new Props from the given [[akka.japi.Creator]] with the type set to the given actorClass. */ def create[T <: Actor](actorClass: Class[T], creator: Creator[T]): Props = { + checkCreatorClosingOver(creator.getClass) create(classOf[CreatorConsumer], actorClass, creator) }