(bug 43379) History page fail gracefully if rev_len unavailable
authorBrian Wolff <bawolff+wn@gmail.com>
Mon, 24 Dec 2012 07:20:06 +0000 (03:20 -0400)
committerGerrit Code Review <gerrit@wikimedia.org>
Mon, 24 Dec 2012 10:53:43 +0000 (10:53 +0000)
If the length of a revision is unavailable, do not show
the page size (or char difference) instead of pretending
it is 0 and showing wrong info.

Change-Id: I2b2ca3da480e9222911ff6a91f3ab1ca4a8b9ba1

includes/actions/HistoryAction.php

index 61de3b6..d68ae2b 100644 (file)
@@ -602,13 +602,16 @@ class HistoryPager extends ReverseChronologicalPager {
                        $s .= ' ' . ChangesList::flag( 'minor' );
                }
 
-               # Size is always public data
-               $prevSize = isset( $this->parentLens[$row->rev_parent_id] )
-                       ? $this->parentLens[$row->rev_parent_id]
-                       : 0;
-               $sDiff = ChangesList::showCharacterDifference( $prevSize, $rev->getSize() );
-               $fSize = Linker::formatRevisionSize($rev->getSize());
-               $s .= ' <span class="mw-changeslist-separator">. .</span> ' . "$fSize $sDiff";
+               # Sometimes rev_len isn't populated
+               if ( $rev->getSize() !== null ) {
+                       # Size is always public data
+                       $prevSize = isset( $this->parentLens[$row->rev_parent_id] )
+                               ? $this->parentLens[$row->rev_parent_id]
+                               : 0;
+                       $sDiff = ChangesList::showCharacterDifference( $prevSize, $rev->getSize() );
+                       $fSize = Linker::formatRevisionSize($rev->getSize());
+                       $s .= ' <span class="mw-changeslist-separator">. .</span> ' . "$fSize $sDiff";
+               }
 
                # Text following the character difference is added just before running hooks
                $s2 = Linker::revComment( $rev, false, true );