Skip to content
Snippets Groups Projects
Commit 8bc44033 authored by Steven Murray's avatar Steven Murray
Browse files

Server-side code of "cta af ls" command now handles more exceptions

parent e949f254
No related branches found
No related tags found
No related merge requests found
......@@ -43,6 +43,30 @@ ListArchiveFilesCmd::ListArchiveFilesCmd(
// read
//------------------------------------------------------------------------------
XrdSfsXferSize ListArchiveFilesCmd::read(XrdSfsFileOffset offset, char *buffer, XrdSfsXferSize size) {
try {
return exceptionThrowingRead(offset, buffer, size);
} catch(exception::Exception &ex) {
std::ostringstream errMsg;
errMsg << __FUNCTION__ << " failed: " << ex.getMessage().str();
m_xrdSfsFileError.setErrInfo(ECANCELED, errMsg.str().c_str());
return SFS_ERROR;
} catch(std::exception &se) {
std::ostringstream errMsg;
errMsg << __FUNCTION__ << " failed: " << se.what();
m_xrdSfsFileError.setErrInfo(ECANCELED, errMsg.str().c_str());
return SFS_ERROR;
} catch(...) {
std::ostringstream errMsg;
errMsg << __FUNCTION__ << " failed: Caught an unknown exception";
m_xrdSfsFileError.setErrInfo(ECANCELED, errMsg.str().c_str());
return SFS_ERROR;
}
}
//------------------------------------------------------------------------------
// exceptionThrowingRead
//------------------------------------------------------------------------------
XrdSfsXferSize ListArchiveFilesCmd::exceptionThrowingRead(XrdSfsFileOffset offset, char *buffer, XrdSfsXferSize size) {
if(State::LISTED_LAST_ARCHIVE_FILE == m_state) {
return SFS_OK;
}
......
......@@ -54,6 +54,11 @@ public:
* Indirectly implements the XrdSfsFile::read() method.
*/
XrdSfsXferSize read(XrdSfsFileOffset offset, char *buffer, XrdSfsXferSize size);
/**
* Indirectly implements the XrdSfsFile::read() method.
*/
XrdSfsXferSize exceptionThrowingRead(XrdSfsFileOffset offset, char *buffer, XrdSfsXferSize size);
protected:
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment