Hmmm... Dudley Irish, that's one of the more unusual names I've seen on
this list :-) I'm seeing all kinds of possibilities in my head!

Anyway, now that we are finished harrassing you about your nome de mailing
list, that error message does not seem to show up on the NT version in
similar circumstances, so there may be something unusual about the 'path
completion' code on HPUx. Under NT I get the expected "cannot open blah
blah blah".

Basically the path followed is:

1. We tried "temp.xml" as a URL, but that failed.
2. So we decided its got to be a local file so we created a
LocalFileInputSource.
3. LocalFileInputSource checked to see if it was relative. If so, then it
called XMLPlatformUtils::getFullPath().
4. That method should get the current directly and weave the relative part
you gave onto the current directory.

The error that you got would have been triggered if the realpath() system
API failed for some reason. I'm not an HP person, so I don't know why that
would fail. Here is the current code for that method, sans comments.

XMLCh* XMLPlatformUtils::getFullPath(const XMLCh* const srcPath)
{
    char* newSrc = XMLString::transcode(srcPath);
    ArrayJanitor<char> janText(newSrc);


    char absPath[PATH_MAX];
    //get the absolute path
    char* retPath = realpath(newSrc, &absPath[0]);
    ArrayJanitor<char> janText2(retPath);

    if (!retPath)
    {
        ThrowXML(XMLPlatformUtilsException,
XMLExcepts::File_CouldNotGetBasePathName);
    }
    return XMLString::transcode(absPath);
}

So you probably want to concentrate your efforts here if you are going to
explore this problem. Why would realpath() fail if all it really probably
does internally is to query the current path and plop your part onto the
end.

----------------------------------------
Dean Roddey
Software Weenie
IBM Center for Java Technology - Silicon Valley
[EMAIL PROTECTED]



Dudley Irish <[EMAIL PROTECTED]> on 03/27/2000 01:07:26 PM

Please respond to [EMAIL PROTECTED]

To:   [EMAIL PROTECTED]
cc:
Subject:  RE: Xerces-C, HP-UX, current CVS, Exception: Could not determine
      base pathname of the file



My earlier message:

   I am moving a program that I developed on Linux to HP-UX.  The HP-UX
   system is running the current CVS version of Xerces-C compiled using
   the HP aCC compiler.

   The problem is that when I run my program I get:
       Error during parsing: 'test.xml'
       Exception message is:
       Could not determine base pathname of the file

   I am kind of pressed for time (big surprise) and so I have only done
   limited checking on my own.  The program works fine on my Linux box
   where I did the development and the samples (DOMCount and DOMPrint at
   least) seem to be working fine on the HP.

   If anybody could send me a clue, I would appreciate it.

I found a clue (:-).  The "problem" was that my error message was not
printing out the correct filename.  The exception was triggered by the
file being missing.

Looking at the code, I don't see an easy way to change the error
message, but a clearer error message would be a good idea.  I will try
to come up with a patch.

Dudley Irish



Reply via email to