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]

Reply via email to