Installed 2.4.7, worked through the tutorials, created a basic template and installed the forum without trouble. Then tried to install Diary, and this reported a missing dependency. Installed Calendar as it sounded as if this contained the dependency. Still neither worked, so removed both folders from the site root and did /dev/build?flush. Result: White screen of death when attempting to access admin area. Public pages still work.
Looking at the database, I see that the Diary and Calendar tables are still there. There are no file types with missing classes.
There is a 2010 post describing a very similar problem, and it looks like the bug still exists.
http://www.silverstripe.org/dataobjectmanager-module-forum/show/11903
Debug output:
[User Error] Bad RecordClassName '' and $baseClass not set
GET \stripe\admin?flush=1
Line 2762 in stripe\sapphire\core\model\DataObject.php
Source
2753 foreach($records as $record) {
2754 if(empty($record['RecordClassName'])) {
2755 $record['RecordClassName'] = $record['ClassName'];
2756 }
2757 if(class_exists($record['RecordClassName'])) {
2758 $results[] = new $record['RecordClassName']($record);
2759 } else {
2760 if(!$baseClass) {
2761 user_error("Bad RecordClassName '{$record['RecordClassName']}' and "
2762 . "\$baseClass not set", E_USER_ERROR);
2763 } else if(!is_string($baseClass) || !class_exists($baseClass)) {
2764 user_error("Bad RecordClassName '{$record['RecordClassName']}' and bad "
2765 . "\$baseClass '$baseClass not set", E_USER_ERROR);
2766 }
2767 $results[] = new $baseClass($record);
2768 }