* (bug 1600) Trigger edit conflict on duplicate section=new submissions
authorBrion Vibber <brion@users.mediawiki.org>
Sun, 11 Dec 2005 12:07:18 +0000 (12:07 +0000)
committerBrion Vibber <brion@users.mediawiki.org>
Sun, 11 Dec 2005 12:07:18 +0000 (12:07 +0000)
RELEASE-NOTES
includes/EditPage.php

index 3ee232a..baf14d0 100644 (file)
@@ -309,6 +309,7 @@ fully support the editing toolbar, but was found to be too confusing.
 * Use content-lang for sitenotice
 * (bug 4233) Update LanguageJa.php
 * Fix regression: old version missing from edit links in Nostalgia skin
+* (bug 1600) Trigger edit conflict on duplicate section=new submissions
 
 
 === Caveats ===
index 553c540..c44f6aa 100644 (file)
@@ -546,11 +546,22 @@ class EditPage {
 
                $this->mArticle->clear(); # Force reload of dates, etc.
                $this->mArticle->forUpdate( true ); # Lock the article
-
-               if( ( $this->section != 'new' ) &&
-                       ($this->mArticle->getTimestamp() != $this->edittime ) ) 
-               {
+               
+               if( $this->mArticle->getTimestamp() != $this->edittime ) {
                        $this->isConflict = true;
+                       if( $this->section = 'new' ) {
+                               if( $this->mArticle->getUserText() == $wgUser->getName() &&
+                                       $this->mArticle->getComment() == $this->summary ) {
+                                       // Probably a duplicate submission of a new comment.
+                                       // This can happen when squid resends a request after
+                                       // a timeout but the first one actually went through.
+                                       wfDebug( "EditPage::editForm duplicate new section submission; trigger edit conflict!\n" );
+                               } else {
+                                       // New comment; suppress conflict.
+                                       $this->isConflict = false;
+                                       wfDebug( "EditPage::editForm conflict suppressed; new section\n" );
+                               }
+                       }
                }
                $userid = $wgUser->getID();