Internal entities defined in the DTD are not properly
expanded in attribute values when an external encoding
handler is used.
The cause of the problem is that a wrong pool is
cleared in processXmlDecl() and the encoding name
remains in the pool. When parsing the document an
entity name is appended to the encoding name already in
the pool, and not surprisingly the resulting string is
not found in the entities table. The attached patch
fixes the bug.
Also this bug might cause trouble in other places,
where the temp2pool is used.
Log in to post a comment.