Homestyx hydra
Diffusion hydra 59428f64ca2c

Fix PHP 8.1 "file_exists(null)" exception rendering AphrontStackTraceView

Description

Fix PHP 8.1 "file_exists(null)" exception rendering AphrontStackTraceView

Summary:
Passing null to file_exists() is deprecated behavior since PHP 8.1.
The already existing if ($file) check in AphrontStackTraceView implies that $file can indeed be empty.
Thus add another such check higher up in that class to avoid deprecation warnings when rendering stacktraces.

ERROR 8192: file_exists(): Passing null to parameter #1 ($filename) of type string is deprecated at [/var/www/html/phorge/arcanist/src/filesystem/Filesystem.php:1068];
  #0 file_exists(NULL) called at [<arcanist>/src/filesystem/Filesystem.php:1068];
  #1 Filesystem::pathExists(NULL) called at [<arcanist>/src/filesystem/Filesystem.php:1180];
  #2 Filesystem::assertExists(NULL) called at [<arcanist>/src/filesystem/Filesystem.php:1020];
  #3 Filesystem::isDescendant(NULL, string) called at [<phorge>/src/view/widget/AphrontStackTraceView.php:33];

Closes T15881

Test Plan: Intentionally inject an Array to string conversion bug in PhabricatorEmailPreferencesSettingsPanel (see T15881). Then visit /settings/panel/emailpreferences/. See the same stacktrace before and after applying this change, but see only a single line of output in DarkConsole / Error Log after applying this patch and not anymore numerous Passing null to parameter #1 ($filename) of type string is deprecated errors in DarkConsole / Error Log.

Reviewers: O1 Blessed Committers, speck

Reviewed By: O1 Blessed Committers, speck

Subscribers: speck, tobiaswiese, valerio.bozzolan, Matthew, Cigaryno

Maniphest Tasks: T15881

Differential Revision: https://we.phorge.it/D25728

Details

Provenance
Andre KlapperAuthored on Jul 9 2024, 6:22 PM
sirocylPushed on Wed, Oct 16, 5:49 AM
Parents
R1:c4246cf871a7: Remove unreachable return statement in AphrontFormDateControlValue
Branches
Unknown
Tags
Unknown

Event Timeline