Loris
Loris copied to clipboard
[examiner] Duplicate entry error not caught, modal window has nested LORIS error page rather than helpful message
Describe the bug Modal window error has a nested LORIS error page. Also getting a DB error for duplicate entry into examiners_psc_rel table.
To Reproduce Steps to reproduce the behavior (attach screenshots if applicable):
- Go to Examiner module
- Create examiner with any site.
- Try creating another examiner with the same name/site combo
- See error
What did you expect to happen? A modal window with error saying that the examiner at that site already exists. Instead you see a modal window with an error on a LORIS webpage somethign went wrong on the backend.

Error log:
[Mon Sep 21 12:38:15.800195 2020] [php7:warn] [pid 29351] [client ::1:45476] PHP Warning: PDOStatement::execute(): SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry '28-2' for key 'PRIMARY' in /var/www/loris/php/libraries/Database.class.inc on line 424, referer: http://localhost:8080/examiner/?examiner=jess
[Mon Sep 21 12:38:15.800414 2020] [php7:notice] [pid 29351] [client ::1:45476] PHP Notice: Undefined property: PDO::$errorInfo in /var/www/loris/php/libraries/Database.class.inc on line 1512, referer: http://localhost:8080/examiner/?examiner=jess
[Mon Sep 21 12:38:15.800442 2020] [php7:notice] [pid 29351] [client ::1:45476] PHP Notice: Undefined property: PDO::$errorInfo in /var/www/loris/php/libraries/Database.class.inc on line 1513, referer: http://localhost:8080/examiner/?examiner=jess
[Mon Sep 21 12:38:15.800459 2020] [php7:notice] [pid 29351] [client ::1:45476] PHP Notice: Undefined property: PDO::$errorInfo in /var/www/loris/php/libraries/Database.class.inc on line 1514, referer: http://localhost:8080/examiner/?examiner=jess
[Mon Sep 21 12:38:15.800569 2020] [php7:notice] [pid 29351] [client ::1:45476] Could not execute INSERT INTO examiners_psc_rel SET `examinerID`=:examinerID,`centerID`=:centerID. Stack trace#0 /var/www/loris/php/libraries/Database.class.inc(252): Database->_realinsert('examiners_psc_r...', Array, true)\n#1 /var/www/loris/modules/examiner/php/examiner.class.inc(258): Database->insert('examiners_psc_r...', Array)\n#2 /var/www/loris/php/libraries/NDB_Menu_Filter_Form.class.inc(82): LORIS\\examiner\\Examiner->_process(Array)\n#3 /var/www/loris/php/libraries/LorisForm.class.inc(1432): NDB_Menu_Filter_Form->_save(Array)\n#4 /var/www/loris/php/libraries/NDB_Menu_Filter_Form.class.inc(50): LorisForm->process(Array)\n#5 /var/www/loris/php/libraries/NDB_Menu_Filter_Form.class.inc(110): NDB_Menu_Filter_Form->save()\n#6 /var/www/loris/src/Middleware/UserPageDecorationMiddleware.php(238): NDB_Menu_Filter_Form->handle(Object(Laminas\\Diactoros\\ServerRequest))\n#7 /var/www/loris/src/Middleware/PageDecorationMiddleware.php(56): LORIS\\Middleware\\UserPageDecorationMiddleware->process(Object(Laminas\\Diactoros\\ServerRequest), Object(LORIS\\examiner\\Examiner))\n#8 /var/www/loris/php/libraries/NDB_Page.class.inc(698): LORIS\\Middleware\\PageDecorationMiddleware->process(Object(Laminas\\Diactoros\\ServerRequest), Object(LORIS\\examiner\\Examiner))\n#9 /var/www/loris/php/libraries/Module.class.inc(412): NDB_Page->process(Object(Laminas\\Diactoros\\ServerRequest), Object(LORIS\\examiner\\Examiner))\n#10 /var/www/loris/src/Middleware/ResponseGenerator.php(50): Module->handle(Object(Laminas\\Diactoros\\ServerRequest))\n#11 /var/www/loris/src/Middleware/AuthMiddleware.php(63): LORIS\\Middleware\\ResponseGenerator->process(Object(Laminas\\Diactoros\\ServerRequest), Object(LORIS\\examiner\\Module))\n#12 /var/www/loris/src/Router/ModuleRouter.php(74): LORIS\\Middleware\\AuthMiddleware->process(Object(Laminas\\Diactoros\\ServerRequest), Object(LORIS\\examiner\\Module))\n#13 /var/www/loris/src/Middleware/ExceptionHandlingMiddleware.php(34): LORIS\\Router\\ModuleRouter->handle(Object(Laminas\\Diactoros\\ServerRequest))\n#14 /var/www/loris/src/Router/BaseRouter.php(112): LORIS\\Middleware\\ExceptionHandlingMiddleware->process(Object(Laminas\\Diactoros\\ServerRequest), Object(LORIS\\Router\\ModuleRouter))\n#15 /var/www/loris/src/Middleware/ResponseGenerator.php(50): LORIS\\Router\\BaseRouter->handle(Object(Laminas\\Diactoros\\ServerRequest))\n#16 /var/www/loris/src/Middleware/ContentLength.php(52): LORIS\\Middleware\\ResponseGenerator->process(Object(Laminas\\Diactoros\\ServerRequest), Object(LORIS\\Router\\BaseRouter))\n#17 /var/www/loris/htdocs/index.php(48): LORIS\\Middleware\\ContentLength->process(Object(Laminas\\Diactoros\\ServerRequest), Object(LORIS\\Router\\BaseRouter))\n#18 {main}, referer: http://localhost:8080/examiner/?examiner=jess
[Mon Sep 21 12:38:15.800717 2020] [php7:notice] [pid 29351] [client ::1:45476] Insert statement did not execute successfully: SQLSTATE: . ERROR CODE: . ERROR MESSAGE: #0 /var/www/loris/php/libraries/Database.class.inc(252): Database->_realinsert('examiners_psc_r...', Array, true)\n#1 /var/www/loris/modules/examiner/php/examiner.class.inc(258): Database->insert('examiners_psc_r...', Array)\n#2 /var/www/loris/php/libraries/NDB_Menu_Filter_Form.class.inc(82): LORIS\\examiner\\Examiner->_process(Array)\n#3 /var/www/loris/php/libraries/LorisForm.class.inc(1432): NDB_Menu_Filter_Form->_save(Array)\n#4 /var/www/loris/php/libraries/NDB_Menu_Filter_Form.class.inc(50): LorisForm->process(Array)\n#5 /var/www/loris/php/libraries/NDB_Menu_Filter_Form.class.inc(110): NDB_Menu_Filter_Form->save()\n#6 /var/www/loris/src/Middleware/UserPageDecorationMiddleware.php(238): NDB_Menu_Filter_Form->handle(Object(Laminas\\Diactoros\\ServerRequest))\n#7 /var/www/loris/src/Middleware/PageDecorationMiddleware.php(56): LORIS\\Middleware\\UserPageDecorationMiddleware->process(Object(Laminas\\Diactoros\\ServerRequest), Object(LORIS\\examiner\\Examiner))\n#8 /var/www/loris/php/libraries/NDB_Page.class.inc(698): LORIS\\Middleware\\PageDecorationMiddleware->process(Object(Laminas\\Diactoros\\ServerRequest), Object(LORIS\\examiner\\Examiner))\n#9 /var/www/loris/php/libraries/Module.class.inc(412): NDB_Page->process(Object(Laminas\\Diactoros\\ServerRequest), Object(LORIS\\examiner\\Examiner))\n#10 /var/www/loris/src/Middleware/ResponseGenerator.php(50): Module->handle(Object(Laminas\\Diactoros\\ServerRequest))\n#11 /var/www/loris/src/Middleware/AuthMiddleware.php(63): LORIS\\Middleware\\ResponseGenerator->process(Object(Laminas\\Diactoros\\ServerRequest), Object(LORIS\\examiner\\Module))\n#12 /var/www/loris/src/Router/ModuleRouter.php(74): LORIS\\Middleware\\AuthMiddleware->process(Object(Laminas\\Diactoros\\ServerRequest), Object(LORIS\\examiner\\Module))\n#13 /var/www/loris/src/Middleware/ExceptionHandlingMiddleware.php(34): LORIS\\Router\\ModuleRouter->handle(Object(Laminas\\Diactoros\\ServerRequest))\n#14 /var/www/loris/src/Router/BaseRouter.php(112): LORIS\\Middleware\\ExceptionHandlingMiddleware->process(Object(Laminas\\Diactoros\\ServerRequest), Object(LORIS\\Router\\ModuleRouter))\n#15 /var/www/loris/src/Middleware/ResponseGenerator.php(50): LORIS\\Router\\BaseRouter->handle(Object(Laminas\\Diactoros\\ServerRequest))\n#16 /var/www/loris/src/Middleware/ContentLength.php(52): LORIS\\Middleware\\ResponseGenerator->process(Object(Laminas\\Diactoros\\ServerRequest), Object(LORIS\\Router\\BaseRouter))\n#17 /var/www/loris/htdocs/index.php(48): LORIS\\Middleware\\ContentLength->process(Object(Laminas\\Diactoros\\ServerRequest), Object(LORIS\\Router\\BaseRouter))\n#18 {main}, referer: http://localhost:8080/examiner/?examiner=jess
@CamilleBeau, I have tested this issue and it seems solved already.