Infinite recursion error: __call__() in Plone 2.1

After importing content into a plone 2.1 site you get an 'Infinite recursion' error related to PortalContent.__call__() displayed when trying to view the imported content

Warning: This item is marked as outdated.

This is due to non-AT-based content being imported into a site that uses the new AT-based types as standard (as in plone 2.1)

After importing the content as usual try carrying out the following steps to migrate the content to the new AT-based types:

  • run the recatalog cmf tool from the portal_atct tool in the ZMI (not required but recommended)
  • browse to portal_atct/migrationFixCMFPortalTypes to invoke the fixing code. It makes sure that a CMF based Document gets the portal type name "CMF Document"
  • after the cmf portal types have been fixed you can run the regular migration from the migration tab in portal_migrations.