Fix loop
authoreileen <emcnaughton@wikimedia.org>
Sun, 21 Mar 2021 23:19:47 +0000 (12:19 +1300)
committereileen <emcnaughton@wikimedia.org>
Sun, 21 Mar 2021 23:19:47 +0000 (12:19 +1300)
It turns out that if you 'break' advanced search (in my case
I applied a patch that caused invalid sql) it enters a loop.

I really can't see why 'while' would have ever made sense here.

There is nothing to cause it to 'move along'

CRM/Core/Error.php

index 0d15f3006ee94b283981b80e2d0761598ce2f6ee..6c44df6261a3d2dbdf8153874f2fa1140524464f 100644 (file)
@@ -829,7 +829,7 @@ class CRM_Core_Error extends PEAR_ErrorStack {
     // Exception backtrace
     if ($e instanceof PEAR_Exception) {
       $ei = $e;
-      while (is_callable([$ei, 'getCause'])) {
+      if (is_callable([$ei, 'getCause'])) {
         // DB_ERROR doesn't have a getCause but does have a __call function which tricks is_callable.
         if (!$ei instanceof DB_Error) {
           if ($ei->getCause() instanceof PEAR_Error) {