From f98c4ce139f948db04812ed1094747522932008f Mon Sep 17 00:00:00 2001 From: kenji yoshida <6b656e6a69@gmail.com> Date: Wed, 25 Mar 2026 12:59:50 +0900 Subject: [PATCH] [2.x] Update ErrorMessageAuthenticator. Remove unnecessary reflection (#8976) --- .../ivyint/ErrorMessageAuthenticator.scala | 39 +------------------ 1 file changed, 2 insertions(+), 37 deletions(-) diff --git a/lm-ivy/src/main/scala/sbt/internal/librarymanagement/ivyint/ErrorMessageAuthenticator.scala b/lm-ivy/src/main/scala/sbt/internal/librarymanagement/ivyint/ErrorMessageAuthenticator.scala index 1aa1dfa8f..6cd53fbc7 100644 --- a/lm-ivy/src/main/scala/sbt/internal/librarymanagement/ivyint/ErrorMessageAuthenticator.scala +++ b/lm-ivy/src/main/scala/sbt/internal/librarymanagement/ivyint/ErrorMessageAuthenticator.scala @@ -1,7 +1,6 @@ package sbt.internal.librarymanagement package ivyint -import java.lang.reflect.InvocationTargetException import java.net.{ Authenticator, PasswordAuthentication } import org.apache.ivy.util.Message @@ -14,42 +13,8 @@ import org.apache.ivy.util.url.IvyAuthenticator object ErrorMessageAuthenticator { private var securityWarningLogged = false - private def originalAuthenticator: Option[Authenticator] = { - if (LMSysProp.isJavaVersion9Plus) getDefaultAuthenticator - else getTheAuthenticator - } - - private def getTheAuthenticator: Option[Authenticator] = { - withJavaReflectErrorHandling { - val field = classOf[Authenticator].getDeclaredField("theAuthenticator") - field.setAccessible(true) - Option(field.get(null).asInstanceOf[Authenticator]) - } - } - - private def getDefaultAuthenticator: Option[Authenticator] = - withJavaReflectErrorHandling { - val method = classOf[Authenticator].getDeclaredMethod("getDefault") - Option(method.invoke(null).asInstanceOf[Authenticator]) - } - - private def withJavaReflectErrorHandling[A](t: => Option[A]): Option[A] = { - try t - catch { - case e: ReflectiveOperationException => handleReflectionException(e) - case e: SecurityException => handleReflectionException(e) - case e: InvocationTargetException => handleReflectionException(e) - case e: ExceptionInInitializerError => handleReflectionException(e) - case e: IllegalArgumentException => handleReflectionException(e) - case e: NullPointerException => handleReflectionException(e) - case e: ClassCastException => handleReflectionException(e) - } - } - - private def handleReflectionException(t: Throwable) = { - Message.debug("Error occurred while getting the original authenticator: " + t.getMessage) - None - } + private def originalAuthenticator: Option[Authenticator] = + Option(Authenticator.getDefault()) private lazy val ivyOriginalField = { val field = classOf[IvyAuthenticator].getDeclaredField("original")