Warning: class_implements() [function.class-implements]: Class MailsystemDelegateMailSystem does not exist and could not be loaded in drupal_mail_system() (line 276 of /XXX/includes/mail.inc).
Class MailsystemDelegateMailSystem does not implement interface MailSystemInterface

There is a typo in the .info file - the case of the actual filename is different to what is there, and on our systems that stops the class being loaded when needed. The attached patch fixes this.

Support from Acquia helps fund testing for Drupal Acquia logo

Comments

znerol’s picture

After looking at the code I suggest to rename the file MailSystemDelegateMailSystem.inc into MailsystemDelegateMailSystem.inc instead of updating the info file because the contained class actually is named MailsystemDelegateMailSystem.

mrfelton’s picture

Status: Active » Needs review
FileSize
2.86 KB

Attached patch renames the file instead.

Les Lim’s picture

Priority: Normal » Major
Status: Needs review » Reviewed & tested by the community

"MailsystemDelegateMailSystem" is more precise camel-casing, anyway. Works in my testing.

Kristen Pol’s picture

Patch #2 works for me too. Thanks!

jpstrikesback’s picture

Issue summary: View changes

#2 Works great.

  • Les Lim committed ee28c28 on 7.x-3.x authored by mrfelton
    Issue #1844630 by mrfelton, james.williams: Fixed Class...
Les Lim’s picture

Status: Reviewed & tested by the community » Fixed

Committed #2 to 3.x. Thanks!

Status: Fixed » Closed (fixed)

Automatically closed - issue fixed for 2 weeks with no activity.

djg_tram’s picture

Status: Closed (fixed) » Needs review

Sorry to be the harbinger of bad news but it's not fixed yet. :-) I downloaded the package today and was dumbfounded by the error message. Being closed, the issue queue didn't bring it up, only Google helped. The file still has an uppercase S in the name and manually renaming it helped.

Les Lim’s picture

Sorry, this is fixed in the development snapshot of the 3.x branch, which wasn't published until now. It is not fixed in the alpha1 release that you probably downloaded.

Les Lim’s picture

Version: 7.x-3.0-alpha1 » 7.x-3.x-dev
Status: Needs review » Fixed

Status: Fixed » Closed (fixed)

Automatically closed - issue fixed for 2 weeks with no activity.

jfellers’s picture

Sorry, I am getting the same error after updating Webform 7.x-4.1 to Webform-7.x-4.2. (Prior to the Webform update I updated Drupal from 7.32 to 7.34.)

"Warning: class_implements(): Class MailsystemDelegateMailSystem does not exist and could not be loaded in drupal_mail_system() (line 278 of /var/www/xxx/includes/mail.inc).
Exception: Class MailsystemDelegateMailSystem does not implement interface MailSystemInterface in drupal_mail_system() (line 283 of /var/www/xxx/includes/mail.inc)."

Les Lim’s picture

jfellers: you'll need to be using the 7.x-3.x-dev version of Mailsystem for now.

jfellers’s picture

Thanks for very prompt response. Reverted back to webform-7.x-3.21.

Sending test form now results in:

"PDOException: SQLSTATE[HY000]: General error: 1364 Field 'serial' doesn't have a default value: INSERT INTO {webform_submissions} (nid, uid, is_draft, submitted, remote_addr) VALUES (:db_insert_placeholder_0, :db_insert_placeholder_1, :db_insert_placeholder_2, :db_insert_placeholder_3, :db_insert_placeholder_4); Array ( [:db_insert_placeholder_0] => 12735 [:db_insert_placeholder_1] => 0 [:db_insert_placeholder_2] => 0 [:db_insert_placeholder_3] => 1416939192 [:db_insert_placeholder_4] => 10.147.89.95 ) in drupal_write_record() (line 7239 of /var/www/upgrade/includes/common.inc)."

Les Lim’s picture

That looks like a problem with reverting webform.

AdamGerthel’s picture

#2 works for me

dimaboychev’s picture

#2 solves the problem

dandaman’s picture

Issues people may be running into may be some sort of issue with the naming of files and how their system handles file names.

The originial file was MailSystemDelegateMailSystem. The new one is MailsystemDelegateMailSystem, which has one less capital S. Some filesystems, like Mac OS, disregard case changes and therefore Git or the filesystem might not detect the change. I ran the patch on a copy of the code from alpha1 that was upgraded to dev and then git recognized that I had changed the case of the file.