? .cvsignore ? pm_email_notify.module_0.patch ? user_delete_stuff.patch ? user_delete_stuff2.patch ? user_without_messages_fix.patch Index: privatemsg.module =================================================================== RCS file: /cvs/drupal/contributions/modules/privatemsg/privatemsg.module,v retrieving revision 1.70.2.30.2.91.2.90 diff -u -p -r1.70.2.30.2.91.2.90 privatemsg.module --- privatemsg.module 8 Nov 2009 10:03:31 -0000 1.70.2.30.2.91.2.90 +++ privatemsg.module 9 Nov 2009 15:09:52 -0000 @@ -1247,8 +1247,10 @@ function privatemsg_user($op, &$edit, &$ // Delete messages the user wrote. db_query('DELETE FROM {pm_message} WHERE author = %d', $account->uid); - // Delete recipient entries in {pm_index} of the messages the user wrote. - db_query('DELETE FROM {pm_index} WHERE mid IN (' . db_placeholders($mids) . ')', $mids); + if (!empty($mids)) { + // Delete recipient entries in {pm_index} of the messages the user wrote. + db_query('DELETE FROM {pm_index} WHERE mid IN (' . db_placeholders($mids) . ')', $mids); + } // Delete recipient entries of that user. db_query('DELETE FROM {pm_index} WHERE uid = %d', $account->uid); Index: privatemsg.test =================================================================== RCS file: /cvs/drupal/contributions/modules/privatemsg/privatemsg.test,v retrieving revision 1.2.2.8 diff -u -p -r1.2.2.8 privatemsg.test --- privatemsg.test 6 Nov 2009 13:06:26 -0000 1.2.2.8 +++ privatemsg.test 9 Nov 2009 15:09:52 -0000 @@ -324,6 +324,7 @@ class PrivatemsgTestCase extends DrupalW $recipient = $this->drupalCreateUser(array('write privatemsg', 'read privatemsg', 'delete privatemsg')); $recipient2 = $this->drupalCreateUser(array('write privatemsg', 'read privatemsg')); $admin = $this->drupalCreateUser(array('write privatemsg', 'read privatemsg', 'delete privatemsg', 'read all private messages')); + $dummy = $this->drupalCreateUser(); // Create texts. $subject = $this->randomName(20); @@ -408,6 +409,9 @@ class PrivatemsgTestCase extends DrupalW $this->drupalGet('messages/view/' . $return['message']['thread_id']); $this->assertText($body1, 'First message is still displayed'); $this->assertNoText($edit['body'], t('Reply of deleted user is not displayed anymore')); + + // Test if deleting a user does not produce any errors. + user_delete(array(), $dummy); } /**