From 8ad38569260e72056dc77241c3f239d8db571356 Mon Sep 17 00:00:00 2001 From: Joas Schilling Date: Wed, 9 Apr 2025 09:18:17 +0200 Subject: [PATCH 1/2] fix: Improving logging of invalid parameters for activity subject and message Signed-off-by: Joas Schilling --- lib/GroupHelper.php | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/lib/GroupHelper.php b/lib/GroupHelper.php index 10d56c56c..46e651b02 100644 --- a/lib/GroupHelper.php +++ b/lib/GroupHelper.php @@ -61,6 +61,10 @@ public function addEvent(int $id, IEvent $event): void { } else { $event = $provider->parse($language, $event); } + + if ($event->isValidParsed()) { + $this->logger->info('Activity event was claimed to be parsed, but was not fully parsed by ' . get_class($provider) . ' [app: ' . $event->getApp() . ', subject: ' . $event->getSubject() . ']'); + } } catch (UnknownActivityException) { } catch (\InvalidArgumentException) { // todo 33.0.0 Log as warning @@ -71,11 +75,15 @@ public function addEvent(int $id, IEvent $event): void { } } + if ($event->isValidParsed()) { + $this->logger->info('Activity event was not parsed by any provider [app: ' . $event->getApp() . ', subject: ' . $event->getSubject() . ']'); + } + try { $this->richObjectValidator->validate($event->getRichSubject(), $event->getRichSubjectParameters()); } catch (InvalidObjectExeption $e) { $this->logger->error( - $e->getMessage(), + 'Activity event had invalid subject parameters provided [app: ' . $event->getApp() . ', subject: ' . $event->getSubject() . ']', [ 'app' => 'activity', 'exception' => $e @@ -90,7 +98,7 @@ public function addEvent(int $id, IEvent $event): void { $this->richObjectValidator->validate($event->getRichMessage(), $event->getRichMessageParameters()); } catch (InvalidObjectExeption $e) { $this->logger->error( - $e->getMessage(), + 'Activity event had invalid message parameters provided [app: ' . $event->getApp() . ', subject: ' . $event->getSubject() . ']', [ 'app' => 'activity', 'exception' => $e From 2e6501cd1a4ae9d969755e5d7f324b0eefefa9ed Mon Sep 17 00:00:00 2001 From: Joas Schilling Date: Fri, 11 Apr 2025 12:51:40 +0200 Subject: [PATCH 2/2] fix: Log with the app that should cause this Signed-off-by: Joas Schilling --- lib/GroupHelper.php | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/lib/GroupHelper.php b/lib/GroupHelper.php index 46e651b02..b44b9aa99 100644 --- a/lib/GroupHelper.php +++ b/lib/GroupHelper.php @@ -63,20 +63,20 @@ public function addEvent(int $id, IEvent $event): void { } if ($event->isValidParsed()) { - $this->logger->info('Activity event was claimed to be parsed, but was not fully parsed by ' . get_class($provider) . ' [app: ' . $event->getApp() . ', subject: ' . $event->getSubject() . ']'); + $this->logger->info('Activity event was claimed to be parsed, but was not fully parsed by ' . get_class($provider) . ' [app: ' . $event->getApp() . ', subject: ' . $event->getSubject() . ']', ['app' => $event->getApp()]); } } catch (UnknownActivityException) { } catch (\InvalidArgumentException) { // todo 33.0.0 Log as warning // todo 39.0.0 Log as error - $this->logger->debug(get_class($provider) . '::parse() threw \InvalidArgumentException which is deprecated. Throw \OCP\Activity\Exceptions\UnknownActivityException when the event is not known to your provider and otherwise handle all \InvalidArgumentException yourself.'); + $this->logger->debug(get_class($provider) . '::parse() threw \InvalidArgumentException which is deprecated. Throw \OCP\Activity\Exceptions\UnknownActivityException when the event is not known to your provider and otherwise handle all \InvalidArgumentException yourself.', ['app' => $event->getApp()]); } catch (\Throwable $e) { - $this->logger->error('Error while parsing activity event', ['exception' => $e]); + $this->logger->error('Error while parsing activity event', ['exception' => $e, 'app' => $event->getApp()]); } } if ($event->isValidParsed()) { - $this->logger->info('Activity event was not parsed by any provider [app: ' . $event->getApp() . ', subject: ' . $event->getSubject() . ']'); + $this->logger->info('Activity event was not parsed by any provider [app: ' . $event->getApp() . ', subject: ' . $event->getSubject() . ']', ['app' => $event->getApp()]); } try { @@ -85,7 +85,7 @@ public function addEvent(int $id, IEvent $event): void { $this->logger->error( 'Activity event had invalid subject parameters provided [app: ' . $event->getApp() . ', subject: ' . $event->getSubject() . ']', [ - 'app' => 'activity', + 'app' => $event->getApp(), 'exception' => $e ], ); @@ -100,7 +100,7 @@ public function addEvent(int $id, IEvent $event): void { $this->logger->error( 'Activity event had invalid message parameters provided [app: ' . $event->getApp() . ', subject: ' . $event->getSubject() . ']', [ - 'app' => 'activity', + 'app' => $event->getApp(), 'exception' => $e ], ); @@ -117,7 +117,7 @@ public function addEvent(int $id, IEvent $event): void { } if (!$event->getParsedSubject()) { - $this->logger->debug('Activity "' . $event->getRichSubject() . '" was not parsed by any provider'); + $this->logger->debug('Activity "' . $event->getRichSubject() . '" was not parsed by any provider', ['app' => $event->getApp()]); return; }