Merge pull request #27308 from 412b/fix-java9+-ctor-call-compat

Java 9+ compilation compat nitpicks
This commit is contained in:
Patrik Nordwall 2019-07-10 15:43:13 +02:00 committed by GitHub
commit a4f090b622
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 6 additions and 5 deletions

View file

@ -116,7 +116,7 @@ class DnsExt private[akka] (val system: ExtendedActorSystem, resolverName: Strin
override def apply(r: String): ActorRef = { override def apply(r: String): ActorRef = {
val settings = val settings =
new Settings(system.settings.config.getConfig("akka.io.dns"), "async-dns") 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.log.info("Creating async dns resolver {} with manager name {}", settings.Resolver, managerName)
system.systemActorOf( system.systemActorOf(
props = Props( props = Props(
@ -163,7 +163,7 @@ class DnsExt private[akka] (val system: ExtendedActorSystem, resolverName: Strin
// System DNS resolver // System DNS resolver
val provider: DnsProvider = val provider: DnsProvider =
system.dynamicAccess.getClassFor[DnsProvider](Settings.ProviderObjectName).get.newInstance() system.dynamicAccess.createInstanceFor[DnsProvider](Settings.ProviderObjectName, Nil).get
// System DNS cache // System DNS cache
val cache: Dns = provider.cache val cache: Dns = provider.cache

View file

@ -42,14 +42,15 @@ private[akka] object Reflect {
* @param clazz the class which to instantiate an instance of * @param clazz the class which to instantiate an instance of
* @return a new instance from the default constructor of the given class * @return a new instance from the default constructor of the given class
*/ */
private[akka] def instantiate[T](clazz: Class[T]): T = private[akka] def instantiate[T](clazz: Class[T]): T = {
try clazz.newInstance val ctor = clazz.getDeclaredConstructor()
try ctor.newInstance()
catch { catch {
case _: IllegalAccessException => case _: IllegalAccessException =>
val ctor = clazz.getDeclaredConstructor()
ctor.setAccessible(true) ctor.setAccessible(true)
ctor.newInstance() ctor.newInstance()
} }
}
/** /**
* INTERNAL API * INTERNAL API