classification
Title: Expat parser locks XML source file if ContentHandler raises an exception
Type: behavior
Components: XML Versions: Python 2.5
process
Status: open Resolution:
Dependencies: Superseder:
Assigned To: Nosy List: craigneuro
Priority: Keywords:

Created on 2008-05-12 19:44 by craigneuro, last changed 2008-05-12 19:44 by craigneuro.

Messages
msg66754 (view) Author: Craig Holmquist (craigneuro) Date: 2008-05-12 19:44
This was observed in Python 2.5.2 on Windows XP.  Run this code in IDLE:

import xml.sax
from xml.sax.handler import ContentHandler
class C(ContentHandler):
	def startElement(self, name, attrs):
		assert False

xml.sax.parse(xml_path, C())

Where "xml_path" points to a well-formed XML file.  This will raise an
AssertionError.  Then, attempt to modify or delete the XML file that was
specified; it's still locked by the Python process.

Deleting the ContentHandler does not unlock it.  There doesn't seem any
way to unlock it aside from terminating the Python process.

If the ContentHandler doesn't raise an exception or error, the file is
unlocked properly.
History
Date User Action Args
2008-05-12 19:44:33craigneurocreate