From 8b2df20b95cc11c6259674ee728aff0a716ca58e Mon Sep 17 00:00:00 2001 From: Frederik Bosch Date: Tue, 11 Aug 2015 11:51:06 +0200 Subject: [PATCH] FIX IntrospectionProcessor: E_NOTICE Recent merge of #608 misses check whether the trace exists at all at the specific index, leading to undefined offset. ``` E_NOTICE: Undefined offset: 3 ``` And because the while statement became unreadable (and too long), I moved it into a separate method. --- src/Monolog/Processor/IntrospectionProcessor.php | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/src/Monolog/Processor/IntrospectionProcessor.php b/src/Monolog/Processor/IntrospectionProcessor.php index afc9be9e..4912cd70 100644 --- a/src/Monolog/Processor/IntrospectionProcessor.php +++ b/src/Monolog/Processor/IntrospectionProcessor.php @@ -61,7 +61,7 @@ class IntrospectionProcessor $i = 0; - while (isset($trace[$i]['class']) || in_array($trace[$i]['function'], $this->skipFunctions)) { + while ($this->isTraceClassOrNotSkippedFunction($trace, $i)) { if (isset($trace[$i]['class'])) { foreach ($this->skipClassesPartials as $part) { if (strpos($trace[$i]['class'], $part) !== false) { @@ -90,4 +90,13 @@ class IntrospectionProcessor return $record; } + + private function isTraceClassOrNotSkippedFunction ($trace, $index) + { + if (isset($trace[$index]) === false) { + return false; + } + + return isset($trace[$index]['class']) || in_array($trace[$index]['function'], $this->skipFunctions); + } }