Author: shuston Date: Wed Aug 5 17:17:30 2009 New Revision: 801315 URL: http://svn.apache.org/viewvc?rev=801315&view=rev Log: Try to create piddir if needed; on error throw a useful message. Fixes QPID-2030
Modified: qpid/trunk/qpid/cpp/src/qpid/sys/windows/LockFile.cpp qpid/trunk/qpid/cpp/src/windows/QpiddBroker.cpp Modified: qpid/trunk/qpid/cpp/src/qpid/sys/windows/LockFile.cpp URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/src/qpid/sys/windows/LockFile.cpp?rev=801315&r1=801314&r2=801315&view=diff ============================================================================== --- qpid/trunk/qpid/cpp/src/qpid/sys/windows/LockFile.cpp (original) +++ qpid/trunk/qpid/cpp/src/qpid/sys/windows/LockFile.cpp Wed Aug 5 17:17:30 2009 @@ -43,7 +43,8 @@ create ? OPEN_ALWAYS : OPEN_EXISTING, FILE_FLAG_DELETE_ON_CLOSE, /* Delete file when closed */ NULL); - QPID_WINDOWS_CHECK_NOT(h, INVALID_HANDLE_VALUE); + if (h == INVALID_HANDLE_VALUE) + throw qpid::Exception(path + qpid::sys::strError(GetLastError())); impl.reset(new LockFilePrivate(h)); } Modified: qpid/trunk/qpid/cpp/src/windows/QpiddBroker.cpp URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/src/windows/QpiddBroker.cpp?rev=801315&r1=801314&r2=801315&view=diff ============================================================================== --- qpid/trunk/qpid/cpp/src/windows/QpiddBroker.cpp (original) +++ qpid/trunk/qpid/cpp/src/windows/QpiddBroker.cpp Wed Aug 5 17:17:30 2009 @@ -223,6 +223,17 @@ options->broker.port = brokerPtr->getPort(""); std::cout << options->broker.port << std::endl; + // Make sure the pid directory exists, creating if needed. LockFile + // will throw an exception that makes little sense if it can't create + // the file. + if (!CreateDirectory(myOptions->control.piddir.c_str(), 0)) { + DWORD err = GetLastError(); + if (err != ERROR_ALREADY_EXISTS) + throw qpid::Exception(QPID_MSG("Can't create pid-dir " + + myOptions->control.piddir + + ": " + + qpid::sys::strError(err))); + } qpid::sys::LockFile myPid(brokerPidFile(myOptions->control.piddir, options->broker.port), true); --------------------------------------------------------------------- Apache Qpid - AMQP Messaging Implementation Project: http://qpid.apache.org Use/Interact: mailto:commits-subscr...@qpid.apache.org