* Update messages.inc
[lhc/web/wiklou.git] / maintenance / dumpTextPass.php
index 8c1563a..92ab4b4 100644 (file)
  * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
  * http://www.gnu.org/copyleft/gpl.html
  *
- * @package MediaWiki
- * @subpackage SpecialPage
+ * @addtogroup SpecialPage
  */
 
 $originalDir = getcwd();
 
 require_once( 'commandLine.inc' );
-require_once( 'SpecialExport.php' );
-require_once( 'maintenance/backup.inc' );
+require_once( 'backup.inc' );
 
 /**
  * Stream wrapper around 7za filter program.
@@ -117,7 +115,7 @@ class TextPassDumper extends BackupDumper {
 
                $this->initProgress( $this->history );
 
-               $this->db =& $this->backupDb();
+               $this->db = $this->backupDb();
 
                $this->egress = new ExportProgressFilter( $this->sink, $this );
 
@@ -241,17 +239,23 @@ class TextPassDumper extends BackupDumper {
                }
                while( true ) {
                        try {
-                               return $this->doGetText( $id );
+                               $text = $this->doGetText( $id );
+                               $ex = new MWException("Graceful storage failure");
                        } catch (DBQueryError $ex) {
+                               $text = false;
+                       }
+                       if( $text === false ) {
                                $this->failures++;
                                if( $this->failures > $this->maxFailures ) {
                                        throw $ex;
                                } else {
                                        $this->progress( "Database failure $this->failures " .
-                                               "of allowed $this->maxFailures! " .
+                                               "of allowed $this->maxFailures for revision $id! " .
                                                "Pausing $this->failureTimeout seconds..." );
                                        sleep( $this->failureTimeout );
                                }
+                       } else {
+                               return $text;
                        }
                }
        }
@@ -266,6 +270,9 @@ class TextPassDumper extends BackupDumper {
                        array( 'old_id' => $id ),
                        'TextPassDumper::getText' );
                $text = Revision::getRevisionText( $row );
+               if( $text === false ) {
+                       return false;
+               }
                $stripped = str_replace( "\r", "", $text );
                $normalized = UtfNormal::cleanUp( $stripped );
                return $normalized;
@@ -368,4 +375,4 @@ END
 );
 }
 
-?>
+