[Plone-Users] Error after uninstalling LinguaPlone

3 views
Skip to first unread message

Michael Hierweck

unread,
Jul 1, 2010, 7:29:29 AM7/1/10
to plone-users
Hello Plone Community,

after uninstalling (Quickinstaller) and removing (from buildout)
LinguaPlone any attempt to access the plone site or the ZMI (even ZMI
root) failes with the following stack trace:

2010-06-28 15:36:34 ERROR ZServerPublisher exception caught
Traceback (most recent call last):
File
"/home/buildout/eggs/Zope2-2.12.6-py2.6-linux-x86_64.egg/ZServer/PubCore/ZServerPublisher.py",
line 31, in __init__
response=b)
File
"/home/buildout/eggs/Zope2-2.12.6-py2.6-linux-x86_64.egg/ZPublisher/Publish.py",
line 438, in publish_module
environ, debug, request, response)
File
"/home/buildout/eggs/Zope2-2.12.6-py2.6-linux-x86_64.egg/ZPublisher/Publish.py",
line 264, in publish_module_standard
if request is not None: request.close()
File
"/home/buildout/eggs/Zope2-2.12.6-py2.6-linux-x86_64.egg/ZPublisher/BaseRequest.py",
line 215, in close
notify(EndRequestEvent(None, self))
File
"/home/buildout/eggs/zope.event-3.4.1-py2.6.egg/zope/event/__init__.py",
line 23, in notify
subscriber(event)
File
"/home/buildout/eggs/zope.component-3.7.1-py2.6.egg/zope/component/event.py",
line 26, in dispatch
for ignored in zope.component.subscribers(event, None):
File
"/home/buildout/eggs/zope.component-3.7.1-py2.6.egg/zope/component/_api.py",
line 138, in subscribers
return sitemanager.subscribers(objects, interface)
File
"/home/buildout/eggs/ZODB3-3.9.5-py2.6-linux-x86_64.egg/ZODB/Connection.py",
line 838, in setstate
self._setstate(obj)
File
"/home/buildout/eggs/ZODB3-3.9.5-py2.6-linux-x86_64.egg/ZODB/Connection.py",
line 906, in _setstate
self._reader.setGhostState(obj, p)
File
"/home/buildout/eggs/ZODB3-3.9.5-py2.6-linux-x86_64.egg/ZODB/serialize.py",
line 629, in setGhostState
state = self.getState(pickle)
File
"/home/buildout/eggs/ZODB3-3.9.5-py2.6-linux-x86_64.egg/ZODB/serialize.py",
line 622, in getState
return unpickler.load()
File "/opt/python/2.6.4/lib/python2.6/copy_reg.py", line 48, in
_reconstructor
obj = object.__new__(cls)
TypeError: ('object.__new__(SyncedLanguages) is not safe, use
Persistence.Persistent.__new__()', <function _reconstructor at
0xf754b80c>, (<class 'Products.LinguaPlone.vocabulary.SyncedLanguages'>,
<type 'object'>, None))


Maybe it's a bug in LinguaPlone which claims to uninstall cleanly.
Any hints are appreciated.

Plone 4.0b4, LinguaPlone 3.1a5

Thanks in advance

Michael

------------------------------------------------------------------------------
This SF.net email is sponsored by Sprint
What will you do first with EVO, the first 4G phone?
Visit sprint.com/first -- http://p.sf.net/sfu/sprint-com-first
_______________________________________________
Plone-Users mailing list
Plone...@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/plone-users

Yuri

unread,
Jul 1, 2010, 8:49:46 AM7/1/10
to Plone Users List
Il 01/07/2010 13:29, Michael Hierweck ha scritto:
> Hello Plone Community,
>
> after uninstalling (Quickinstaller) and removing (from buildout)
> LinguaPlone any attempt to access the plone site or the ZMI (even ZMI
> root) failes with the following stack trace:
>
> 2010-06-28 15:36:34 ERROR ZServerPublisher exception caught
> Traceback (most recent call last):
> [...]

>
>
> Maybe it's a bug in LinguaPlone which claims to uninstall cleanly.
> Any hints are appreciated.
>
> Plone 4.0b4, LinguaPlone 3.1a5
>

I think you've to remove it manually, this is a little guide I've
created to do it (just change the interface name):

In a product or egg with a browser dir, create this:

=================== browser_remove.py =================

from Products.Five import BrowserView
from zope.component import getMultiAdapter
from zope.interface import alsoProvides, noLongerProvides
from zope.component.interface import interfaceToName
from cab.contentextender.interfaces import IDocumentExtended

def remove_marker(object):
changed = False
if IDocumentExtended.providedBy(object):
noLongerProvides(object, IDocumentExtended)
changed = True
if changed:
object.reindexObject(idxs=['object_provides'])

class RemoveCabExtView(BrowserView):

def __call__(self):

tools = getMultiAdapter((self.context, self.request),
name='plone_tools')
catalog = tools.catalog()

brains = catalog(object_provides=interfaceToName(self.context,
IDocumentExtended))

for brain in brains:
obj = brain.getObject()
remove_marker(obj)

return ('Removed IDocumentExtended interfaces from %i objects
for cleanup' % len(brains))

===========================

and add to configure.zcml (always in the browser dir) this:

<browser:page
for="Products.CMFPlone.interfaces.siteroot.IPloneSiteRoot"
name="remove-interface"
class=".browser_remove.RemoveCabExtView"
permission="cmf.ManagePortal"
>

=========================

Now reload and go tohttp://miositoplone/@@remove-interface

The code is inspired by:

http://plone.org/products/collective-flowplayer/issues/5 , adding what is missing.

Question: can this be done with GS?

Reply all
Reply to author
Forward
0 new messages