Просмотр исходного кода

Merge pull request #244 from Ampisoft/master

Exception converter throws getMessage on null error.
Andreas Braun 7 лет назад
Родитель
Сommit
e8eda2083a
1 измененных файлов с 8 добавлено и 5 удалено
  1. 8 5
      lib/Alcaeus/MongoDbAdapter/ExceptionConverter.php

+ 8 - 5
lib/Alcaeus/MongoDbAdapter/ExceptionConverter.php

@@ -16,6 +16,8 @@
 namespace Alcaeus\MongoDbAdapter;
 
 use MongoDB\Driver\Exception;
+use MongoDB\Driver\WriteError;
+use MongoDB\Driver\WriteResult;
 
 /**
  * @internal
@@ -44,12 +46,13 @@ class ExceptionConverter
             case Exception\BulkWriteException::class:
             case Exception\WriteException::class:
                 $writeResult = $e->getWriteResult();
-
-                if ($writeResult && $writeResult->getWriteErrors() !== []) {
+                // attempt to retrieve write error
+                if ($writeResult instanceof WriteResult && is_array($writeResult->getWriteErrors()) && $writeResult->getWriteErrors() !== []) {
                     $writeError = $writeResult->getWriteErrors()[0];
-
-                    $message = $writeError->getMessage();
-                    $code = $writeError->getCode();
+                    if ($writeError instanceof WriteError) {
+                        $message = $writeError->getMessage();
+                        $code = $writeError->getCode();
+                    }
                 }
 
                 switch ($code) {