Chris McDonough <[EMAIL PROTECTED]> added the comment: Have you confirmed that this doesn't happen under "stock" Plone?
David Durham wrote: > New submission from David Durham <[EMAIL PROTECTED]>: > > I went to /portal_skins/kupu_plone and edited kupucollection.xml. I receive > the > following error: > > > AttributeError Python 2.4.4: /usr/local/bin/python > Tue May 6 12:40:37 2008 > > A problem occurred in a Python script. Here is the sequence of function calls > leading up to the error, in the order they occurred. > > /sites/beta.jgsullivan.com-http-80/lib/python2.4/site-packages/Paste-1.5-py2.4.egg/paste/cgitb_catcher.py > in __call__(self=<paste.cgitb_catcher.CgitbMiddleware object>, > environ={'DOCUMENT_ROOT': '/sites/beta.jgsullivan.com-http-80', > 'GATEWAY_INTERFACE': 'CGI/1.1', 'HTTP_ACCEPT': > 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8', > 'HTTP_ACCEPT_CHARSET': 'ISO-8859-1,utf-8;q=0.7,*;q=0.7', > 'HTTP_ACCEPT_ENCODING': 'gzip,deflate', 'HTTP_ACCEPT_LANGUAGE': > 'en-us,en;q=0.5', 'HTTP_CONNECTION': 'keep-alive', 'HTTP_COOKIE': > 'tree-s="eJzTyCkw5NLIKTDiClZ3hALXJE9bda4CY67ERD0A...1.1.utmcsr=(direct)|utmccn=(direct)|utmcmd=(none)', > 'HTTP_HOST': 'beta.jgsullivan.dev.jgsullivan.com', 'HTTP_KEEP_ALIVE': '300', > ...}, start_response=<built-in method start_response of mod_wsgi.Adapter > object>) > 41 def __call__(self, environ, start_response): > 42 try: > 43 app_iter = self.app(environ, start_response) > 44 return self.catching_iter(app_iter, environ) > 45 except: > app_iter undefined, self = <paste.cgitb_catcher.CgitbMiddleware object>, > self.app = <paste.httpexceptions.HTTPExceptionHandler object>, environ = > {'DOCUMENT_ROOT': '/sites/beta.jgsullivan.com-http-80', 'GATEWAY_INTERFACE': > 'CGI/1.1', 'HTTP_ACCEPT': > 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8', > 'HTTP_ACCEPT_CHARSET': 'ISO-8859-1,utf-8;q=0.7,*;q=0.7', > 'HTTP_ACCEPT_ENCODING': > 'gzip,deflate', 'HTTP_ACCEPT_LANGUAGE': 'en-us,en;q=0.5', 'HTTP_CONNECTION': > 'keep-alive', 'HTTP_COOKIE': > 'tree-s="eJzTyCkw5NLIKTDiClZ3hALXJE9bda4CY67ERD0A...1.1.utmcsr=(direct)|utmccn=(direct)|utmcmd=(none)', > 'HTTP_HOST': 'beta.jgsullivan.dev.jgsullivan.com', 'HTTP_KEEP_ALIVE': '300', > ...}, start_response = <built-in method start_response of mod_wsgi.Adapter > object> > > /sites/beta.jgsullivan.com-http-80/lib/python2.4/site-packages/Paste-1.5-py2.4.egg/paste/httpexceptions.py > in __call__(self=<paste.httpexceptions.HTTPExceptionHandler object>, > environ={'DOCUMENT_ROOT': '/sites/beta.jgsullivan.com-http-80', > 'GATEWAY_INTERFACE': 'CGI/1.1', 'HTTP_ACCEPT': > 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8', > 'HTTP_ACCEPT_CHARSET': 'ISO-8859-1,utf-8;q=0.7,*;q=0.7', > 'HTTP_ACCEPT_ENCODING': 'gzip,deflate', 'HTTP_ACCEPT_LANGUAGE': > 'en-us,en;q=0.5', 'HTTP_CONNECTION': 'keep-alive', 'HTTP_COOKIE': > 'tree-s="eJzTyCkw5NLIKTDiClZ3hALXJE9bda4CY67ERD0A...1.1.utmcsr=(direct)|utmccn=(direct)|utmcmd=(none)', > 'HTTP_HOST': 'beta.jgsullivan.dev.jgsullivan.com', 'HTTP_KEEP_ALIVE': '300', > ...}, start_response=<built-in method start_response of mod_wsgi.Adapter > object>) > 630 []).append(HTTPException) > 631 try: > 632 return self.application(environ, start_response) > 633 except HTTPException, exc: > 634 return exc(environ, start_response) > self = <paste.httpexceptions.HTTPExceptionHandler object>, self.application = > <repoze.retry.Retry instance>, environ = {'DOCUMENT_ROOT': > '/sites/beta.jgsullivan.com-http-80', 'GATEWAY_INTERFACE': 'CGI/1.1', > 'HTTP_ACCEPT': > 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8', > 'HTTP_ACCEPT_CHARSET': 'ISO-8859-1,utf-8;q=0.7,*;q=0.7', > 'HTTP_ACCEPT_ENCODING': > 'gzip,deflate', 'HTTP_ACCEPT_LANGUAGE': 'en-us,en;q=0.5', 'HTTP_CONNECTION': > 'keep-alive', 'HTTP_COOKIE': > 'tree-s="eJzTyCkw5NLIKTDiClZ3hALXJE9bda4CY67ERD0A...1.1.utmcsr=(direct)|utmccn=(direct)|utmcmd=(none)', > 'HTTP_HOST': 'beta.jgsullivan.dev.jgsullivan.com', 'HTTP_KEEP_ALIVE': '300', > ...}, start_response = <built-in method start_response of mod_wsgi.Adapter > object> > > /sites/beta.jgsullivan.com-http-80/lib/python2.4/site-packages/repoze.retry-0.6-py2.4.egg/repoze/retry/__init__.py > in __call__(self=<repoze.retry.Retry instance>, environ={'DOCUMENT_ROOT': > '/sites/beta.jgsullivan.com-http-80', 'GATEWAY_INTERFACE': 'CGI/1.1', > 'HTTP_ACCEPT': > 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8', > 'HTTP_ACCEPT_CHARSET': 'ISO-8859-1,utf-8;q=0.7,*;q=0.7', > 'HTTP_ACCEPT_ENCODING': 'gzip,deflate', 'HTTP_ACCEPT_LANGUAGE': > 'en-us,en;q=0.5', 'HTTP_CONNECTION': 'keep-alive', 'HTTP_COOKIE': > 'tree-s="eJzTyCkw5NLIKTDiClZ3hALXJE9bda4CY67ERD0A...1.1.utmcsr=(direct)|utmccn=(direct)|utmcmd=(none)', > 'HTTP_HOST': 'beta.jgsullivan.dev.jgsullivan.com', 'HTTP_KEEP_ALIVE': '300', > ...}, start_response=<built-in method start_response of mod_wsgi.Adapter > object>) > 24 while 1: > 25 try: > 26 result = self.application(environ, > self.buffer_start_response) > 27 except ConflictError, why: > 28 if environ.get('wsgi.errors'): > result undefined, self = <repoze.retry.Retry instance>, self.application = > <repoze.tm.TM instance>, environ = {'DOCUMENT_ROOT': > '/sites/beta.jgsullivan.com-http-80', 'GATEWAY_INTERFACE': 'CGI/1.1', > 'HTTP_ACCEPT': > 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8', > 'HTTP_ACCEPT_CHARSET': 'ISO-8859-1,utf-8;q=0.7,*;q=0.7', > 'HTTP_ACCEPT_ENCODING': > 'gzip,deflate', 'HTTP_ACCEPT_LANGUAGE': 'en-us,en;q=0.5', 'HTTP_CONNECTION': > 'keep-alive', 'HTTP_COOKIE': > 'tree-s="eJzTyCkw5NLIKTDiClZ3hALXJE9bda4CY67ERD0A...1.1.utmcsr=(direct)|utmccn=(direct)|utmcmd=(none)', > 'HTTP_HOST': 'beta.jgsullivan.dev.jgsullivan.com', 'HTTP_KEEP_ALIVE': '300', > ...}, self.buffer_start_response = <bound method Retry.buffer_start_response > of > <repoze.retry.Retry instance>> > > /sites/beta.jgsullivan.com-http-80/lib/python2.4/site-packages/repoze.tm-0.8-py2.4.egg/repoze/tm/__init__.py > in __call__(self=<repoze.tm.TM instance>, environ={'DOCUMENT_ROOT': > '/sites/beta.jgsullivan.com-http-80', 'GATEWAY_INTERFACE': 'CGI/1.1', > 'HTTP_ACCEPT': > 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8', > 'HTTP_ACCEPT_CHARSET': 'ISO-8859-1,utf-8;q=0.7,*;q=0.7', > 'HTTP_ACCEPT_ENCODING': 'gzip,deflate', 'HTTP_ACCEPT_LANGUAGE': > 'en-us,en;q=0.5', 'HTTP_CONNECTION': 'keep-alive', 'HTTP_COOKIE': > 'tree-s="eJzTyCkw5NLIKTDiClZ3hALXJE9bda4CY67ERD0A...1.1.utmcsr=(direct)|utmccn=(direct)|utmcmd=(none)', > 'HTTP_HOST': 'beta.jgsullivan.dev.jgsullivan.com', 'HTTP_KEEP_ALIVE': '300', > ...}, start_response=<bound method Retry.buffer_start_response of > <repoze.retry.Retry instance>>) > 12 transaction.begin() > 13 try: > 14 result = self.application(environ, start_response) > 15 except: > 16 self.abort() > result undefined, self = <repoze.tm.TM instance>, self.application = > <repoze.vhm.middleware.VHMFilter instance>, environ = {'DOCUMENT_ROOT': > '/sites/beta.jgsullivan.com-http-80', 'GATEWAY_INTERFACE': 'CGI/1.1', > 'HTTP_ACCEPT': > 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8', > 'HTTP_ACCEPT_CHARSET': 'ISO-8859-1,utf-8;q=0.7,*;q=0.7', > 'HTTP_ACCEPT_ENCODING': > 'gzip,deflate', 'HTTP_ACCEPT_LANGUAGE': 'en-us,en;q=0.5', 'HTTP_CONNECTION': > 'keep-alive', 'HTTP_COOKIE': > 'tree-s="eJzTyCkw5NLIKTDiClZ3hALXJE9bda4CY67ERD0A...1.1.utmcsr=(direct)|utmccn=(direct)|utmcmd=(none)', > 'HTTP_HOST': 'beta.jgsullivan.dev.jgsullivan.com', 'HTTP_KEEP_ALIVE': '300', > ...}, start_response = <bound method Retry.buffer_start_response of > <repoze.retry.Retry instance>> > > /sites/beta.jgsullivan.com-http-80/lib/python2.4/site-packages/repoze.vhm-0.6-py2.4.egg/repoze/vhm/middleware.py > in __call__(self=<repoze.vhm.middleware.VHMFilter instance>, > environ={'DOCUMENT_ROOT': '/sites/beta.jgsullivan.com-http-80', > 'GATEWAY_INTERFACE': 'CGI/1.1', 'HTTP_ACCEPT': > 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8', > 'HTTP_ACCEPT_CHARSET': 'ISO-8859-1,utf-8;q=0.7,*;q=0.7', > 'HTTP_ACCEPT_ENCODING': 'gzip,deflate', 'HTTP_ACCEPT_LANGUAGE': > 'en-us,en;q=0.5', 'HTTP_CONNECTION': 'keep-alive', 'HTTP_COOKIE': > 'tree-s="eJzTyCkw5NLIKTDiClZ3hALXJE9bda4CY67ERD0A...1.1.utmcsr=(direct)|utmccn=(direct)|utmcmd=(none)', > 'HTTP_HOST': 'beta.jgsullivan.dev.jgsullivan.com', 'HTTP_KEEP_ALIVE': '300', > ...}, start_response=<bound method Retry.buffer_start_response of > <repoze.retry.Retry instance>>) > 51 environ['repoze.vhm.virtual_root'] = root_header > 52 > 53 return self.application(environ, start_response) > 54 > 55 def make_filter(app, global_conf): > self = <repoze.vhm.middleware.VHMFilter instance>, self.application = > <repoze.errorlog.ErrorLog instance>, environ = {'DOCUMENT_ROOT': > '/sites/beta.jgsullivan.com-http-80', 'GATEWAY_INTERFACE': 'CGI/1.1', > 'HTTP_ACCEPT': > 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8', > 'HTTP_ACCEPT_CHARSET': 'ISO-8859-1,utf-8;q=0.7,*;q=0.7', > 'HTTP_ACCEPT_ENCODING': > 'gzip,deflate', 'HTTP_ACCEPT_LANGUAGE': 'en-us,en;q=0.5', 'HTTP_CONNECTION': > 'keep-alive', 'HTTP_COOKIE': > 'tree-s="eJzTyCkw5NLIKTDiClZ3hALXJE9bda4CY67ERD0A...1.1.utmcsr=(direct)|utmccn=(direct)|utmcmd=(none)', > 'HTTP_HOST': 'beta.jgsullivan.dev.jgsullivan.com', 'HTTP_KEEP_ALIVE': '300', > ...}, start_response = <bound method Retry.buffer_start_response of > <repoze.retry.Retry instance>> > > /sites/beta.jgsullivan.com-http-80/lib/python2.4/site-packages/repoze.errorlog-0.5-py2.4.egg/repoze/errorlog/__init__.py > in __call__(self=<repoze.errorlog.ErrorLog instance>, > environ={'DOCUMENT_ROOT': '/sites/beta.jgsullivan.com-http-80', > 'GATEWAY_INTERFACE': 'CGI/1.1', 'HTTP_ACCEPT': > 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8', > 'HTTP_ACCEPT_CHARSET': 'ISO-8859-1,utf-8;q=0.7,*;q=0.7', > 'HTTP_ACCEPT_ENCODING': 'gzip,deflate', 'HTTP_ACCEPT_LANGUAGE': > 'en-us,en;q=0.5', 'HTTP_CONNECTION': 'keep-alive', 'HTTP_COOKIE': > 'tree-s="eJzTyCkw5NLIKTDiClZ3hALXJE9bda4CY67ERD0A...1.1.utmcsr=(direct)|utmccn=(direct)|utmcmd=(none)', > 'HTTP_HOST': 'beta.jgsullivan.dev.jgsullivan.com', 'HTTP_KEEP_ALIVE': '300', > ...}, start_response=<bound method Retry.buffer_start_response of > <repoze.retry.Retry instance>>) > 83 environ['repoze.errorlog.entryid'] = identifier > 84 try: > 85 return self.application(environ, start_response) > 86 except self.ignored_exceptions: > 87 # just reraise an ignored exception > self = <repoze.errorlog.ErrorLog instance>, self.application = > <repoze.obob.publisher.ObobPublisher instance>, environ = {'DOCUMENT_ROOT': > '/sites/beta.jgsullivan.com-http-80', 'GATEWAY_INTERFACE': 'CGI/1.1', > 'HTTP_ACCEPT': > 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8', > 'HTTP_ACCEPT_CHARSET': 'ISO-8859-1,utf-8;q=0.7,*;q=0.7', > 'HTTP_ACCEPT_ENCODING': > 'gzip,deflate', 'HTTP_ACCEPT_LANGUAGE': 'en-us,en;q=0.5', 'HTTP_CONNECTION': > 'keep-alive', 'HTTP_COOKIE': > 'tree-s="eJzTyCkw5NLIKTDiClZ3hALXJE9bda4CY67ERD0A...1.1.utmcsr=(direct)|utmccn=(direct)|utmcmd=(none)', > 'HTTP_HOST': 'beta.jgsullivan.dev.jgsullivan.com', 'HTTP_KEEP_ALIVE': '300', > ...}, start_response = <bound method Retry.buffer_start_response of > <repoze.retry.Retry instance>> > > /sites/beta.jgsullivan.com-http-80/lib/python2.4/site-packages/repoze.obob-0.3-py2.4.egg/repoze/obob/publisher.py > in __call__(self=<repoze.obob.publisher.ObobPublisher instance>, > environ={'DOCUMENT_ROOT': '/sites/beta.jgsullivan.com-http-80', > 'GATEWAY_INTERFACE': 'CGI/1.1', 'HTTP_ACCEPT': > 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8', > 'HTTP_ACCEPT_CHARSET': 'ISO-8859-1,utf-8;q=0.7,*;q=0.7', > 'HTTP_ACCEPT_ENCODING': 'gzip,deflate', 'HTTP_ACCEPT_LANGUAGE': > 'en-us,en;q=0.5', 'HTTP_CONNECTION': 'keep-alive', 'HTTP_COOKIE': > 'tree-s="eJzTyCkw5NLIKTDiClZ3hALXJE9bda4CY67ERD0A...1.1.utmcsr=(direct)|utmccn=(direct)|utmcmd=(none)', > 'HTTP_HOST': 'beta.jgsullivan.dev.jgsullivan.com', 'HTTP_KEEP_ALIVE': '300', > ...}, start_response=<bound method Retry.buffer_start_response of > <repoze.retry.Retry instance>>) > 162 > 163 helper.before_invoke(published) > 164 result = helper.invoke(published) > 165 > 166 status, headers, body_iter = helper.map_result(result) > result undefined, helper = <repoze.zope2.z2bob.Zope2ObobHelper instance>, > helper.invoke = <bound method Zope2ObobHelper.invoke of > <repoze.zope2.z2bob.Zope2ObobHelper instance>>, published = <bound method > ExternalEditor.index_html of <Prod...rnalEditor.ExternalEditor.ExternalEditor > object>> > > /sites/beta.jgsullivan.com-http-80/lib/python2.4/site-packages/repoze.zope2-0.3.7-py2.4.egg/repoze/zope2/z2bob.py > in invoke(self=<repoze.zope2.z2bob.Zope2ObobHelper instance>, > published=<bound method ExternalEditor.index_html of > <Prod...rnalEditor.ExternalEditor.ExternalEditor object>>) > 395 handle_class = dont_publish_class, > 396 context = request, > 397 bind=1) > 398 > 399 return result > bind undefined > > /sites/beta.jgsullivan.com-http-80/lib/python2.4/site-packages/repoze.zope2-0.3.7-py2.4.egg/repoze/zope2/mapply.py > in mapply(object=<bound method ExternalEditor.index_html of > <Prod...rnalEditor.ExternalEditor.ExternalEditor object>>, positional=(), > keyword=<HTTPRequest, URL=None>, debug=None, maybe=1, missing_name=<function > missing_name>, handle_class=<function dont_publish_class>, > context=<HTTPRequest, URL=None>, bind=1) > 92 args.append(v) > 93 > 94 args=tuple(args) > 95 if debug is not None: return debug(object,args,context) > 96 else: return object(*args) > object = <bound method ExternalEditor.index_html of > <Prod...rnalEditor.ExternalEditor.ExternalEditor object>>, args = > (<HTTPRequest, > URL=None>, RepozeHTTPResponse(''), None) > > /sites/beta.jgsullivan.com-http-80/lib/python2.4/site-packages/ploneproducts-3.1.1-py2.4.egg/Products/ExternalEditor/ExternalEditor.py > in index_html(self=<Products.ExternalEditor.ExternalEditor.ExternalEditor > object>, REQUEST=<HTTPRequest, URL=None>, RESPONSE=RepozeHTTPResponse(''), > path=None) > 201 # of response headers should happen there, if possible. > 202 try: > 203 body = ob.manage_FTPget() > 204 except TypeError: # some need the R/R pair! > 205 body = ob.manage_FTPget(REQUEST, RESPONSE) > body undefined, ob = <FSPageTemplate at > /jgsi/portal_skins/kupu_plone/kupucollection.xml>, ob.manage_FTPget = <bound > method FSPageTemplate.manage_FTPget of > <F...jgsi/portal_skins/kupu_plone/kupucollection.xml>> > > /sites/beta.jgsullivan.com-http-80/lib/python2.4/site-packages/zopelib-2.10.5.0-py2.4-linux-i686.egg/Products/PageTemplates/ZopePageTemplate.py > in manage_FTPget(self=<FSPageTemplate at > /jgsi/portal_skins/kupu_plone/kupucollection.xml>) > 360 "Get source for FTP download" > 361 result = self.read() > 362 return result.encode(self.output_encoding) > 363 > 364 security.declareProtected(view_management_screens, 'html') > result = u'<tal:block define="charset here/portal_propertie...s>\n > </uploadbutton>\n </items>\n\n</collection>\n', result.encode = <built-in > method > encode of unicode object>, self = <FSPageTemplate at > /jgsi/portal_skins/kupu_plone/kupucollection.xml>, self.output_encoding > undefined > > AttributeError: output_encoding > args = ('output_encoding',) > > ---------- > messages: 99 > nosy: ddurham > priority: bug > status: unread > title: editing a file in ZMI fails > > __________________________________ > Repoze Bugs <[EMAIL PROTECTED]> > <http://bugs.repoze.org/issue36> > __________________________________ > _______________________________________________ > Repoze-dev mailing list > Repoze-dev@lists.repoze.org > http://lists.repoze.org/listinfo/repoze-dev > ---------- status: unread -> chatting __________________________________ Repoze Bugs <[EMAIL PROTECTED]> <http://bugs.repoze.org/issue36> __________________________________ _______________________________________________ Repoze-dev mailing list Repoze-dev@lists.repoze.org http://lists.repoze.org/listinfo/repoze-dev