From fd9a0a4fc0808b7dd890a4769705a0840c1ea9ae Mon Sep 17 00:00:00 2001 From: "scala-steward-asf[bot]" <147768647+scala-steward-asf[bot]@users.noreply.github.com> Date: Mon, 7 Oct 2024 14:10:40 +0200 Subject: [PATCH] Update scala3-library to 3.3.4 (#1506) * Update scala3-library to 3.3.4 * correctly determine logger class for Scala 3.3.4 stacktraces Co-Authored-By: Wojciech Mazur --------- Co-authored-by: scala-steward-asf[bot] <147768647+scala-steward-asf[bot]@users.noreply.github.com> Co-authored-by: Arnout Engelen Co-authored-by: Wojciech Mazur --- .../pekko/actor/typed/internal/LoggerClass.scala | 16 +++++++++++++++- project/Dependencies.scala | 2 +- 2 files changed, 16 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 6fd02e3560..6d0074aafc 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 @@ -58,7 +58,21 @@ private[pekko] object LoggerClass { if (!skip(name)) suitableClass = OptionVal.Some(clazz) idx += 1 } - suitableClass.getOrElse(default) + suitableClass match { + case OptionVal.Some(cls) => + // Fix start + val lambdaClsOwner = for { + nextCaller <- trace.lift(idx) + nextName = nextCaller.getName() + lambdaNameIdx = nextName.indexOf("$$Lambda$") + if nextName.startsWith(cls.getName()) && lambdaNameIdx > 0 + lambdaClsOwner = nextName.substring(0, lambdaNameIdx) + } yield Class.forName(lambdaClsOwner) + // TODO: can potentially guard for ClassNotFoundException, but seems unlikely + lambdaClsOwner.getOrElse(cls) + case _ => + default + } } catch { case NonFatal(_) => default } diff --git a/project/Dependencies.scala b/project/Dependencies.scala index ca1365d4a6..b49fd47268 100644 --- a/project/Dependencies.scala +++ b/project/Dependencies.scala @@ -43,7 +43,7 @@ object Dependencies { val scala212Version = "2.12.20" val scala213Version = "2.13.14" - val scala3Version = "3.3.3" + val scala3Version = "3.3.4" val allScalaVersions = Seq(scala213Version, scala212Version, scala3Version) val reactiveStreamsVersion = "1.0.4"