commit 50c5e9ee8dd124eb32af52133b0c65ad75cc2648 parent f830dd9556859526c5040f56b8653da3c952b1b4 Author: Jan Dankert <develop@jandankert.de> Date: Fri, 15 Nov 2019 00:50:32 +0100 Fix: Catch exception of failed filters. Diffstat:
modules/cms-core/model/File.class.php | | | 15 | ++++++++++++++- |
1 file changed, 14 insertions(+), 1 deletion(-)
diff --git a/modules/cms-core/model/File.class.php b/modules/cms-core/model/File.class.php @@ -19,6 +19,7 @@ namespace cms\model; // Standard Mime-Type +use cms\publish\filter\AbstractFilter; use cms\publish\PublishEdit; use cms\publish\PublishPreview; use cms\publish\PublishPublic; @@ -549,6 +550,7 @@ EOF continue; } + /** @var AbstractFilter $filter */ $filter = new $filterClassNameWithNS(); // Copy filter configuration to filter instance. @@ -560,7 +562,18 @@ EOF // Execute the filter. Logger::debug("Filtering '$this->filename' with filter '$filterName'."); - $this->value = $filter->filter( $this->value ); + + try { + + $this->value = $filter->filter( $this->value ); + } catch( \Exception $e ) { + // Filter has some undefined error. + Logger::warn( $e->getTraceAsString() ); + if ( $this->publisher instanceof PublishPublic ) + return ''; // Do not show errors on public publishing. + else + return $e->getMessage()."\n".$e->getTraceAsString(); + } } // Store in cache.