Inaccurate error message "Type:XMLPlatformException, Message:Could not close the file" --------------------------------------------------------------------------------------
Key: XERCESC-1658 URL: http://issues.apache.org/jira/browse/XERCESC-1658 Project: Xerces-C++ Issue Type: Improvement Components: Validating Parser (Schema) (Xerces 1.5 or up only) Affects Versions: 2.7.0 Environment: Solaris 10 Reporter: Paul Fee XMLPlatformUtils::openFile() in SolarisPlatformUtils.cpp:227 directly returns the result of the open(2) system call. This can return -1 on error, such as "File not found". However other parts of Xerces take this return could without further validation. Also, when an error occurs, valuable information is available for a short time in errno, this information (i.e. the reason why -1 was return) is not captured for use in error messages. An example of when the return is stored is in BinFileInputStream::BinFileInputStream(const XMLCh* const fileName, MemoryManager* const manager) Here fSource can end up with a value of -1, which in turn means that the destructor for BinFileInputStream will fail. BinFileInputStream::~BinFileInputStream() { if (fSource) XMLPlatformUtils::closeFile(fSource, fMemoryManager); } It detects that fSource is non-zero and tries to close the file, but -1 is not a valid file descriptor. Hence we end up with the inaccurate error message "Could not close the file". Error checking surrounding XMLPlatformUtils::openFile() should be improved. Thank you, Paul -- This message is automatically generated by JIRA. - If you think it was sent incorrectly contact one of the administrators: http://issues.apache.org/jira/secure/Administrators.jspa - For more information on JIRA, see: http://www.atlassian.com/software/jira --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]