jenkins-bot has submitted this change and it was merged.

Change subject: (bug 44219) Avoid fatal errors when a revision doesn't exist in 
action=info
......................................................................


(bug 44219) Avoid fatal errors when a revision doesn't exist in action=info

WikiPage::getRevision() and WikiPage::getOldestRevision() may return null
when a revision does not exist; catch this in InfoAction::pageInfo().

Change-Id: If141213aedfe7c55e935105abf4415b6feced57c
---
M includes/actions/InfoAction.php
1 file changed, 46 insertions(+), 38 deletions(-)

Approvals:
  Anomie: Looks good to me, approved
  jenkins-bot: Verified



diff --git a/includes/actions/InfoAction.php b/includes/actions/InfoAction.php
index acb8c00..b990490 100644
--- a/includes/actions/InfoAction.php
+++ b/includes/actions/InfoAction.php
@@ -394,53 +394,61 @@
                $lastRev = $this->page->getRevision();
                $batch = new LinkBatch;
 
-               $firstRevUser = $firstRev->getUserText( Revision::FOR_THIS_USER 
);
-               if ( $firstRevUser !== '' ) {
-                       $batch->add( NS_USER, $firstRevUser );
-                       $batch->add( NS_USER_TALK, $firstRevUser );
+               if ( $firstRev ) {
+                       $firstRevUser = $firstRev->getUserText( 
Revision::FOR_THIS_USER );
+                       if ( $firstRevUser !== '' ) {
+                               $batch->add( NS_USER, $firstRevUser );
+                               $batch->add( NS_USER_TALK, $firstRevUser );
+                       }
                }
 
-               $lastRevUser = $lastRev->getUserText( Revision::FOR_THIS_USER );
-               if ( $lastRevUser !== '' ) {
-                       $batch->add( NS_USER, $lastRevUser );
-                       $batch->add( NS_USER_TALK, $lastRevUser );
+               if ( $lastRev ) {
+                       $lastRevUser = $lastRev->getUserText( 
Revision::FOR_THIS_USER );
+                       if ( $lastRevUser !== '' ) {
+                               $batch->add( NS_USER, $lastRevUser );
+                               $batch->add( NS_USER_TALK, $lastRevUser );
+                       }
                }
 
                $batch->execute();
 
-               // Page creator
-               $pageInfo['header-edits'][] = array(
-                       $this->msg( 'pageinfo-firstuser' ),
-                       Linker::revUserTools( $firstRev )
-               );
+               if ( $firstRev ) {
+                       // Page creator
+                       $pageInfo['header-edits'][] = array(
+                               $this->msg( 'pageinfo-firstuser' ),
+                               Linker::revUserTools( $firstRev )
+                       );
 
-               // Date of page creation
-               $pageInfo['header-edits'][] = array(
-                       $this->msg( 'pageinfo-firsttime' ),
-                       Linker::linkKnown(
-                               $title,
-                               $lang->userTimeAndDate( 
$firstRev->getTimestamp(), $user ),
-                               array(),
-                               array( 'oldid' => $firstRev->getId() )
-                       )
-               );
+                       // Date of page creation
+                       $pageInfo['header-edits'][] = array(
+                               $this->msg( 'pageinfo-firsttime' ),
+                               Linker::linkKnown(
+                                       $title,
+                                       $lang->userTimeAndDate( 
$firstRev->getTimestamp(), $user ),
+                                       array(),
+                                       array( 'oldid' => $firstRev->getId() )
+                               )
+                       );
+               }
 
-               // Latest editor
-               $pageInfo['header-edits'][] = array(
-                       $this->msg( 'pageinfo-lastuser' ),
-                       Linker::revUserTools( $lastRev )
-               );
+               if ( $lastRev ) {
+                       // Latest editor
+                       $pageInfo['header-edits'][] = array(
+                               $this->msg( 'pageinfo-lastuser' ),
+                               Linker::revUserTools( $lastRev )
+                       );
 
-               // Date of latest edit
-               $pageInfo['header-edits'][] = array(
-                       $this->msg( 'pageinfo-lasttime' ),
-                       Linker::linkKnown(
-                               $title,
-                               $lang->userTimeAndDate( 
$this->page->getTimestamp(), $user ),
-                               array(),
-                               array( 'oldid' => $this->page->getLatest() )
-                       )
-               );
+                       // Date of latest edit
+                       $pageInfo['header-edits'][] = array(
+                               $this->msg( 'pageinfo-lasttime' ),
+                               Linker::linkKnown(
+                                       $title,
+                                       $lang->userTimeAndDate( 
$this->page->getTimestamp(), $user ),
+                                       array(),
+                                       array( 'oldid' => 
$this->page->getLatest() )
+                               )
+                       );
+               }
 
                // Total number of edits
                $pageInfo['header-edits'][] = array(

-- 
To view, visit https://gerrit.wikimedia.org/r/49017
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: merged
Gerrit-Change-Id: If141213aedfe7c55e935105abf4415b6feced57c
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/core
Gerrit-Branch: master
Gerrit-Owner: IAlex <[email protected]>
Gerrit-Reviewer: Aaron Schulz <[email protected]>
Gerrit-Reviewer: Alex Monk <[email protected]>
Gerrit-Reviewer: Anomie <[email protected]>
Gerrit-Reviewer: IAlex <[email protected]>
Gerrit-Reviewer: Reedy <[email protected]>
Gerrit-Reviewer: jenkins-bot

_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits

Reply via email to