From 9891e8bd078f71b84daeb29352eb8a6c7dbb2c35 Mon Sep 17 00:00:00 2001 From: PJ Fanning Date: Wed, 15 Jul 2026 14:32:44 +0100 Subject: [PATCH] avoid initializing classes via forName --- .../org/apache/pekko/actor/typed/internal/LoggerClass.scala | 2 +- .../scala/org/apache/pekko/persistence/CapabilityFlags.scala | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/actor-typed/src/main/scala/org/apache/pekko/actor/typed/internal/LoggerClass.scala b/actor-typed/src/main/scala/org/apache/pekko/actor/typed/internal/LoggerClass.scala index 94a150a0d6c..25dad67b050 100644 --- a/actor-typed/src/main/scala/org/apache/pekko/actor/typed/internal/LoggerClass.scala +++ b/actor-typed/src/main/scala/org/apache/pekko/actor/typed/internal/LoggerClass.scala @@ -70,7 +70,7 @@ private[pekko] object LoggerClass { lambdaNameIdx = nextName.indexOf("$$Lambda") if nextName.startsWith(cls.getName()) && lambdaNameIdx > 0 lambdaClsOwner = nextName.substring(0, lambdaNameIdx) - } yield Class.forName(lambdaClsOwner) + } yield Class.forName(lambdaClsOwner, false, this.getClass.getClassLoader) // TODO: can potentially guard for ClassNotFoundException, but seems unlikely lambdaClsOwner.getOrElse(cls) case _ => diff --git a/persistence-tck/src/main/scala/org/apache/pekko/persistence/CapabilityFlags.scala b/persistence-tck/src/main/scala/org/apache/pekko/persistence/CapabilityFlags.scala index a09441740f4..7738dfe2aab 100644 --- a/persistence-tck/src/main/scala/org/apache/pekko/persistence/CapabilityFlags.scala +++ b/persistence-tck/src/main/scala/org/apache/pekko/persistence/CapabilityFlags.scala @@ -19,7 +19,7 @@ sealed abstract class CapabilityFlag { private val capturedStack = new Throwable().getStackTrace .filter(_.getMethodName.startsWith("supports")) .find { el => - val clazz = Class.forName(el.getClassName) + val clazz = Class.forName(el.getClassName, false, this.getClass.getClassLoader) clazz.getDeclaredMethod(el.getMethodName).getReturnType == classOf[CapabilityFlag] } .map { _.getMethodName }