[Zope] Error -> A TaintedString cannot be pickled

Josef Meile jmeile@hotmail.com
Tue, 15 Apr 2003 17:25:20 +0200


Hi,

this error is really weird. After lots of intents, finally I
discovered that it happens whenever I save the sign: "<"
in a text field of a ZClass that I implemented. If I don't
write this symbol and save the object, it works.

I know the code worked before in Zope 2.5.1 because there
is one object stored with that string, but when I try to modify it
or create a new one (with the string previously mentioned) in
zope 2.6.1, I get this error:

Error Type: SystemError
Error Value: A TaintedString cannot be pickled. Code that caused this
TaintedString to be stored should be more careful with untrusted data from
the REQUEST.

Traceback (innermost last):

    * Module ZPublisher.Publish, line 150, in publish_module
    * Module ZPublisher.Publish, line 114, in publish
    * Module Zope.App.startup, line 182, in zpublisher_exception_hook
    * Module ZPublisher.Publish, line 102, in publish
    * Module Zope.App.startup, line 200, in commit
    * Module ZODB.Transaction, line 235, in commit
    * Module ZODB.Transaction, line 349, in _commit_objects
    * Module ZODB.Connection, line 389, in commit
      __traceback_info__: (('*vg7oXuDosKfgZhLfKvrI/Q==', 'InternshipClass'),
'\x00\x00\x00\x00\x00\x07\\\x1d', '')
    * Module ZPublisher.TaintedString, line 83, in __getstate__

SystemError: (see above)


And the external python script that generates it:

def
modifyJobOfferObject(self,jobOffer,jobTitle,jobDescription,jobCompanyName,jo
bCompanyVision,jobPositionOffered,profile,contact,jobCountry,jobArea,email,e
ncodedEmail):
jobOffer.propertysheets.JobOfferPropertySheet.manage_changeProperties(self.R
EQUEST,title=jobTitle,description=jobDescription,companyName=jobCompanyName,
companyVision=jobCompanyVision,positionOffered=jobPositionOffered,jobProfile
=profile,jobContact=contact,country=jobCountry,area=jobArea,email=email,enco
dedEmail=encodedEmail)
jobOffer.manage_changeProperties(self.REQUEST,title=jobTitle,description=job
Description,companyName=jobCompanyName,companyVision=jobCompanyVision,positi
onOffered=jobPositionOffered,jobProfile=profile,jobContact=contact,country=j
obCountry,area=jobArea,email=email,encodedEmail=encodedEmail)

I've tried anything without any success.
What could be the problem?

Thanks in advanced,
Josef