diff --git a/akka-actor/src/main/scala/akka/io/Dns.scala b/akka-actor/src/main/scala/akka/io/Dns.scala index 0186903172..5d009de77f 100644 --- a/akka-actor/src/main/scala/akka/io/Dns.scala +++ b/akka-actor/src/main/scala/akka/io/Dns.scala @@ -116,7 +116,7 @@ class DnsExt private[akka] (val system: ExtendedActorSystem, resolverName: Strin override def apply(r: String): ActorRef = { val settings = new Settings(system.settings.config.getConfig("akka.io.dns"), "async-dns") - val provider = system.dynamicAccess.getClassFor[DnsProvider](settings.ProviderObjectName).get.newInstance() + val provider = system.dynamicAccess.createInstanceFor[DnsProvider](settings.ProviderObjectName, Nil).get system.log.info("Creating async dns resolver {} with manager name {}", settings.Resolver, managerName) system.systemActorOf( props = Props( @@ -163,7 +163,7 @@ class DnsExt private[akka] (val system: ExtendedActorSystem, resolverName: Strin // System DNS resolver val provider: DnsProvider = - system.dynamicAccess.getClassFor[DnsProvider](Settings.ProviderObjectName).get.newInstance() + system.dynamicAccess.createInstanceFor[DnsProvider](Settings.ProviderObjectName, Nil).get // System DNS cache val cache: Dns = provider.cache diff --git a/akka-actor/src/main/scala/akka/util/Reflect.scala b/akka-actor/src/main/scala/akka/util/Reflect.scala index 36b69ce129..c05c73c701 100644 --- a/akka-actor/src/main/scala/akka/util/Reflect.scala +++ b/akka-actor/src/main/scala/akka/util/Reflect.scala @@ -42,14 +42,15 @@ private[akka] object Reflect { * @param clazz the class which to instantiate an instance of * @return a new instance from the default constructor of the given class */ - private[akka] def instantiate[T](clazz: Class[T]): T = - try clazz.newInstance + private[akka] def instantiate[T](clazz: Class[T]): T = { + val ctor = clazz.getDeclaredConstructor() + try ctor.newInstance() catch { case _: IllegalAccessException => - val ctor = clazz.getDeclaredConstructor() ctor.setAccessible(true) ctor.newInstance() } + } /** * INTERNAL API