{"action":"created","issue":{"url":"https://api.github.com/repos/plone/plone.dexterity/issues/23","labels_url":"https://api.github.com/repos/plone/plone.dexterity/issues/23/labels{/name}","comments_url":"https://api.github.com/repos/plone/plone.dexterity/issues/23/comments","events_url":"https://api.github.com/repos/plone/plone.dexterity/issues/23/events","html_url":"https://github.com/plone/plone.dexterity/issues/23","id":56221389,"number":23,"title":"portal setup snapshot broken - filerepresentation leads to \"RuntimeError: maximum recursion depth exceeded\"","user":{"login":"simahawk","id":347149,"avatar_url":"https://avatars.githubusercontent.com/u/347149?v=3","gravatar_id":"","url":"https://api.github.com/users/simahawk","html_url":"https://github.com/simahawk","followers_url":"https://api.github.com/users/simahawk/followers","following_url":"https://api.github.com/users/simahawk/following{/other_user}","gists_url":"https://api.github.com/users/simahawk/gists{/gist_id}","starred_url":"https://api.github.com/users/simahawk/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/simahawk/subscriptions","organizations_url":"https://api.github.com/users/simahawk/orgs","repos_url":"https://api.github.com/users/simahawk/repos","events_url":"https://api.github.com/users/simahawk/events{/privacy}","received_events_url":"https://api.github.com/users/simahawk/received_events","type":"User","site_admin":false},"labels":[],"state":"closed","locked":false,"assignee":null,"milestone":null,"comments":6,"created_at":"2015-02-02T10:50:58Z","updated_at":"2015-02-04T16:50:08Z","closed_at":"2015-02-03T14:54:24Z","body":"I get this when trying to create a snapshot. \r\nPlone-4.3.2\r\nProducts.GenericSetup-1.7.4\r\nplone.app.dexterity-2.0.11\r\nplone.dexterity-2.2.1\r\nplone.rfc822-1.1\r\n\r\n2015-02-02 11:16:02 ERROR Zope.SiteErrorLog 1422872162.790.393378694879 http://localhost:8080/Plone/portal_setup/manage_createSnapshot\r\nTraceback (innermost last):\r\n  Module ZPublisher.Publish, line 138, in publish\r\n  Module ZPublisher.mapply, line 77, in mapply\r\n  Module ZPublisher.Publish, line 48, in call_object\r\n  Module Products.GenericSetup.tool, line 712, in manage_createSnapshot\r\n  Module Products.GenericSetup.tool, line 389, in createSnapshot\r\n  Module Products.CMFCore.exportimport.content, line 31, in exportSiteStructure\r\n  Module Products.CMFCore.exportimport.content, line 132, in export\r\n  Module plone.dexterity.exportimport, line 74, in export\r\n  Module plone.dexterity.filerepresentation, line 105, in manage_FTPget\r\n  Module plone.dexterity.filerepresentation, line 602, in size\r\n  Module plone.memoize.instance, line 51, in memogetter\r\n  Module plone.dexterity.filerepresentation, line 627, in _getStream\r\n  Module email.generator, line 83, in flatten\r\n  Module email.generator, line 115, in _write\r\n  Module email.generator, line 148, in _write_headers\r\n  Module email.header, line 407, in encode\r\n  Module email.header, line 332, in _split\r\n  Module email.header, line 332, in _split\r\n  Module email.header, line 332, in _split\r\n  Module email.header, line 332, in _split\r\n  Module email.header, line 332, in _split\r\n  Module email.header, line 332, in _split\r\n  Module email.header, line 332, in _split\r\n  Module email.header, line 332, in _split\r\n  Module email.header, line 332, in _split\r\n  Module email.header, line 332, in _split\r\n  Module email.header, line 332, in _split\r\n  Module email.header, line 332, in _split\r\n  Module email.header, line 332, in _split\r\n  Module email.header, line 332, in _split\r\n  Module email.header, line 332, in _split\r\n  Module email.header, line 332, in _split\r\n  Module email.header, line 332, in _split\r\n  Module email.header, line 332, in _split\r\n  Module email.header, line 332, in _split\r\n  Module email.header, line 332, in _split\r\n  Module email.header, line 332, in _split\r\n  Module email.header, line 332, in _split\r\n  Module email.header, line 332, in _split\r\n  Module email.header, line 332, in _split\r\n  Module email.header, line 332, in _split\r\n  Module email.header, line 332, in _split\r\n  Module email.header, line 332, in _split\r\n  Module email.header, line 332, in _split\r\n  Module email.header, line 332, in _split\r\n  Module email.header, line 332, in _split\r\n  Module email.header, line 332, in _split\r\n  Module email.header, line 332, in _split\r\n  Module email.header, line 332, in _split\r\n  Module email.header, line 332, in _split\r\n  Module email.header, line 332, in _split\r\n  Module email.header, line 332, in _split\r\n  Module email.header, line 332, in _split\r\n  Module email.header, line 332, in _split\r\n  Module email.header, line 332, in _split\r\n  Module email.header, line 332, in _split\r\n  Module email.header, line 332, in _split\r\n  Module email.header, line 332, in _split\r\n  Module email.header, line 332, in _split\r\n  Module email.header, line 332, in _split\r\n  Module email.header, line 332, in _split\r\n  Module email.header, line 332, in _split\r\n  Module email.header, line 332, in _split\r\n  Module email.header, line 332, in _split\r\n  Module email.header, line 332, in _split\r\n  Module email.header, line 332, in _split\r\n  Module email.header, line 332, in _split\r\n  Module email.header, line 332, in _split\r\n  Module email.header, line 332, in _split\r\n  Module email.header, line 332, in _split\r\n  Module email.header, line 332, in _split\r\n  Module email.header, line 332, in _split\r\n  Module email.header, line 332, in _split\r\n  Module email.header, line 332, in _split\r\n  Module email.header, line 332, in _split\r\n  Module email.header, line 332, in _split\r\n  Module email.header, line 332, in _split\r\n  Module email.header, line 332, in _split\r\n  Module email.header, line 332, in _split\r\n  Module email.header, line 332, in _split\r\n  Module email.header, line 332, in _split\r\n  Module email.header, line 332, in _split\r\n  Module email.header, line 332, in _split\r\n  Module email.header, line 332, in _split\r\n  Module email.header, line 332, in _split\r\n  Module email.header, line 332, in _split\r\n  Module email.header, line 332, in _split\r\n  Module email.header, line 332, in _split\r\n  Module email.header, line 332, in _split\r\n  Module email.header, line 332, in _split\r\n  Module email.header, line 332, in _split\r\n  Module email.header, line 332, in _split\r\n  Module email.header, line 332, in _split\r\n  Module email.header, line 332, in _split\r\n  Module email.header, line 332, in _split\r\n  Module email.header, line 332, in _split\r\n  Module email.header, line 332, in _split\r\n  Module email.header, line 332, in _split\r\n  Module email.header, line 332, in _split\r\n  Module email.header, line 332, in _split\r\n  Module email.header, line 332, in _split\r\n  Module email.header, line 332, in _split\r\n  Module email.header, line 332, in _split\r\n  Module email.header, line 332, in _split\r\n  Module email.header, line 332, in _split\r\n  Module email.header, line 332, in _split\r\n  Module email.header, line 332, in _split\r\n  Module email.header, line 332, in _split\r\n  Module email.header, line 332, in _split\r\n  Module email.header, line 332, in _split\r\n  Module email.header, line 332, in _split\r\n  Module email.header, line 332, in _split\r\n  Module email.header, line 332, in _split\r\n  Module email.header, line 332, in _split\r\n  Module email.header, line 332, in _split\r\n  Module email.header, line 332, in _split\r\n  Module email.header, line 332, in _split\r\n  Module email.header, line 332, in _split\r\n  Module email.header, line 332, in _split\r\n  Module email.header, line 332, in _split\r\n  Module email.header, line 332, in _split\r\n  Module email.header, line 332, in _split\r\n  Module email.header, line 332, in _split\r\n  Module email.header, line 332, in _split\r\n  Module email.header, line 332, in _split\r\n  Module email.header, line 332, in _split\r\n  Module email.header, line 332, in _split\r\n  Module email.header, line 332, in _split\r\n  Module email.header, line 332, in _split\r\n  Module email.header, line 332, in _split\r\n  Module email.header, line 332, in _split\r\n  Module email.header, line 332, in _split\r\n  Module email.header, line 332, in _split\r\n  Module email.header, line 332, in _split\r\n  Module email.header, line 332, in _split\r\n  Module email.header, line 332, in _split\r\n  Module email.header, line 332, in _split\r\n  Module email.header, line 332, in _split\r\n  Module email.header, line 332, in _split\r\n  Module email.header, line 332, in _split\r\n  Module email.header, line 332, in _split\r\n  Module email.header, line 332, in _split\r\n  Module email.header, line 332, in _split\r\n  Module email.header, line 332, in _split\r\n  Module email.header, line 332, in _split\r\n  Module email.header, line 332, in _split\r\n  Module email.header, line 332, in _split\r\n  Module email.header, line 332, in _split\r\n  Module email.header, line 332, in _split\r\n  Module email.header, line 332, in _split\r\n  Module email.header, line 332, in _split\r\n  Module email.header, line 332, in _split\r\n  Module email.header, line 332, in _split\r\n  Module email.header, line 332, in _split\r\n  Module email.header, line 332, in _split\r\n  Module email.header, line 332, in _split\r\n  Module email.header, line 332, in _split\r\n  Module email.header, line 332, in _split\r\n  Module email.header, line 332, in _split\r\n  Module email.header, line 332, in _split\r\n  Module email.header, line 332, in _split\r\n  Module email.header, line 332, in _split\r\n  Module email.header, line 332, in _split\r\n  Module email.header, line 332, in _split\r\n  Module email.header, line 332, in _split\r\n  Module email.header, line 332, in _split\r\n  Module email.header, line 332, in _split\r\n  Module email.header, line 332, in _split\r\n  Module email.header, line 332, in _split\r\n  Module email.header, line 332, in _split\r\n  Module email.header, line 332, in _split\r\n  Module email.header, line 332, in _split\r\n  Module email.header, line 332, in _split\r\n  Module email.header, line 332, in _split\r\n  Module email.header, line 332, in _split\r\n  Module email.header, line 332, in _split\r\n  Module email.header, line 332, in _split\r\n  Module email.header, line 332, in _split\r\n  Module email.header, line 332, in _split\r\n  Module email.header, line 332, in _split\r\n  Module email.header, line 332, in _split\r\n  Module email.header, line 332, in _split\r\n  Module email.header, line 332, in _split\r\n  Module email.header, line 332, in _split\r\n  Module email.header, line 332, in _split\r\n  Module email.header, line 332, in _split\r\n  Module email.header, line 332, in _split\r\n  Module email.header, line 332, in _split\r\n  Module email.header, line 332, in _split\r\n  Module email.header, line 332, in _split\r\n  Module email.header, line 332, in _split\r\n  Module email.header, line 332, in _split\r\n  Module email.header, line 332, in _split\r\n  Module email.header, line 332, in _split\r\n  Module email.header, line 332, in _split\r\n  Module email.header, line 332, in _split\r\n  Module email.header, line 332, in _split\r\n  Module email.header, line 332, in _split\r\n  Module email.header, line 332, in _split\r\n  Module email.header, line 332, in _split\r\nRuntimeError: maximum recursion depth exceeded\r\n\r\n"},"comment":{"url":"https://api.github.com/repos/plone/plone.dexterity/issues/comments/72890935","html_url":"https://github.com/plone/plone.dexterity/issues/23#issuecomment-72890935","issue_url":"https://api.github.com/repos/plone/plone.dexterity/issues/23","id":72890935,"user":{"login":"datakurre","id":160447,"avatar_url":"https://avatars.githubusercontent.com/u/160447?v=3","gravatar_id":"","url":"https://api.github.com/users/datakurre","html_url":"https://github.com/datakurre","followers_url":"https://api.github.com/users/datakurre/followers","following_url":"https://api.github.com/users/datakurre/following{/other_user}","gists_url":"https://api.github.com/users/datakurre/gists{/gist_id}","starred_url":"https://api.github.com/users/datakurre/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/datakurre/subscriptions","organizations_url":"https://api.github.com/users/datakurre/orgs","repos_url":"https://api.github.com/users/datakurre/repos","events_url":"https://api.github.com/users/datakurre/events{/privacy}","received_events_url":"https://api.github.com/users/datakurre/received_events","type":"User","site_admin":false},"created_at":"2015-02-04T16:50:08Z","updated_at":"2015-02-04T16:50:08Z","body":"@simahawk Yes. Also file and issue for LeadImage. Basically all Blob fields (and object fields like RichText) should be primary fields (multiple primary fields are allowed) to support marshalling (snapshots and plone.rfc822).\r\n\r\nYet, there must be reason, why primary fields are opt-in instead of making those fields types implement IPrimaryField by default."}}