Avoid access to array key that does not exist
authorphysikerwelt <wiki@physikerwelt.de>
Fri, 27 Feb 2015 21:53:56 +0000 (16:53 -0500)
committerUmherirrender <umherirrender_de.wp@web.de>
Sat, 28 Feb 2015 12:28:15 +0000 (12:28 +0000)
Accessing an array element that is not set
causes a PHP notice. This change first, checks if the
array key is present.

Bug: T91127
Change-Id: I468a95851e6acdb8186a06b0a2ac73499cc4611f

includes/Import.php

index eb2ca77..c036fbe 100644 (file)
@@ -376,12 +376,12 @@ class WikiImporter {
                $page->loadPageData( 'fromdbmaster' );
                $content = $page->getContent();
                $editInfo = $page->prepareContentForEdit( $content );
-
+               $countKey = 'title_' . $title->getPrefixedText();
                $countable = $page->isCountable( $editInfo );
-               $oldcountable = $this->countableCache['title_' . $title->getPrefixedText()];
-               if ( isset( $oldcountable ) && $countable != $oldcountable ) {
+               if ( array_key_exists( $countKey, $this->countableCache ) &&
+                       $countable != $this->countableCache[ $countKey ] ) {
                        DeferredUpdates::addUpdate( SiteStatsUpdate::factory( array(
-                               'articles' => ( (int)$countable - (int)$oldcountable )
+                               'articles' => ( (int)$countable - (int)$this->countableCache[ $countKey ] )
                        ) ) );
                }
 
@@ -477,7 +477,8 @@ class WikiImporter {
        /**
         * Retrieves the contents of the named attribute of the current element.
         * @param string $attr The name of the attribute
-        * @return string The value of the attribute or an empty string if it is not set in the current element.
+        * @return string The value of the attribute or an empty string if it is not set in the current
+        * element.
         */
        public function nodeAttribute( $attr ) {
                return $this->reader->getAttribute( $attr );